Objetivo da aprendizagem 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 Geber Ramalho 1 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” Pode ser • incremental: atualiza hipótese a cada novo exemplo – mais flexível, situada... Porém a ordem de apresentação é importante (backtracking) • não incremental: gera h a partir de todo conjunto de exemplos – mais eficiente e prática Geber Ramalho 2 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) • • • • lógica de primeira ordem & resolução implementação mais complicada aprendizagem incremental indução lógica unicamente Geber Ramalho 3 Árvore de Decisão A partir de um conjunto de propriedades, decide sim ou nã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? Geber Ramalho 4 Árvore de Decisão “pensada” valores atributo Sono? Não. Sim. Meio de transporte? Carona CONIC? Precisa de álcool? Sim. Geber Ramalho Não. Não. CONIC? Sim. Não. Quer sair? Sim. Não. 5 ID3: exemplos da soparia Atributos: (Sono, Transporte, CONIC, Álcool, Sair, Fome)-> propriedade-objetivo • • • • • • • • • • • • 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! Geber Ramalho 6 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) Geber Ramalho 7 ID3: construção da árvore Escolha do melhor atributo • O que discrimina o maior número de exemplos • Maior ganho de informação (entropia) Candidatos: • Transporte: Não classifica imediatamente nenhum dos exemplos • Sono: Classifica de imediato 6 dos 12 exemplos • ... Geber Ramalho 8 Exemplo: atributo transporte +:E01,E02,E04,E07,E10,E11,E12 - :E03,E05,E06,E08,E09 Transporte? carro +: E01,E07,E11 -: E03,E09 Geber Ramalho carona +: E02,E04,E12 -: E08 outros +: E10 -: E05,E06 9 Exemplo: atributo sono +:E01,E02,E04,E07,E10,E11,E12 - :E03,E05,E06,E08,E09 Sono? sim +: - - -: E3, E5, E9 Geber Ramalho pouco +: E1,E2,E4, E7 -: E6,E8 não +: E10,E11,E12 -: - - - 10 Cálculo do ganho de informação Ganho(A) = I p/p+n, n/p+n - vi=1(pi+ni)/(pi+ni) I pi/pi+ni, ni/pi+ni I p/p+n, n/p+n = -p/(p+n) (log2 p/(p+n)) - n/(n+p) (log2 n/(p+n)) Onde A = atributo p = positivo n = negativo ID3: Algoritmo de aprendizagem function APRENDIZAGEM_DA_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; Geber Ramalho 12 Á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. Geber Ramalho +: E2,E4 -: E8 +: - - -: E6 Quer sair? +: E2,E4 -: - - - +: - - -: E8 Sim. Não. Não. 13 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) Geber Ramalho 14 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) Geber Ramalho 15 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 Geber Ramalho PE PB Norte AL CE 16 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. Geber Ramalho 17 Problemas gerais: overfitting Overfitting (hiper-especialização): • Evitar encontrar uma “regularidade” muito restrita nos dados Soluções: • validação cruzada • poda Geber Ramalho 18 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 Geber Ramalho Teste 19 Curva de aprendizagem Geber Ramalho 20 Exemplos Práticos 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 Mineração de dados Recuperação de Informação Geber Ramalho 21 Aprendendo descrições lógicas Version space Geber Ramalho 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)) Geber Ramalho 23 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) Geber Ramalho 24 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 Geber Ramalho 25 Hipóteses... Exemplo1 + 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 .... Geber Ramalho 26 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 Geber Ramalho 27 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 Geber Ramalho 28 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) Geber Ramalho 30 Exemplo do restaurante (aima pag. 534) Alt = alternativo? Hun = fome? Rain = chove? Geber Ramalho Bar = tem área de bar? Pat = vagas livres? Res = fez reserva? Fri = é sex ou sábado? Price = preço? Est = tempo de espera 31 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,Alguma) X3: falso - • H3: x VaiEsperar(x) Pessoas(x,Alguma) X4: falso - • H4: x VaiEsperar(x) Pessoas(x,Alguma) (Pessoas(x,Cheio) Sex/Sab(x)) Problema: backtracking Geber Ramalho 32 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 Geber Ramalho 33 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 Geber Ramalho (não pode mais generalizar) 35 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] Questões Como garantir que o algoritmo de aprendizagem pode funcionar bem nos exemplos futuros? Caso não haja garantia, como saber que ele tem alguma utilidade? Aprender regras tudo bem, mas e se elas não existirem? Geber Ramalho 40