Aprendizagem Simbólica Geber Ramalho Jacques Robin Francisco Carvalho CIn-UFPE CIn- UFPE Construção de bases de conhecimento (baseadas em regras) Críticas • Aquisição de conhecimento muito difícil (problema central!!!) • Desenvolvimento longo e manutenção delicada (conseqüência) • Sistema não se adapta • Não é robusto e tem tratamento de incerteza complicado Soluções • Robustez e incerteza: Sistemas fuzzy, probabilísticos,... • Aquisição, tempo de desenvolvimento e adaptabilidade: Aprendizagem de máquina CIn- UFPE 2 Aprendizagem de máquina: exemplos Prever classes de futuras pacientes de alto risco que devem fazer cesareana Análise de risco de crédito: prever clientes não solventes Prever comportamento de compra de clientes Recomendar filmes para clientes etc. CIn- UFPE 3 Aprendizagem de máquina: a natureza dos exemplos CIn- UFPE Conhecimento em extensão (exemplos percepção-ação, características-conceitos, etc.) Exemplos dia 29, a Caxangá estava engarrafada dia 30, a Caxangá estava engarrafada dia 01, a Caxangá estava engarrafada dia 03, a Caxangá estava engarrafada Conhecimento em intenção (regras definições.) Hipótese indutiva Todo dia, a Caxangá está engarrafada 4 Aprendizado indutivo Inferência de uma regra geral (hipótese) a partir de exemplos particulares • ex. trânsito na caxangá Precisão diretamente proporcional à quantidade de exemplos É uma inferência que “preserva a falsidade” • só é verdade até aquele momento! CIn- UFPE 5 Aprendizagem Atividade de uma agente = função f (percepção) ação idéia: • aprender, a partir de exemplos (x,f(x)), representação de uma função h que aproxima f Métodos • simbólico: indução • não simbólico: redes neurais, algo. genéticos, etc. CIn- UFPE 6 Questões: on-line x off-line Aprender de uma vez ou aos poucos? • Incremental (on-line): atualiza hipótese a cada novo exemplo – mais flexível, situada... porém – ordem de apresentação é importante (backtracking) – é difícil revisar as crenças • não incremental (off-line): gera h a partir de todo conjunto de exemplos – mais eficiente e prática – mais usado! CIn- UFPE 7 Modelo do Agente Aprendiz (on-line) Agente t+1 sensores ambiente t avaliação trocas elemento ator elemento de conhecimento aprendizagem objetivos de aprendizagem efetuadores CIn- UFPE crítico Gerador de problemas 8 CIn- UFPE Algoritmo de Aprendizagem exemplos conhecimento ambiente Uso Treinamento Modelo do Agente Aprendiz (off-line) sensores elemento ator efetuadores 9 Questões... O que aprender? • Aumentar/refinar conhecimento do agente – – – – – propriedades relevantes do mundo como o mundo evolui resultados das ações adequação de ações num dado contexto ... • Aumentar eficiência do agente (não precisa mais refletir) – não gera conhecimento novo, propriamente dito Como representar o que aprender? • eficiência x expressividade – ex. lógica de atributo valor (0+) x lógica de predicados (1) CIn- UFPE 10 Questões Qual é o feedback disponível? • Aprendizagem supervisionada: certo ou errado – Dado um conjunto de exemplos pré-classificados, aprender uma descrição geral que encapsula a informação contida nesses exemplos e que pode ser usada para prever casos futuros – ex. concessão de crédito • Aprendizagem não-supervisionada: ? – Dada uma coleção de dados não classificados, agrupá-los por regularidades – ex. caixa de supermercado empacotando • Aprendizagem por reforço: recompensa/punição – ex. jogo de xadrez: é por aí! CIn- UFPE 11 Questões Preguiçosa xGulosa • Gulosa: gera conhecimento em intenção – custa mais na hora de gerar e de atualizar – mas é barata na hora de usar (identificar) • preguiçosa: usa conhecimento em extensão – custa mais na hora de usar mas é barata na hora de gerar (nem gera na verdade!) Qual é o conhecimento prévio disponível? • Em geral existe e é importante – ex. artista e médico chegam a conclusões diferentes para as mesmas observações • IA simbólica captura melhor este conhecimento • influi também na descrição dos exemplos – ex. CNCT: Paraíba, Pernambuco, Ceará -> NE CIn- UFPE 12 Resumo: Aprendizagem indutiva Objetos (dados) clustering (ap. não-supervisionada) 1 Redes neurais, agrupamento conceitual, estatítica, ... 2 3 ap. supervisionada Indução - geração de um classificador (árvore de decisão, conjunto de regras, redes neurais c/ pesos ajustados,...) K em intenção outro objeto Identificação classificador Preguiçosa ID3, version space, redes neurais, naive bayes, ... Knn, LWR, CBR, classe novo algoritmo Identificação classe 1,2 ou 3 1,2 ou 3 2 Abordagens típicas em aprendizagem simbólica Árvores de decisão: inductive decision trees (ID3) • • • • Lógica de ordem 0+ (atributo/valor) Fáceis de serem implementadas e utilizadas aprendizagem não incremental estatística (admite exceções) Espaço de versões (Version space) • • • • CIn- UFPE lógica de primeira ordem & resolução implementação mais complicada aprendizagem incremental indução lógica unicamente 14 Árvore de Decisão A partir de um conjunto de propriedades, decide sim ou não Representação de árvores de decisão • Cada nó interno testa um atributo • Cada ramo corresponde a um valor do atributo • Cada folha atribui uma classificação CIn- UFPE 15 Árvore de Decisão Exemplo Soparia (by Carlos Figueira) • predicado-objetivo: vaiASoparia • Atributos considerados: – Sono: Estou com sono? – Transporte: Tenho como ir de carro? Carona? etc. – CONIC: Devo estar amanhã cedo no CONIC? – Álcool: Estou precisando de álcool? – Sair: Quero sair de casa? – Fome: Estou com fome? CIn- UFPE 16 Árvore de Decisão “pensada” valores atributo Sono? Não. Carona CONIC? Precisa de álcool? Sim. CIn- UFPE Não. Sim. Meio de transporte? Não. CONIC? Sim. Não. Quer sair? Sim. Não. 17 ID3: exemplos da soparia Atributos: (Sono, Transporte, CONIC, Álcool, Sair, Fome)-> propriedade-objetivo • • • • • • • • • • • • CIn- UFPE E01: (Pouco,Carro,Sim,Sim,Não,Sim) -> Sim! E02: (Pouco,Carona,Não,Não,Sim,Sim) -> Sim! E03: (Sim,Carro,Não,Sim,Sim,Sim) -> Não. E04: (Pouco,Carona,Não,Não,Sim,Não) -> Sim! E05: (Sim,Outros,Sim,Sim,Sim,Não) -> Não. E06: (Pouco,Outros,Não,Sim,Não,Sim) -> Não. E07: (Pouco,Carro,Sim,Não,Sim,Sim) -> Sim! E08: (Pouco,Carona,Não,Não,Não,Sim) -> Não. E09: (Sim,Carro,Não,Sim,Sim,Não) -> Não. E10: (Não,Outros,Sim,Sim,Sim,Sim) -> Sim! E11: (Não,Carro,Não,Sim,Sim,Não) -> Sim! E12: (Não,Carona,Não,Sim,Sim,Sim) -> Sim! 18 ID3: conceitos Classificação • aplicação do predicado objetivo p a um exemplo Exemplo positivo (ep) e exemplo negativo (en) • p(ep) = verdadeiro, p(en) = falso Conjunto de treinamento • positivos + negativos Objetivo da aprendizagem • gerar a descrição d de p segundo os atributos dados • d deve ser consistente (cobre todos positivos e exclui todos negativos) e preditiva/geral (vai além da memorização) • d deve ser a mais simples possível (navalha de Ockahm) CIn- UFPE 19 Indução top-down de árvores de decisão Loop principal: 1. A o “melhor” atributo de decisão para o próximo nó 2. Atribua A como atributo de decisão para nó 3. Para cada valor de A, crie um novo descendente para nó 4. Classifique os exemplos de treinamento nos nós folha 5. Se os exemplos de treinamento estão classificados perfeitamente, então PARE, senão comece novamente a partir dos novos nós folha CIn- UFPE 20 Indução top-down de árvores de decisão (detalhe) function APRENDIZAGEM_ID3(exemplos,atributos,default) : árvore de decisão if (exemplos é vazio) then return default; else if (todos os exemplos têm a mesma classificação) then return (a classificação); elseif (atributos é vazio) then return maioria(exexmplos); else melhor <- ESCOLHA_MELHOR_ATRIBUTO(atributos,exemplos); árvore <- nova árvore com raiz “melhor”; para cada valor vi de melhor faça exemplosi <- exemplos onde melhor = vi; subárvore <- APRENDIZAGEM_DA_ID3(exemplosi, atributos-{melhor}, maioria(exemplos)); adicione subárvore como um ramo à árvore com rótulo vi; return arvore; CIn- UFPE 21 Indução top-down de árvores de decisão Escolha do melhor atributo • O que discrimina o maior número de exemplos • Maior ganho de informação (minimiza a entropia) Candidatos: • Transporte: Não classifica imediatamente nenhum dos exemplos • Sono: Classifica de imediato 6 dos 12 exemplos • ... CIn- UFPE 22 Exemplo: atributo transporte +:E01,E02,E04,E07,E10,E11,E12 - :E03,E05,E06,E08,E09 Transporte? carro +: E01,E07,E11 -: E03,E09 CIn- UFPE carona +: E02,E04,E12 -: E08 outros +: E10 -: E05,E06 23 Exemplo: atributo sono +:E01,E02,E04,E07,E10,E11,E12 - :E03,E05,E06,E08,E09 Sono? sim +: - - -: E3, E5, E9 CIn- UFPE pouco +: E1,E2,E4, E7 -: E6,E8 não +: E10,E11,E12 -: - - - 24 Entropia S é uma amostra dos exemplos de treinamento p é a proporção de exemplos positivos em S p é a proporção de exemplos negativos em S Entropia mede a “impureza” de S: • Entropia(S)=- p log2 p - p log2 p CIn- UFPE 25 Entropia - Exemplo Suponha que S é uma coleção de 14 exemplos, incluindo 9 positivos e 5 negativos • Notação: [9+,5-] A entropia de S em relação a esta classificação booleana é dada por: Entropy([9,5]) (9 / 14) log2 (9 / 14) (5 / 14) log2 (5 / 14) 0.940 CIn- UFPE 26 Cálculo do ganho de informação Gain(S,A)=redução esperada da entropia devido a “classificação” de acordo com A | Sv | Gain( S , A) Entropy( S ) Entropy(S v ) vValues( A) | S | Árvore de Decisão “Induzida” +: E1,E2,E4,E7,E10,E11,E12 -: E3, E5, E6, E8, E9 Sono? +: - - -: E3, E5, E9 Não. +: E1,E2,E4, E7 -: E6,E8 +: E10,E11,E12 -: - - - Meio de transporte? Sim. Carona +: E1,E7 -: - - - Sim. CIn- UFPE +: E2,E4 -: E8 +: - - -: E6 Quer sair? +: E2,E4 -: - - - +: - - -: E8 Sim. Não. Não. 28 Regras É possível mostrar o resultado como regras lógicas • toma-se as folhas com conclusão positiva e sobe-se até a raiz Exemplos: • t Sono(Não,t) VaiASoparia(t) • t Sono(Pouco,t) Transporte(Carro,t) VaiASoparia(t) • t Sono(Pouco,t) Transporte(Carona,t) QuerSair(Sim,t) VaiASoparia(t) CIn- UFPE 29 Problemas c/ ID3: Expressividade Só pode tratar de um único objeto • t Sono(Não,t) VaiASoparia(t) • t Sono(Pouco,t) Transporte(Carro,t) VaiASoparia(t) Mais de um... não dá com eficiência • Ex: “se posso ficar mais indisposto mais tarde, eu vou logo à soparia” • t1t2 MesmoDia(t1,t2) Disposição(t1,d1) Disposição(t2,d2) Maior (d1,d2) VaiASoparia(t) • alternativa: atributo possoFicarMaisIndisposto(t) CIn- UFPE 30 Problemas c/ ID3: Expressividade Exemplo: Goal predicate = BomPesquisador (x) Como tratar atributos multi-valorados? • Filiação(José, {USP, Unesp}) Como tratar atributos numéricos? • Tem entre 45 e 52 anos Como tratar listas ordenandas? • Formação = {graduação, mestrado, doutorado, pós} Como inserir conhecimento a priori? BR • Hierarquias conceituais NE CIn- UFPE PE PB Norte AL CE 31 Problemas gerais: ambigüidade Ambigüidade: • Dois ou mais exemplos com a mesma descrição (em termos de atributos) mas classificações diferentes Causas: • Ruído • Atributos insuficientes Soluções: • tratamento estatístico • indução construtiva • etc. CIn- UFPE 32 Problemas gerais: overfitting Overfitting (hiper-especialização): • Evitar encontrar uma “regularidade” muito restrita nos dados Soluções: • validação cruzada • poda CIn- UFPE 33 Validação Cruzada Serve para evitar overfitting e para averiguar robustez dos resultados Algoritmo 1) Divide o conjunto de exemplos em dois subconjuntos: conjuntos de treinamento (TR) e de teste (TE) 2) Usa indução para gerar hipótese H sobre TR 3) Mede percentagem de erro de H aplicada à TE 4) Repete passos 1-3 com diferentes tamanhos de TE e TR, e tendo elemento escolhidos aleatoriamente Treinamento CIn- UFPE Teste 34 Curva de aprendizagem CIn- UFPE 35 Quando usar árvores de decisão? Instâncias (exemplos) são representadas por pares atributo-valor Função objetivo assume apenas valores discretos Hipóteses disjuntivas podem ser necessárias Conjunto de treinamento possivelmente corrompido por ruído CIn- UFPE 36 Exemplos Práticos Exemplos correntes • • • • Diagnóstico médico e de equipamentos Análise de crédito Recuperação de Informação etc. Funciona mesmo • GASOIL – Sistema de separação de gás-óleo em plataformas de petróleo – Sistema de 10 pessoas-ano se baseado em regras – Desenvolvido em 100 pessoas-dia • Piloto automático de um Cessna – Treinado por três pilotos – Obteve um desempenho melhor que os três CIn- UFPE 37 Aprendendo descrições lógicas Version space CIn- UFPE Aprendendo descrições lógicas Dado o Predicado objetivo (unário) P, a tarefa é • encontrar uma expressão lógica C, equivalente a P, que classifique os exemplos corretamente • Hipótese (Hi) Definição Candidata (Ci) • x P(x) Ci(x) • é uma dedução!!!! Exemplos Hr: r VaiEsperar(r) Pessoas(r, Algumas) (Pessoas(r,Cheio) Fome(r) Tipo(r,Francês)) (Pessoas(r,Cheio) Fome(r) Tipo(r,Tailandês) Sex/Sab(r)) HS: t VaiASoparia(t) Sono(Não,t) (Sono(Pouco,t) Transporte(Carona,t) Conic(Sim,t)) CIn- UFPE 39 Aprendendo descrições lógicas (2/3) O que é um exemplo (Xi)? • objeto em que o predicado objetivo p pode ou não se aplicar representação • exemplo positivo: Di(Xi) P(Xi) • negativo: Di(Xi) P(Xi) Por exemplo... • Pessoas(X1,Cheio) Fome(X1) Tipo(X1,Tailandês) Sex/Sab(X1) VaiEsperar(X1) CIn- UFPE 40 Aprendendo descrições lógicas (3/3) O que é aprender? • processo de busca por uma boa hipótese Hi no espaço de hipóteses H Idéia: • reduzir conjunto de hipóteses H1 H2 ... Hn testando a consistência através de inferência (dedução) lógica • Direção: top-down (geral específico) ou bottom-up (específico geral ) Problema • tamanho do espaço de hipóteses CIn- UFPE 41 Hipóteses... Exemplo1 + CIn- UFPE Exemplo 2 + Existe um polígono Existe um polígono hachurado Existem dois objetos, um sobre o outro Existem dois objetos & o inferior é um polígono Existem dois objetos & o inferior está hachurado Existem dois objetos, dos quais um é um quadrado .... 42 Consistência Um exemplo pode ser: • falso negativo - Se a hipótese diz que deveria ser negativo mas de fato é positivo • falso positivo - Se a hipótese diz que deveria ser positivo mas de fato é negativo Por exemplo... • Diante de Hs: – t Sono(Pouco,t) Transporte(Carona,t) vaiASoparia(t) • O exemplo E08: – Sono(Pouco,t1) Transporte(Carona,t1) Conic(Não,t1) Alcool(Não,t1) Sair(Não,t1) Fome(Sim,t1) VaiASoparia(t) • é um falso positivo CIn- UFPE 43 Busca no espaço de hipóteses Existem duas soluções para o problema da complexidade da busca no espaço de hipóteses 1) busca pela melhor hipótese corrente 2) busca de engajamento mínimo CIn- UFPE 44 Busca pela melhor hipótese corrente (Current-best-hypothesis Search) Manter uma hipótese única, e ajustá-la quando um novo exemplo chega a fim de manter a consistência: Generalizando e especializando hipótese inicial Falso negativo Hipótese muito restritiva Generalização Falso positivo Hipótese muito permissiva Especialização Generalização/especialização (H1 C1) (H2 C2) (H1 mais geral que H2) • x C2(x) C1(x) • define indução por meio da dedução para usar o poder da lógica Importante: generalização/especialização podem ser operações sintáticas • variabilizar/instanciar de uma constante/variável – Conic(Sim) Conic(x) • adicionar/retirar condições: conjunções ou disjunções – Conic(Sim) Fome(Sim) Fome(Sim) – Conic(Sim) Fome(Sim) Fome(Sim) CIn- UFPE 46 Exemplo do restaurante (aima pag. 534) Alt = alternativo? Hun = fome? Rain = chove? CIn- UFPE Bar = tem área de bar? Pat = vagas livres? Res = fez reserva? Fri = é sex ou sábado? Price = preço? Est = tempo de espera 47 Exemplos positivos: X1, X3, X4; negativo: X2 X1: exemplo inicial • H1: x VaiEsperar(x) Alternativo(x) X2: falso + • H2: x VaiEsperar(x) Alternativo(x) Pessoas(x,Algumas) X3: falso - • H3: x VaiEsperar(x) Pessoas(x,Algumas) X4: falso - • H4: x VaiEsperar(x) Pessoas(x,Algumas) (Pessoas(x,Cheio) Sex/Sab(x)) Problema: backtracking CIn- UFPE 48 Busca de menor engajamento (Least-Commitment Search) Espaço de hipóteses: H1 H2 H3 ... Hn Solução 2: • Ao invés de uma hipótese, eliminamos unicamente aquelas inconsistentes com os exemplos até o momento. • Assim, cercamos (encurralamos) incrementalmente as hipóteses boas • Este conjunto de hipóteses consistentes restantes chama-se Espaço de Versões. Dois conjuntos consistentes de hipóteses • G-set borda mais geral • S-set borda mais específica CIn- UFPE 49 Região Inconsistente G1 G2 G3 ... S2 S3 ... Gn consistente Mais Geral S1 Mais Específico Região Inconsistente Sn Propriedades Toda hipótese consistente é mais específica do que algum membro do G-set e mais geral que algum membro do Sset (ninguém está fora) Toda hipótese mais específica que algum membro do Gset e mais geral que algum membro do S-set é uma hipótese consistente (não há buracos) Como atualizar G-set e S-set? • S-set – falso+ -> fora – falso- -> generalizar (não pode mais especializar) • G-set – falso+ -> especializar – falso- -> fora CIn- UFPE (não pode mais generalizar) 51 Exemplo (parte 1) exemplo 1 2 3 4 5 restaurante tonho makro tonho club tonho [?, ?, ?, ?] refeicao Café Almoço Almoço Café Café dia Quinta Quinta Sábado Domingo Domingo Custo Barato Caro Barato Barato Caro reação sim não Sim Não não Ex1+: [tonho,café,quinta,barato] G-set Ex2-: [macro,almoço,quinta,caro] [tonho,café,quinta,barato] S-set Exemplo (parte 2) [?, ?, ?, ?] [tonho, ?,?,?] [?,café,?,?] [?,?,?,barato] [tonho,café,quinta,barato] Ex1+: [tonho,café,quinta,barato] Ex2-: [makro,almoço,quinta,caro] Ex3+: [tonho,almoço,sábado,barato] Exemplo (parte 3) [?, ?, ?, ?] [tonho, ?,?,?] [?,?,?,barato] [tonho,?,?,barato] Ex1+: [tonho,café,quinta,barato] Ex2-: [makro,almoço,quinta,caro] Ex3+: [tonho,almoço,sábado,barato] [tonho,café,quinta,barato] Ex4-: [club,café,domingo,barato] Exemplo (parte 4) [?, ?, ?, ?] [tonho, ?,?,?] [?,?,?,barato] [tonho,?,?,barato] [tonho,?,?,barato] [tonho,café,quinta,barato] Ex1+: [tonho,café,quinta,barato] Ex2-: [makro,almoço,quinta,caro] Ex3+: [tonho,almoço,sábado,barato] Ex4-: [club,café,domingo,barato] Ex5-: [tonho,café,domingo,caro] Reflexões... Mesmo com aprendizagem ainda existe um bom trabalho do engenheiro de conhecimento • escolher da descrição dos objetos (exemplos) – representação e conteúdo • • • • CIn- UFPE escolha dos exemplos escolha do algoritmo de aprendizagem parametrização do algoritmo de aprendizagem avaliação dos resultados 56 Bibliografia adicional Machine Learning Vol I a IV • na biblioteca tem os dois primeiros • ler cap 1 e cap 4, do vol I, e cap 8 do vol II Generalization as search • Tom Mitchell CIn- UFPE 57