Aprendizagem a partir de observações Capítulo 18 (Secções 1-3)
Sumário Agentes aprendizes Aprendizagem indutiva Aprendizagem com árvores de decisão
Aprendizagem Aprendizagem é essencial em ambientes desconhecidos i.e., quando não há omnisciência Aprendizagem é útil como método construtivo i.e., o agente é exposto à realidade em vez de ser completamente definido Aprendizagem modifica o mecanismo de decisão dos agentes de modo a melhorar o seu desempenho
Agentes aprendizes
Elemento de aprendizagem O desenho de um agente de aprendizagem depende de: Componentes do desempenho que devem ser aprendidos Feedback disponível para aprender estes componentes Representação usada para os componentes Tipos de feedback Aprendizagem supervisionada: para cada exemplo é dado input e output (e.g. travar para agente taxista) Aprendizagem não supervisionada: para cada exemplo só é dado input (e.g. agente infere se é um bom/mau dia de tráfego) Aprendizagem com reforço: prémios ocasionais (e.g. gorjeta é consequência de um bom serviço)
Aprendizagem indutiva Forma mais simples: aprender uma função a partir de exemplos f é a função alvo Um exemplo é um par (x, f(x)) Problema: encontrar uma hipótese h que é uma função Tal que h f Dado um conjunto de treino de exemplos Representa um modelo muito simplificado da aprendizagem real: Ignora conhecimento à priori Assume que são dados exemplos
Aprendizagem indutiva: método Construir/ajustar h de acordo com f para um dado conjunto de treino h é consistente se está de acordo com f em todos os exemplos E.g., obter h para:
Aprendizagem indutiva: h
Aprendizagem indutiva: h
Aprendizagem indutiva: h Regra de Ockham: dar preferência à hipótese mais simples que seja consistente com os dados disponíveis (e.g. polinómio de grau 1 é preferível vs. polinómio de grau 12)
Aprendizagem com árvores de decisão Problema: decidir se esperamos por uma mesa num restaurante, com base nos seguintes atributos: 1. Alternativa: existe um restaurante alternativo próximo? 2. Bar: existe uma área de bar confortável para esperar? 3. Sexta/Sábado: hoje é Sexta ou Sábado? 4. Fome: temos fome? 5. Clientes: número de pessoas no restaurante (Nenhum, Algum, Cheio) 6. Preço: gama de preços ($, $$, $$$) 7. Chuva: está a chover lá fora? 8. Reserva: fizemos uma reserva? 9. Tipo de restaurante: Francês, Italiano, Tailandês, Burger, 10. Estimativa do tempo de espera: 0-10, 10-30, 30-60, >60
Representação baseada em atributos Exemplos descritos por valores de atributos (Booleanos, discretos, contínuos) E.g., situações em que esperamos (ou não) por uma mesa: Classificação de exemplos é positiva (T) ou negativa (F) Objectivo: aprender função objectivo (Target Wait)
Árvores de decisão Representação possível para hipóteses E.g., árvore para decidir se esperamos ou não:
Expressividade Árvores de decisão podem expressar qualquer função com base nos valores dos atributos E.g., para funções Booleanas, linha da tabela caminho até uma folha: Existe uma árvore de decisão consistente para qualquer conjunto de treino em que cada exemplo corresponde a uma caminho até uma folha (a não ser que f seja não-determinística em x) mas provavelmente não será possível generalizá-la para novos exemplos Preferência dada a árvores de decisão compactas
Espaços de hipóteses Quantas funções distintas existem para n atributos Booleanos? = número de tabelas distintas com 2 n linhas = 2 2n E.g., para 6 atributos Booleanos existem 18,446,744,073,709,551,616 funções Booleanas Necessidade de um algoritmo eficiente para encontrar hipóteses consistentes
Espaços de hipóteses Quantas hipóteses puramente conjuntivas (e.g., Hungry Rain)? Cada atributo pode aparecer positivo ou negativo ou não aparecer 3 n hipóteses conjuntivas distintas Maior expressividade do espaço de estados Aumenta a possibilidade da função alvo ser expressa Aumenta o número de hipóteses consistentes com o conjunto de treino pode dar origem a previsões piores
Aprendizagem com árvores de decisão Objectivo: encontrar uma árvore pequena consistente com os exemplos de treino Ideia: (recursivamente) escolher o atributo "mais significativo" como raiz da (sub-)árvore Se há exemplos positivos e negativos escolher o melhor atributo para os separar Se todos os exemplos são positivos ou negativos podemos terminar Se não restam exemplos, então tal situação nunca foi observada e devolvemos um valor de defeito Se não restam atributos e ainda temos exemplos positivos e negativos então temos um problema ruído nos dados (tipicamente devolve-se valor em maioria)
Aprendizagem com árvores de decisão Função DLT (ex os,atributos,defeito) devolve árvore de decisão se ex os vazio então devolve defeito senão se todos os ex os têm a mesma classificação então devolve classificação senão se atributos está vazio então devolve Maioria(ex os ) senão melhor EscolheAtributo(atributos, ex os ) árvore nova árvore com melhor na raiz m Maioria(ex os ) paracada valor v i de melhor ex os {elementos de ex os com melhor=v i } sub-árvore DTL(ex os,atributos-melhor,m) adiciona um ramo à árvore com etiqueta v i e sub-árvore devolve verdadeiro
Escolha de atributo Ideia: um bom atributo separa exemplos em subconjuntos que são (idealmente) todos positivos ou todos negativos Clientes? É uma boa escolha!
Teoria de informação Usada para implementar EscolheAtributo no algoritmo DTL Considere-se um conjunto de S elementos log 2 ( S ) corresponde ao número mínimo de vezes que temos de dividir um conjunto ao meio para identificar um elemento log 2 (1) = 0, log 2 (2) = 1, log 2 (3) = 1, log 2 (4) = 2, log 2 (5) = 2, log 2 (6) = 2, log 2 (7) = 2, log 2 (8) = 3, Podemos considerar que o número de divisões corresponde ao número de questões
Teoria de informação Considere-se um conjunto de P+N elementos, sendo P/N os elementos classificados positivamente/negativamente log 2 ( P ) questões no caso do elemento pertencer a P log 2 ( N ) questões no caso do elemento pertencer a N Número de questões: p P log 2 ( P ) + p N log 2 ( N ) P P/N é a probabilidade do elemento pertencer a P/N Para uma amostra de dimensão S=12, com P P = P N = 0.5 vem 2*0.5 log 2 (6)=2 Para S=12, P P = 0.75 e P N = 0.25 vem 0.75*log 2 (9)+0.25*log 2 (3)=1.75
Teoria de informação Conteúdo de informação (entropia): I(P(v 1 ),, P(v n )) = Σ i=1 -P(v i ) log 2 P(v i ) Para um conjunto de treino com p exemplos positivos e n exemplos negativos: Número de perguntas que se poupa por saber que o conjunto está dividido em P e N I( p, p n n ) p n p p n log 2 log 2 p n p n p n n p n Para o caso do restaurante: P=N=6 6 6 6 6 6 6 I(, ) log log2 2*( 0.5)*( 1) 12 12 12 12 12 12 2 1
Ganho de informação Um dado atributo A divide o conjunto de treino E em sub-conjuntos E 1,, E v de acordo com os valores para A, em que A tem v valores distintos Entropia depois da separação em função de A dada por: Ganho de informação (GI) ou redução de entropia para o atributo A: Escolher o atributo com o maior GI v i i i i i i i i i n p n n p p I n p n p A resto 1 ), ( ) ( ) ( ), ( ) ( A resto n p n n p p I A GI
Ganho de informação Para o conjunto de treino, p = n = 6, I(6/12, 6/12) = 1 bit Considerar os atributos Clientes e Tipo (e também os outros): 2 4 6 GI( Clientes) 1 [ I(0,1) I(1,0) 12 12 12 2 1 1 2 1 1 4 GI( Tipo) 1 [ I(, ) I(, ) 12 2 2 12 2 2 12 2 I(, 6 2 I(, 4 4 )] 6 2 ) 4.0541 bits 4 12 2 2 I(, )] 4 4 0 bits Clientes tem o GI mais elevado entre todos os atributos e portanto é escolhido pelo algoritmo DTL como raiz
Exemplo (cont.) Árvore de decisão aprendida a partir dos 12 exemplos: Substancialmente mais simples do que a árvore inicial a pouca quantidade de informação disponível não justifica uma hipótese mais complexa
Medida de desempenho Como é que sabemos se h f? Idealmente, verificando se a classificação prevista coincide com a classificação real para um conjunto de teste de exemplos Na prática é adoptado um procedimento iterativo 1. Obter um conjunto de exemplos 2. Dividir o conjunto em 2 conjuntos disjuntos: conjunto de treino e conjunto de teste 3. Aplicar o algoritmo de aprendizagem ao conjunto de treino, e obter uma hipótese h 4. Medir a percentagem de exemplos do conjunto de teste correctamente classificados por h 5. Repetir os passos 2-4 para diferentes conjuntos de treino de diferentes dimensões (obtidos aleatoriamente)
Medida de desempenho Curva de aprendizagem = % h f no conjunto de teste em função da dimensão do conjunto de treino
DLTs: problemas Falhas de dados Atributos com inúmeros valores Atributos com domínios contínuos ou contínuos mas ilimitados Classificações não discretas Aplicações no mundo real têm de considerar estes aspectos
Sumário Aprendizagem necessária para ambientes desconhecidos, desenho de agentes incompleto Agente aprendiz = desempenho + aprendizagem Para aprendizagem supervisionada, o objectivo é encontrar uma hipótese simples aproximadamente consistente com os exemplos de treino Aprendizagem com árvores de decisão usa ganho de informação Desempenho de aprendizagem = precisão da previsão medida com um conjunto de teste