Aprendizado Bayesiano Disciplina: Sistemas Inteligentes Aprendizagem Bayesiana Fornece probabilidades para suas respostas Permite combinar facilmente conhecimento a priori com dados de observação Métodos práticos e bem sucedidos para aprendizagem Aprendizagem Bayesiana Ingênua Aprendizagem de Redes Bayesianas Teorema de Bayes Calcula a probabilidade de diferentes hipóteses a medida que novas evidências são observadas. Seja h : hipótese e D: evidência Objetivo: Calcular P(h/D) P(h /D) = P(D / h)P(h) P(D) P(h): probabilidade a priori de h P(D): probabilidade a priori de D P(D/h): probabilidade de observar D dado que h aconteceu Exemplo: Classificar Risco - Seguradora de Veículos Hipóteses: {risco=alto; risco=baixo} Probabilidades a priori: P(risco = alto) = 0.2 P(risco = baixo) = 0.8 Clientes: sexo = masculino, ou sexo = feminino Pergunta: Qual a probabilidade a posteriori? Qual a P(risco = alto | sexo = M) ? Qual a P(risco = alto | sexo = F) ? Exemplo: Classificar Risco - Seguradora de Veículos Evidência ‘sexo = M’: P(risco = alto) = 0.2 P(sexo = M) = 0.6 P(sexo = M / risco = alto) = 0.7 P(h /D) = P(D / h)P(h) P(D) P(risco = alto | sexo = M) = P(sexo = M / risco = alto) * P(risco = alto) = P(sexo = M) = 0.7 * 0.2 / 0.6 = 0.23 P(risco = baixo|sexo=M) = 1 – 0.23 = 0.77 Exemplo: Classificar Risco - Seguradora de Veículos Evidência ‘sexo = F’: P(risco = alto) = 0.2 P(sexo = F) = 0.4 P(sexo = F / risco = alto) = 0.3 P(h /D) = P(D / h)P(h) P(D) P(risco = alto | sexo = F) = P(sexo = F / risco = alto) * P(risco = alto) = P(sexo = F) = 0.3 * 0.2 / 0.4 = 0.1 P(risco = baixo|sexo=F) = 1 – 0.1 = 0.9 Escolha das Hipóteses Geralmente, existe um espaço de hipóteses (H), e desejase a hipótese (hH) mais provável, observados os dados de treinamento (D) Hipótese de máxima a posteriori hMAP h MAP arg max P( h / D) hH P( D / h ) P( h ) arg max P( D ) hH arg max P( D / h )P( h ) hH Hipótese de máxima verossimilhança hML (supondo que P(hi)=P(hj)) h ML arg max P( D / h i ) hiH Aprendizagem pelo Método da Força Bruta 1. Para cada hipótese h H, calcule a probabilidade a posteriori P( D / h )P( h ) P( h / D) P( D) 2. Escolha a hipótese hMAP de maior probabilidade à posteriori h MAP arg max P( h / D) hH Aprendizagem pelo Método da Força Bruta Suponha que D é o conjunto de exemplos D = {(x1, f(x1)), (xm, f(xm))} Cálculo de P(D/h) P(D/h) = 1, se h é consistente com D (ou seja f(xi) = h(xi), (x1, f(xi)) D) P(D/h) = 0, caso contrário Aprendizagem pelo Método da Força Bruta Escolha P(h) sob a hipótese de distribuição uniforme 1 P( h ) H hH P(D) = |VSH,D| |H| onde VSH,D é subconjunto de hipóteses de H consistentes com D Aprendizagem pelo Método da Força Bruta Cálculo da probabilidade a posteriori: Se h é inconsistente com D P(h/D) = P(D/h)P(h) = 0 * P(h) = 0 P(D) P(D) Se h é consistente com D P(h/D) = P(D/h)P(h) P(D) 1 = 1 * |H| = |VSH,D| |H| 1 |VSH,D| Exemplo: Método da Força Bruta Considere H = {h1, h2, h3, h4} h1: risco = alto, h2: risco = baixo h3: se sexo = M então risco = alto senão risco = baixo h4: se sexo = M então risco = baixo senão risco = alto Considere exemplo: D1 = {sexo = M, risco = alto} Então VSH,D1 = {h1, h3}, P(h1|D1) = P(h3|D1) = 0.5 e P(h2|D1) = P(h4|D1) = 0 Considere exemplo: D2 = {sexo = F, risco = baixo} Então VSH,{D1,D2} = {h3}, P(h3|{D1,D2}) = 1 e P(h1|{D1,D2}) = P(h2|{D1,D2}) = P(h4|{D1,D2}) = 0 Evolução das Probabilidades a Posteriori P(h) P(h|D1) hipóteses (a) P(h|D1,D2) hipóteses (b) hipóteses (c) • em (a) todas as hipóteses tem a mesma probabilidade • em (b) e (c) a medida que novos exemplos são adquiridos, a probabilidade a posteriori das hipóteses inconsistentes se tornam nulas, enquanto que a probabilidade a posteriori das hipóteses que restaram no espaço de versões aumenta Método da Força Bruta – Observações Na prática: só funciona quando o conceito verdadeiro está contido no espaço de hipóteses funciona com dados sem ruído No cálculo da probabilidade P(h/D) pode se levar em consideração erro obtido pela hipótese h no conjunto D o tamanho da hipótese Classificador Bayesiano Ótimo Dada uma nova instância x, qual é a sua classificação mais provável? hMAP(x) nem sempre é a classificação mais provável Considere três hipóteses: P(h1/D) = 0.4, P(h2/D) = 0.3 e P(h3/D) = 0.3 Dada uma nova instância x a ser classificada como alto (+) ou baixo (-): Suponha: h1(x) = +, h2(x) = - e h3(x) = - A classificação mais provável de x? Classificador Bayesiano Ótimo Se a possível classificação do novo exemplo pode ser qualquer vj V, a probabilidade de que a classificação correta seja vj P( v j / D) P( v h iH j / h i )P( h i / D) Classificação Bayesiana ótima arg max P( v j / h i )P( h i / D) v jV h iH Classificador Bayesiano Ótimo Exemplo P(h1/D) = 0.4, P(-/h1) = 0, P(+/h1) = 1 P(h2/D) = 0.3, P(-/h2) = 1, P(+/h2) = 0 P(h3/D) = 0.3, P(-/h3) = 1, P(+/h3) = 0 Portanto P( / h )P(h i / D) 0.4 P( / h )P(h i / D) 0.6 h iH e h iH i i arg max P( v j / h i )P( h i / D) v jV h iH Classificador Bayesiano Ingênuo Suponha uma função de classificação f: X V, onde cada instância x é descrita pelos atributos {a1, , an} O valor mais provável de f(x) é v MAP arg max P( v j / a1 ,, a n ) v jV arg max P( a 1 , , a n / v j ) P( v j ) P( a 1 , , a n ) arg max P(a1 ,, a n / v j )P( v j ) v jV v jV Classificador Bayesiano Ingênuo vMAP arg max P(a1 , , an / vj )P( vj ) v j V Calcular P(vj) a partir dos dados de treinamento é fácil, o problema é calcular a probabilidade P(a1,..., an | vj) Suposição Bayesiana Ingênua: P(a1 ,, a n / v j ) P( a i ou seja, as variáves são a1,..., an independentes Classificador Bayesiano Ingênuo (NB): v NB arg max P( v j ) P(a i / v j ) v jV i i / vj) Classificador Bayesiano Ingênuo Estimativa das Probabilidades P(vj) e P(ai/vj) através das freqüências relativas P’(vj) e P’(ai/vj) Para cada vj P’(vj) estimativa de P(vj) Para cada valor ai de cada atributo a • P’(ai/vj) estimativa de P(ai/vj) Classificador de novas instancias(x) v NB arg max P' ( v j ) P' (a i / v j ) v jV a ix Classificador Bayesiano Ingênuo: Exemplo • • • • • • • • • • • Dia D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 Tempo Sol Sol Coberto Chuva Chuva Chuva Coberto Sol Sol Chuva • D11 Sol Temp. Quente Quente Quente Normal Frio Frio Frio Normal Frio Normal Frio Humid. Alta Alta Alta Alta Normal Normal Normal Alta Normal Normal Vento Fraco Forte Fraco Fraco Fraco Forte Forte Fraco Fraco Fraco Jogar Não Não Sim Sim Não Não Sim Não Sim Sim Alta Forte ? P(Sim) = 5/10 = 0.5 P(Não) = 5/10 = 0.5 P(Sol/Sim) = 1/5 = 0.2 P(Sol/Não) = 3/5 = 0.6 P(Frio/Sim) = 2/5 = 0.4 P(Frio/Não) = 2/5 = 0.4 P(Alta/Sim) = 2/5 = 0.4 P(Alta/Não) = 3/5 = 0.6 P(Forte/Sim) = 1/5 = 0.2 P(Forte/Não) = 2/5 = 0.4 P(Sim)P(Sol/Sim) P(Frio/Sim) P(Alta/Sim) P(Forte/Sim) = = 0.0032 P(Não)P(Sol/Não)P(Frio/Não) P(Alta/Não) P(Forte/Não) = = 0.0288 Jogar_Tenis (D11) = Não Algoritmo Bayesiano Ingênuo: Dificuldades Suposição de independência condicional quase sempre violada, mas funciona surpreendentemente bem P ( a 1 , , a n / v j ) P( a i / v j ) i O que acontece se nenhuma das instancias classificadas como vj tiver o valor ai? P' (a i / v j ) 0 P' ( v j ) P' (a i / v j ) 0 i Algoritmo Bayesiano Ingênuo: Dificuldades Solução típica P ' (a i / v j ) nc m p nm n é o número de exemplos para os quais v = vj nc número de exemplos para os quais v = vj e a = ai p é a estimativa à priori para P’(ai/vj) m é o peso dado à priori (número de exemplos “virtuais”) Exemplo: Classificação de Documentos Classificar documentos em duas classes vj = {‘interesse’, ‘nãointeresse} Variáveis a1,..., an são palavras de um vocabulário e P’(ai/vj) é a freqüência com que a palavra ai aparece entre os documentos da classe vj P’(vj) = número de documentos da classe vj número total de documentos Exemplo: Classificação de Documentos P’(ai/vj) = nij + 1 nj + |Vocabulário| onde nj é o número total de palavras nos documentos da classe vj e nij é o número de ocorrências da palavra ai nos documentos da classe vj. Usa-se m = |Vocabulário| e p = 1/ |Vocabulário| (assumindo que cada palavra tem a mesmo probabilidade de ocorrência) Exemplo: Classificação de Documentos Classificação Final: v NB arg max P' ( v j ) P' (a i / v j ) v jV a ix Observação: nem sempre a ocorrência de uma palavra independe das outras palavras. Exemplo: ‘Inteligência’ e ‘Artificial’. Redes Bayesianas Uma Rede Bayesiana é um grafo acíclico e dirigido onde: Cada nó da rede representa uma variável aleatória Um conjunto de ligações ou arcos dirigidos conectam pares de nós cada nó recebe arcos dos nós que tem influência direta sobre ele (nós pais). Cada nó possui uma tabela de probabilidade condicional associada que quantifica os efeitos que os pais têm sobre ele Exemplo Tempestade Ônibus de Turismo Fogo no Acampamento Raio Trovão Fogo na floresta T,O T,O T, O T, O Distribuição de Probabilidade: P(FA/T,O) FA 0.4 FA 0.6 0.1 0.9 0.8 0.2 0.2 0.8 Fogo no Acampamento Aprendizagem de Redes Bayesianas Variantes da tarefa de aprendizagem A estrutura da rede pode ser conhecida ou desconhecida O conjunto de treinamento pode fornecer valores para todas as variáveis da rede ou para somente algumas Se a estrutura é conhecida e todas as variáveis observadas Então é tão fácil como treinar um classificador Bayesiano ingênuo Aprendizagem de Redes Bayesianas Suponha a estrutura conhecida e variáveis parcialmente observáveis Exemplo, observa-se fogo na Floresta, Tempestade, Ônibus de turismo, mas não Raio, Fogo no Acampamento Aprende-se a tabela de probabilidades condicionais de cada nó usando o algoritmo do gradiente ascendente O sistema converge para a rede h que maximiza localmente ln (P(D/h)) Exemplo Tempestade Ônibus de Turismo Fogo no Acampamento Raio Trovão Fogo na floresta T,O T,O T, O T, O Distribuição de Probabilidade: P(FA/T,O) FA FA ? ? ? ? ? ? ? ? Fogo no Acampamento Gradiente Ascendente para Redes Bayesianas Seja wijk uma entrada na tabela de probabilidade condicional para a variável Yi na rede wijk = P(Yi = yij/Predecessores(Yi) = lista uik de valores) Exemplo, se Yi = Fogo no Acampamento, então uik pode ser {Tempestade = T, Ônibus de Turismo = O} Aplicar o gradiente ascendente repetidamente Atualizar todos os wijk usando os dados de treinamento D w ijk w ijk Ph ( yij , u ik / d ) dD w ijk Normalizar os wijk para assegurar w j ijk 1 e 0 w ijk 1 Aprendizagem da Estrutura de Redes Bayesianas Métodos baseados em Busca e Pontuação Busca no espaço de estruturas Cálculo das tabelas de probabilidade para cada estrutura Definição da medida de avaliação (Pontuação) Ex.: Minimum Descrition Length (MDL) Operadores de busca (adição, remoção ou reversão de arcos da rede) Processo de busca prossegue enquanto a pontuação de uma rede for significativamente melhor que a anterior Ex: K2(Cooper e Herskovits, 1992) Aprendizagem da Estrutura de Redes Bayesianas Métodos baseados em análise de dependência Arcos são adicionados ou removidos dependendo de um teste de independência condicional entre os nós Teste de independência pode ser feito entre pares de nós ou com um conjuntos maior de variáveis condicionais Ex: CDL(Chen, Bell e Liu 1997) Aprendizagem da Estrutura de Redes Bayesianas Métodos baseados em Busca e Pontuação Vantagem: Menor complexidade no tempo Desvantagem: Não garante encontrar melhor solução Métodos baseados em análise de dependência Vantagem: Sob certas condições, encontra a melhor solução Desvantagem: Teste de independência com uma quantidade muito grande de variáveis pode se tornar inviável Conclusões Aprendizado Bayesiano pode ser usado para determinar as hipóteses mais prováveis dado um conjunto de exemplos Fornece algoritmos que podem ser usados na prática Classificador Bayesiano Ingênuo Redes Bayesianas Bibliografia Russel, S, & Norvig, P. (1995). Artificial Intelligence: a Modern Approach (AIMA) Prentice-Hall. Pages 436-458, 588-593 Mitchell, T. & (1997): Machine Learning, McGrawHill. Cap.6 Fayyad et al. (1996): Advances in knowledge discovery and data mining, AAAI Press/MIT Press. Cap.11 Pearl, J. (1988) Probabilistic Reasoning in Inteligent Systems