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
+ ++ +
- - + +
- -