Aprendizado de Conceitos (aprendizado de regras) Introdução • Aprender uma definição de uma categoria • Dado um conjunto de treinamento positivos e negativos • Problema de busca através de um espaço predefinido de hipóteses potenciais. • Ordenação do espaço de busca Exemplo Qual é o conceito ??? Céu Temp Humed Vento Água Prev Esporte Sol Temp Normal Forte Temp Igual S Sol Temp Alta Forte Temp Igual S Chuva Frio Alta Forte Temp Muda N Sol Temp Alta Forte Fria Muda S 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. Representação da Hipóteses • Muitas possibilidades de representações • Aqui h é uma conjunção de restrições sobre os atributos • Cada restrição pode ser • Um valor especifico (Água = Temp) • Não interessa (Água = ?) • Nenhum valor é permitido (Agua = #) • Exemplo • (Sol, ?, ?, Forte, ?, Igual) Tarefa de Aprendizado de Conceitos • Dado • Instâncias X: Dias, descritos por seus atributos, Céu.... • Função Alvo c: Esporte : X -> {0,1} • Hipóteses H: Conjunção de literais, ex :(?,Frio,Forte,?,?,?) • Exemplos de treinamento D • (x1,c(x1)), (x2,c(x2)), (x3,c(x3)),... (xn,c(xn)), • Determine: A Hipótese h em H tal que • h(x) = c(x) para todo x em D 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. Consistência • Hi é consistente com todos os exemplos de treinamento => consistente com cada exemplo • Um exemplo pode ser falso - para a hipótese • Se a hipótese afirma ser negativo mais de fato é + • Um exemplo pode ser um falso positivo para a hipótese, se a hipótese diz que é positivo mais o exemplo é negativo. 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 Falso generalizada positivo --- - - +++ -- + + +++ - + ------ Hipoteses especializada Espaço de Classes conceituais • Parcialmente ordenado T, a mais geral (#,#,#,#,#) F, a mais especifica (?,?,?,?,?) Instâncias, Hipótese e mais Geral que Instâncias Hipótese Especifico Genérico X1 = <sol,temp,alto,forte,fria,igual> X2= <sol,temp,alto,suave,temp,igual> h2 é mais geral que h3 h1 = <sol,?,?,forte,?,?> h2= <sol,?,?,?,?,?> h3= <sol,?,?,?,fria,?> 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 + - + - Problemas • Complexidade computacional • Ruído nos dados FIND-S • Começar com a hipótese mais especifica possível em H, então generalizar esta hipótese cada vez que falhe em cobrir um exemplo positivo. • Algoritmo • Inicializar h, hipótese mais especifica em H • Para cada restrição num atributo ai em h • Se ai em h é satisfeita por x não faça nada • CC substitua ai em h por a próxima restrição mais geral satisfeita por x • Saída hipótese h FIND-S Instâncias Hipótese Especifico Geral X1 = <sol,temp,normal,forte,temp,igual>,+ X2= <sol,temp,alto ,forte,temp,igual>,+ X3 = <chove,frio,alto,forte,temp,muda>,X4= <sol,temp,alto ,forte,frio,muda>,+ h0 =<#,#,#,#,#,#> h1 = <sol,temp,normal,forte,temp,igual> h2 = <sol,temp,? ,forte,temp,igual> h3 = <sol,temp,? ,forte,temp,igual> h4 = <sol,temp,? ,forte,? ,? > Problemas • Uma hipótese única, a mais especifica • Ruído nos dados • Memória para manter todos o conjunto de treinamento 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 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 • Problemas com ruído e com conceitos que não são uma conjunção lógica 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) 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. 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 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 IHC +em operação - (1+1)/2=1 (1+2)/3=1 - + (1+1)/2=1 (1+2)/3=1 (1+1)/3=2/3 - (1+2)/3=1 (0+1)/2=0.5 (0+2)/3=2/3 (0+1)/3=1/3 (0+2)/3=2/3 (0+1)/2=0.5 (0+2)/3=2/3 Comentarios IHC • Baixos requisitos de memória e processamento • Uma hipótese • Sensibilidade a ordem no treinamento, maior quantidade de instâncias de treinamento para convergência • Menos sensitivo a ruído Exercicios 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 usando HSG Peso Pes o + + + + - - + + Altura - + + Altura - 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) 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 pode 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 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 1/2+2/2=1,5 v - 2/3+1/1=5/3 1/1+2/3=5/3 + 3/4+1/1=7/4 + 4/4+1/2=3/2 V + 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