Aprendizado Bayesiano Marcelo K. Albertini 3 de Julho de 2014
2/1 Conteúdo Aprendizado Naive Bayes Exemplo: classificação de texto Redes Bayesiana Algoritmo EM Regressão probabiĺıstica
3/1 Classificador Maximum a Posteriori Assumir que função alvo f : X C, onde cada instância x é descrita por atributos a 1, a 2... a n Classe mais provável, ou seja c MAP = f (x), é: c MAP = arg max c j C P(c j a 1, a 2,..., a n ) P(a 1, a 2,..., a n c j )P(c j ) c MAP = arg max c j C P(a 1, a 2,..., a n ) = arg max c j C P(a 1, a 2,..., a n c j )P(c j )
4/1 Premissa de Naive Bayes Premissa simplificadora: atributos são independentes. P(a 1, a 2,... a n c j ) = i P(a i c j ) o que resulta no classificador Naive Bayes c NB = arg max c j C P(c j) i P(a i c j )
5/1 Algoritmo Naive Bayes NaiveBayes(exemplos) Para cada valor-alvo c j ˆP(c j ) estimativa de P(c j ) Para cada valor de atributo a i de cada atributo a ˆP(a i c j ) estimativa de P(a i c j ) ClassificarNovaInstancia(x) c NB = arg max c j C ˆP(c j ) ai x ˆP(a i c j )
6/1 Naive Bayes: exemplo Considere exemplo JogarT^enis e uma nova instância: Aparência=Ensolarado, Temp.=frio, Umidade=alta, Vento = forte Queremos computar c NB = arg max c j C P(c j) i P(a i c j ) P(sim)P(ensol. sim)p(frio sim)p(alta sim)p(forte sim) = 0.005 P(não)P(ensol. não)p(frio não)p(alta não)p(forte não) = 0.021 c NB = n
7/1 Naive Bayes: detalhes Premissa de independência condicional é frequentemente violada P(a 1, a 2,..., a n c j ) = i P(a i c j ) porém funciona bem, mesmo com ˆP(c j x) incorretas; necessita somente que arg max c j C ˆP(c j ) i ˆP(a i c j ) = arg max c j C ˆP(c j )P(a 1,... a n c j )
8/1 Naive Bayes: detalhes E se nenhuma das instâncias de treino com valor-alvo c i tem valor de atributo a i? Então ˆP(a i c j ) = 0, e... ˆP(c j ) i ˆP(a i c j ) = 0
9/1 Solução típica Usar estimativa m onde ˆP(a i c j ) n c + mp n + m n é número de exemplos de treino em que v = c j n c é número de exemplos em que v = c j e a = a i p é estimativa a priori para ˆP(a i c j ) m é peso dado para a priori (número de exemplos fantasmas ) se m = 0, temos formulação original quanto maior m, maior é a confiança no conhecimento prévio
10/1 Aprendizado de classificação de textos Aprender quais artigos de jornal são do interesse de uma pessoa Aprender a classificar páginas de acordo com tópicos Naive bayes é um dos algoritmos mais usados. Quais atributos devemos usar para representar documentos de texto?
11/1 Aprendizado de classificação de textos Conceito-alvo Interessante?: Documento {+, } Representar cada documento por um vetor de palavras: um atributo por palavra no documento Aprendizado: usar exemplos de treino para estimar P(+) P( ) P(doc +) P(doc )
12/1 Classificador Naive Bayes em textos Premissa de independência condicional de Naive Bayes P(doc c j ) = tam(doc) i=1 P(a i = w k c j ) onde P(a i = w k c j ) é a probabilidade que a palavra na posição i é w k, assumindo que a classe é c j Premissa adicional A posição da palavra não muda a probabilidade: P(a i = w k c j ) = P(a m = w k c j ), i, m
1 T r e i n o N a i v e B a y e s ( Doc [ ] exemplos, C l a s s e s C) { 2 // P : p r o b a b i l i d a d e s de cada c l a s s e 3 d o u b l e [ ] P = new d o u b l e [ C. s i z e ( ) ] ; 4 // Pw: p r o b a b i l i d a d e s de cada p a l a v r a em cada c l a s s e 5 Map<S t r i n g, d o u b l e [] > Pw = new HashMap ( ) ; 6 7 S t r i n g vocab [ ] = exemplos. o b t e r P a l a v r a s D i s t i n t a s ( ) ; 8 9 f o r ( C l a s s e c j : C) { 10 Doc [ ] d o c s c j = exemplos. comclasse ( c j ) 11 P [ c j ] = d o c s c j. s i z e ( ) / exemplos. s i z e ( ) ; 12 i n t n = d o c s c j. numerodepalavras ( ) ; 13 14 f o r ( S t r i n g a i : vocab ) { 15 i n t n c = d o c s c j. numeroocorrenciasde ( a i ) ; 16 Pw. g e t ( a i ) [ c j ] = ( n c + 1) /( n + vocab. l e n g t h ) ; 17 } 18 } 19 r e t u r n P, Pw; 20 } 13/1
14/1 1 C l a s s e C l a s s i f i c a r N B ( Doc d, C l a s s e s C, 2 d o u b l e [ ] P, 3 Map<S t r i n g, d o u b l e [] > Pw) { 4 5 S t r i n g [ ] p a l a v r a s = d. o b t e r P a l a v r a s ( ) ; 6 C l a s s e c NB = argmax (C, P, Pw, p a l a v r a s ) ; 7 r e t u r n c NB ; 8 } Função: argmax(c, P, Pw, palavras) c NB = arg max c j C log P(c j) + a i palavras log P(a i c j )
Exemplo: 20 newsgroups Dados 1000 documentos de treino de cada classe (1 lista = 1 classe). Aprender a classificar novos documentos entre as listas: comp.graphics comp.os.ms-windows.misc comp.sys.ibm.pc.hardware alt.atheism talk.religion.misc talk.politics.misc sci.space sci.crypt sci.med rec.autos misc.forsale... http://qwone.com/~jason/20newsgroups/ 15/1
16/1 Redes Bayesianas Interessante porque: Premissa de Naive Bayes de independência condicional é muito restritiva Redes Bayesiana permite melhorar premissa, mantendo a tratabilidade Combina conhecimento prévio de (in)dependências entre variáveis com dados observados
17/1 Independência condicional Definição X é condicionalmente independente de Y, considerando Z se ( x i, y j, z k )P(X = x i Y = y j, Z = z k ) = P(X = x i Z = z k ) De maneira mais compacta P(X Y, Z) = P(X Z)
18/1 Exemplo Trov~ao é condicionalmente independente de chuva, considerando raio. P(trovão chuva, raio) = P(trovão raio) Naive Bayes usa independência condicional para justificar sua premissa: P(X, Y Z) = P(X Y, Z)P(Y Z) = P(X Z)P(Y Z)
19/1 Rede Bayesiana Tempestade Turistas A =Tempestade, B =Turistas, C =Fogueira Raio Fogueira A, B A, B A, B A, B C 0.4 0.1 0.8 0.2 C 0.6 0.9 0.2 0.8 Trovão Incêndio Rede representa um conjunto de afirmações sobre independência condicional. Cada vértice é condicionalmente independente de seus não-descendentes, considerando seus pais.
20/1 Rede Bayesiana Rede representa distribuição de probabilidade conjunta sobre todas as variáveis Exemplo P(tempestade, turistas... incêndio) Em geral P(y 1,..., y n ) = n P(y i Pais(Y i )) i=1 onde Pais(Y i ) denota predecessores imediatos de Y i no grafo Então distribuição conjunta é completamente definida pelo grafo, mais P(y i Pais(Y i ))
21/1 Inferência em Redes Bayesianas Como inferir as probabilidades de variáveis da rede, considerando os valores de outras? Rede Bayesiana contém toda a informação necessária para a inferência No caso geral, problema é NP-hard Na prática, pode ser bem sucedido Métodos de inferência exatos funcionam para algumas estruturas simplificadas Métodos de Monte Carlo simulam a rede aleatoriamente para calcular soluções aproximadas
22/1 Aprendizado de Redes Bayesianas Muitas variantes para esta tarefa de aprendizado Estrutura da rede pode ser conhecida ou não Exemplos de treino podem prover valores para todas as variáveis da rede, ou apenas algumas Estrutura conhecida e sem valores faltando treino similar ao classificador de Naive Bayes.
23/1 Algoritmo EM EM : Expectativa/Esperança e Maximização Supor estrutura conhecida, variáveis parcialmente observáveis. Exemplo Possível saber Inc^endio, Tempestade, Turistas, Trov~ao, mas não Raio, Fogueira... Inicializar parâmetros ignorando informação faltante. Repetir até convergência: Passo E: computar valores esperados de variáveis não observadas assumindo valores de parâmetros atuais Passo M: computar novos valores de parâmetros para maximizar probabilidade dos dados (observados & estimados)
24/1 Exemplo EM A B C Exemplos A B C 0 1 1 1 0 0 1 1 1 1? 0 Inicialização P(B A) = P(C B) = P(A) = P(B A) = P(C B) = Passo E P(? = 1) = P(B A, C) = P(A,B, C) P(A, C) =... = Passo M P(B A) = P(C B) = P(A) = P(B A) = P(C B) = Passo E P(? = 1) =
25/1 Estrutura desconhecida Busca Estado inicial: rede vazia ou rede de conhecimento prévio Operadores: adicionar aresta, remover aresta, inverter aresta Avaliação: probabilidade a posteriori