Aprendizado de Descrições Lógicas Aprendizado inductivo pode ser visto como um processo de busca...
Transcript of Aprendizado de Descrições Lógicas Aprendizado inductivo pode ser visto como um processo de busca...
Aprendizado de Descrições Lógicas
• Aprendizado inductivo pode ser visto como um processo de busca de uma boa hipoteses num grande espaço.
• O espaço de hipoteses, definido pela linguagem de representação escolhida para a tarefa.
• No termo lógico a relação entre hipoteses, objetivos e exemplos.
Hipóteses
• A situação comum é:
• predicado objetivo Q (ex: esperar num restaurante)
• Hipoteses: uma definição candidata do predicado Q.
x Q(x) Ci(x)
r Esperar(r) stado(r,medio) v (Estado(r,cheio) ^ ~fome(r) ^ tipo(r,F)) v (estado(r,cheio) ^ ~fome(r) ^ tipo(r,T) ^ Sex/Sab(r)) v (Situação(r,cheio) ^ ~fome(r) ^ tipo(r,B))
Extensão de uma hipoteses
• Cada hipoteses prediz um certo conjunto de exemplos. Os que satisfacem sua definição
• Duas hipoteses são diferentes => suas extensões são inconsistentes.
• Logicamente falando, um exemplo é um objeto ao qual o conceito objetivo se aplica ou não. Ele tem uma descrição lógica.
Exemplo
• Ex: linha 1,
• alternativa(x) ^ ~bar(x) ^ ~sex/sab(x) ^ fome(x) ^ .... => Esperar(x)
• o conjunto de treinamento é então a conjunção de todas essas sentenças.
• A hipoteses esta de acordo com todos os exemplos SSE é logicamente consistente com todos os conjuntos de treinamento
Consistência
• Hi é consistente com todos os conj. De treinamento => consistente com cada exemplo
• Um exemplo pode ser falso - para a hipoteses
• Se a hipoteses afirma ser negativo mais de fato é +
• Um exemplo pode ser um falso positivo para a hipoteses, se a hipoteses diz que é positivo mais o exemplo é negativo.
Aprendizado Inductivo
• Assumindo que o exemplo esta correto e a hipoteses não, então
• um sistema de inferência poderia portanto, aprender dos exemplos eliminando 1 ou + hipoteses
• Aprendizado inductivo como um processo de gradualmente eliminar hipoteses que são inconsistentes com os exemplos, como o espaço de hipoteses pode ser inmenso, esta aproximação não é utilizada.
Busca pela melhor hipoteses
• Manter uma hipoteses única e ajustar ela a novos exemplos de maneira a manter consistência.
+ + ++ + ++ + +
- - - - -
- - - - - -
---
---
+ + ++ + ++ + +
- - - - -
- - - - - -
---
---+
+ + ++ + ++ + +
- - - - -
- - - - - -
---
---+
+ + +- + ++ + +
- - - - -
- - - - - -
---
---+
+ + +- + ++ + +
- - - - -
- - - - - -
---
---+
-
Espaçoconsistente
Falso negativo
Hipotesesgeneralizada
Falsopositivo
Hipotesesespecializada
Tarefa de inducir conjunções lógicas
• Dado um conjunto de instâncias de treinamento positivas para a classe C
• Dado um conjunto de instâncias de treinamento negativas para a classe C
• Encontrar Uma conjunçào lógica que extenda uma descrição intensional para usar em classificação de instâncias futuras.
Espaço de Classes conceituais
• Parcialmente ordenado
T, a mais geral
F, a mais especifica
Indução não incremental de CL
• Bredth-first search (EGS, G->S)
• a cada nivel EGS considera todas as especializações de uma H, com + 1 condição.
• Para cada especialização gerada H
• H cobre todos os exemplos + , cc ela é retirada.
• Se H ainda cobre algum exemplo negativo, será novamente especializada no proximo ciclo, se não H é consistente.
Algoritmo: EGS+ - + -
Algoritmo
Problemas
• Complexidade computacional
• Ruido nos dados
• Solução -> heuristica
HGS(G->S)
• Manipula dois conjuntos
• Closed (H, sem melhora)
• Open (H, podem ser melhoradas)
• A cada estagio HGS considera todas as especializações de Hset com + 1 condição (S)
• S -> f(S)
• Se f(S) > f(H), Open-set = Open-set +S
• Se S f(S) < f(H) , H -> Closed-set
HGS
Depois de considerar todas as especializações das descrições em Hset
Se existem H em Open-set continua,
Se não retorna H com maior score.
Avaliação heuristica
ex: Pc + Nnc/(P+N) (0,1)
Algoritmo HGS
Problemas de HGS
• HGS ou HSG
• custo de memoria fixo
• busca sobre controle, mais não sempre gera a descrição otima para um conjunto de dados
• relativamente robusta com respeito a ruido, e a hipoteses que são aproximadamente conjuntivas
• em HSG deve-se cuidar o exemplo inicial usado.
Indução Incremental IGS
• Um caso de treinamento por vez, guarda-se Hs consistentes com exemplos.
• Inicializa com T
• encontra e-, abandona as Hi tal que Hi->e-, substituindo por uma variante
• Abandona qualquer Hi tal que Hi ~->e+.
• Obs: guarda e reprocessa explicitamente a lista de exemplos +, fazendo uma aproximação incremental somente com respecto a exemplos -.
Algoritmo: IGS+
-
+
-
Algoritmo
Algoritmo ISG• Estrutura básica similar a IGS
• Esta tecnica retem um conjunto de descrições que são consistentes com as instâncias observadas
• Inicializa o conjunto de Hs a 1a instância positiva do conjunto de treinamento
• frente a uma instância + , verfica as Hs, substituindo as inconsistentes por "minimas"mais gerais
• ISG abandona as Hs que cobrem instâncias negativas, e Hs mais especificas que outras.
• O ciclo ISG usa e+ para gerar Hs e e- para abandonar Hs
Tecnicas Bidirecionais
• Combinação de S->G e G->S
• Neste caso, ou G ou S atua como operador primario, sendo que o outro efetua backtracking
Tecnicas Bidirecionais
• Outra alternativa, espaço de versão, que IGS e ISG
• 2 conjuntos de descrições (S,G)
• ISG atualiza S, quando encontra e+
• IGS atualiza G, quando encontra e-
• não é necessário reter as instâncias + nem -
• IGS apaga os membros de G que são mais especificos que todos os membros de S, similar ISG com S.
Problemas dos Métodos I. Exaustivos
• ISG, IGS, Bidireccionais guardam em memoria todas as descrições consistentes com os dados
• Em alguns dominios o tamanho do conjunto pode crecer exponencialmente
• Ruido e conceito não é uma conjunção lógica
Método Hill Climbing
• Minimizar o processamento para cada nova instância, reduzir memoria requerida
• Ideia: Guardar uma hipoteses
• Hill Climbing
• metodo de busca clássico de IA
• se aplicam todos os possiveis operadores
• comparam os resultados, função de avaliação
• seleciona-se o melhor, iterar até não obter progressos
Hill Climbing
• Busca num espaço n-dimensional, com f
• Esta função determina a forma da superficie
• Em geral f é estatica, assim a forma da superficie é constante.
• Em ML, cada nova instância muda f modificando o contorno da superficie
• Esta característica deixa pouco claro as limitações tradicionais deste método (mínimo local)
• Existe dependência na ordem de presentação das instâncias
Algoritmo IHC
• Para cada instância I, o método verifica se H classifica corretamente
• Se correto, IHC não atua
• Se errado, IHC gera todas as revisões de H que corrigem o erro
• usa f para ordenar as candidatas, nos últimos K casos
• A melhor é comparada com H pai, fica a melhor
• O caso mais antigo é substituido pelo novo
• O processo continua ate que existam instâncias
Algoritmo IHC
• O algoritmo responde diferente se e+ ou e-
• e-, IHC diz e+, H é geral demais, -> S
• e+, IHC diz e-, H é muito especifica, -> G
• Formas de inicialização
• a mais geral
• o primeiro exemplo
Algoritmo IHC
IHC em operação+
-
-
+
-
(1+1)/2=1 (1+1)/2=1 (0+1)/2=0.5 (0+1)/2=0.5
(1+2)/3=1 (1+2)/3=1 (0+2)/3=2/3
(1+1)/3=2/3 (0+1)/3=1/3
(1+2)/3=1 (0+2)/3=2/3 (0+2)/3=2/3
Comentarios IHC
• Baixos requisitos de memoria e processamento
• Uma hipoteses
• Sensibilidade a ordem no treinamento, maior quantidade de instâncias de treinamento para converger
• Menos sensitivo a ruido
Exercicios
Indução de Conceitos Competitivos
Indução de Conceitos Competitivos
• Protótipos
• Tarefa• dado um conjunto de instâncias pre-classificadas
• encontrar uma descrição intencional
• um conjunto de protótipos
Indução de Conceitos Competitivos
• Esquemas competitivos não podem ser representados isoladamente
• A extensão de um conceito depende de sua descrição e da dos outros
• O operador típico é o calculo da media das instâncias de treinamento.
• A descrição especifica a tendência central das instâncias
Aprendizado baseado em Instâncias
• Guardam instâncias específicas ao invés de uma descrição abstrata
• Protótipos• conjunção de pares atributos valor
Protótipos
A
B
Peso
Altura Altura
Peso
A D
B C
Protótipos
• Usar protótipos para classificação é um processo de três passos:
• Dada uma instância I,
• calcula-se sua distância a cada protótipo• distância euclidiana,
• distância de hamming
• Usa-se o resultado para classificar a instância, o protótipo mais perto
Método média das Instâncias
• Realizar a média das instâncias para encontrar o protótipo de cada classe
• Para determinar o valor pi de um atributo para
um protótipo (numérico)• pi= 1/n xij (j=1,n)
Método incremental
• Ao encontrar uma instância de uma classe nova, guarde esta instância como protótipo
• Quando observar uma instância de uma classe conhecida, recalcule o protótipo
• para cada atributo i
pi= (xi-pi)/n+1
• para atributos nominais, escolha o valor mais frequente
Método média das Instâncias
• Em termos de eficiência e elegância é um dos melhores
• pouca expressão representacional• linhas de fronteiras
Método dos Pesos
• Um dos problemas do método anterior é tratar todos os atributos de forma equivalente
• Se os atributos tem escalas diferentes• normalizar
• Alguns atributos tem maior importância
Relevância dos atributos
- -
Peso
Altura
+
+ + -
Pesos de atributos iguais Altura 0.93 e peso 0.68
- -
Peso
Altura
+
+ + -
Métrica de distância
i wi (pi-xi)2
• wi ?• wi = 1 - 1/n( (k=1,c) j=1,nk pki - xji)• n = número total de instâncias de treinamento• nk = número de instâncias para a classe c
Construção de listas de decisão
• Os tópicos anteriores tratam de indução de conceitos que podem ser descritos usando uma única região de decisão
• Neste tópico se tratará da indução de descrições disjuntivas (v)
Múltiplas regiões
Peso
Altura
+ + --
+ + - -
- + + +
Construção de listas de decisão
Construção de listas de decisão
• Forma normal disjuntiva FND
• combina um conjunto de descrições D1,D2,..Dn em uma disjunção {D1vD2v..Dn }
• as vezes mais de uma classe "match"uma instância
• criar descrições mutualmente exclusivas
• precedência, lista ordenada
A tarefa de indução disjuntiva
• Dado: Um conjunto de instâncias de treinamento, cada uma com sua classe associada
• Encontrar: Uma descrição disjuntiva que, corretamente classifique instâncias não observadas
• Ao menos para algumas representações, o espaço de FND é parcialmente ordenado (G->S), mas o fator de ramificação é muito grande
Aprendizado não-incremental Dividir e Conquistar (NDC)
• Tarefa de discriminar entre duas classes
• construir a FND de uma classe e usar a outra como default. Tecnicamente o resultado é uma lista de decisão.
NDC• Entrada:
• Pset, conjunto de instâncias +
• Nset, conjunto de instâncias -
• FND uma disjunção de uma descrição de uma única região
• Saída: Uma disjunção de uma única região
• Nivel-Top chamada: NDC(Pset,Nset,{})
• Procedimento NDC(Pset,Nset,FND)
• Se Pset esta vazio Então retorne FND
• CC Encontre uma região D que cobra algumas instâncias em Pset e não em Nset, FND=FND+D, Pset=Pset-{D->}
• Retorne NDC(Pset,Nset,DNF)
NDC usando HSG
+
+ -
- +
+ --
Peso
Altura
+
+ -
- +
+ --
Peso
Altura
MDC
• NDC é projetado para inducir expressões para uma única classe
• MDC utiliza NDC como bloco de construção para mais de duas classes
MDC• Entrada: Cset é conjunto dos nomes das classes, Iset é o
conjunto das instâncias de treinamento.
• Saída: uma lista de decisão
• Procedimento MDC(Cset,Iset)
• Rule-set = {}
• Para cada Classe em Cset,
• Pset = {i Iset e i Classe}, Nset = {i Iset e i Classe}, FND = NDC(Pset,Nset,{}).
• Para cada termo D em FND, Rule-set =Rule-set + Se D então Classe
• Elimine possiveis conflitos entre descrições de classe, retorne Rule-set
Indução Incremental usandoDividir para conquistar (IDC)
• Utiliza ideias de Hill Climbing
• Guarda uma única hipoteses em memoria (um conjunto de termos lógicos disjuntivo)
• Guarda as k últimas instâncias de treinamento, para avaliar as hipoteses
• Revisa suas hipoteses somente quando realiza um erro de classificação
• IDC utiliza a função de avaliação para escolher
Revisões em IDC Erro de classificação de uma instância positiva,
generalizar a hipoteses
• modificar um termo da FND; remover um teste booleano, nominal ou características numericas, Aumentar o tamanho do retangulo ou mudanças nos pesos
• Como a hipoteses pode ter multiples termos, IDC deve aplicar generalização a cada um deles
• Outra alternativa envolve em adicionar um termo novo (a descrição da instância ou a descrição mais geral que não case com os exemplos negativos)
Revisões em IDC
• Erro de classificação de uma instância negativa, especializar a hipoteses
• modificar cada termo da FND que case com a instância; adicionar um teste booleano, nominal ou características numericas, diminuir o tamanho do retangulo ou mudanças nos pesos
• Outra alternativa envolve em eliminar um termo
Algoritmo IDC
Função de Avaliação
• Incluir uma medida da simplicidade da expresão e de precisão
• simplicidade 1/t , t número de termos
• precisão a = (Pc + N~c)/k
• F = a + 1/t ou F = (1-w)a + w 1/t , w entre 0 e 1
Comportamento de IDC
+
+
+1/1+1/1=2
-
2/2+1/1=2
2/3+1/1=5/3
+
3/4+1/1=7/4
V
4/4+1/2=3/2
+
V
4/4+1/2=3/2
Problemas
• Métodos que utilizam "Hill Climbing" possuem baixos requisitos de memoria e processamento
• Eles consideram somente uma hipoteses
• Sensibilidade a ordem das instâncias de treinamento, maior número de casos para convergência
• Pode não converger e em ambiente com ruido podem abandonar sua boas hipoteses
Indução de listas de decisão por excepção NEX
• O método dividir e conquistar constrõe a lista de forma top-down, adicionando o primeiro termo na lista e logo o segundo...
• Pode-se operar na direção oposta, NEX inicializa sua lista criando uma classe default, baseado na classe mais frequente
• Em cada iteração, NEX aplica sua lista aos casos restantes para verificar os classificados erroneamente
NEX
• Nex seleciona a classe mais comun neste conjunto,
• chama uma subrutina para inducir a descrição mais específica que cobre os membros desclassificados desta classe, e
• adiciona a regra na frente da lista de decisão
• Continua-se desta forma até que a lista classifique todas as instâncias de treinamento.
Fronteiras criadas por NEX
Peso
Altura
+ +
+
++
+
++
-
__
_
_
_
Peso
Altura
+ +
+
++
+
++
-
__
_
_
_
Algoritmo NEX
Indução de disjunções competitivas
• NDC, utiliza uma tecnica competitiva simples, para criar um conjunto inicial de descrições
• NDC utiliza isto para classificar o conjunto.
• O algoritmo remove os casos problematicos e os coloca em "pseudo classes"
• NDC produz um novo conjunto de descrições
• Repete-se o processo, até que se tenha um conjunto que corretamente classifique
Algoritmo NDC
NDC e protótipos
Peso
Altura
+ ++ +
- - + +
- -
Peso
Altura
+ ++ +
- - + +
- -