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) Estado(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ço consistente Falso negativo Hipoteses generalizada positivo especializada
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+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 D 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 - - Peso Altura + + + - + + - + - - Altura Altura 0.93 e peso 0.68 Pesos de atributos iguais
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 Peso + + + + - - - + - + - - + + - - Altura 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 usando Dividir 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 3/4+1/1=7/4 + 4/4+1/2=3/2 + 2/2+1/1=2 V 2/3+1/1=5/3 - 4/4+1/2=3/2 + V
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 Peso + + + + - - _ _ + + _ _ _ _ + + + + + + _ _ _ _ + + + + Altura 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 + + + + - - + + - -