Aprendizado Bayesiano
Marcelo K. Albertini
Conte´
udo
I Aprendizado Naive Bayes
I Exemplo: classifica¸c˜ao de texto
I Redes Bayesiana
I Algoritmo EM
Classificador Maximum a Posteriori
Assumir que fun¸c˜ao alvo f : X → C , onde cada instˆancia x ´e descrita por atributos ha1, a2. . . ani
Classe mais prov´avel, ou seja cMAP = f (x ), ´e: cMAP = arg max
cj∈C
P(cj|a1, a2, . . . , an) cMAP = arg max
cj∈C P(a1, a2, . . . , an|cj)P(cj) P(a1, a2, . . . , an) = arg max cj∈C P(a1, a2, . . . , an|cj)P(cj)
Premissa de Naive Bayes
Premissa simplificadora: atributos s˜ao independentes. P(a1, a2, . . . an|cj) =
Y
i
P(ai|cj) o que resulta no classificadorNaive Bayes
cNB = arg max cj∈C P(cj) Y i P(ai|cj)
Algoritmo Naive Bayes
NaiveBayes(exemplos) Para cada valor-alvo cj
I P(cˆ j) ← estimativa de P(cj)
I Para cada valor de atributo ai de cada atributo a ˆ
P(ai|cj) ← estimativa de P(ai|cj)
ClassificarNovaInstancia(x) cNB = arg max cj∈C ˆ P(cj) Y ai∈x ˆ P(ai|cj)
Naive Bayes: exemplo
Considere exemplo JogarT^enis e uma nova instˆancia:
hAparˆencia=Ensolarado, Temp.=frio, Umidade=alta, Vento = fortei Queremos computar cNB = arg max cj∈C P(cj) Y i P(ai|cj)
P(sim)P(ensol.|sim)P(frio|sim)P(alta|sim)P(forte|sim) = 0.005 P(n˜ao)P(ensol.|n˜ao)P(frio|n˜ao)P(alta|n˜ao)P(forte|n˜ao) = 0.021
Naive Bayes: detalhes
Premissa de independˆencia condicional ´e frequentemente violada P(a1, a2, . . . , an|cj) =
Y
i
P(ai|cj)
por´em funciona bem, mesmo com ˆP(cj|x) incorretas; necessita somente que arg max cj∈C ˆ P(cj) Y i ˆ
P(ai|cj) = arg max cj∈C
ˆ
Naive Bayes: detalhes
E se nenhuma das instˆancias de treino com valor-alvo ci tem valor de atributo ai? Ent˜ao ˆ P(ai|cj) = 0, e ... ˆ P(cj) Y i ˆ P(ai|cj) = 0
Solu¸c˜
ao t´ıpica
Usar estimativa m ˆ P(ai|cj) ← nc+ mp n + m ondeI n ´e n´umero de exemplos de treino em que v = cj
I nc ´e n´umero de exemplos em que v = cj e a = ai
I p ´e estimativa a priori para ˆP(ai|cj)
I m ´e peso dado para a priori (n´umero de exemplos “fantasmas”)
I se m = 0, temos formula¸c˜ao original
Aprendizado de classifica¸c˜
ao de textos
I Aprender quais artigos de jornal s˜ao do interesse de uma pessoa
I Aprender a classificar p´aginas de acordo com t´opicos
Naive bayes ´e um dos algoritmos mais usados.
Quais atributos devemos usar para representar documentos de texto?
Aprendizado de classifica¸c˜
ao de textos
Conceito-alvo Interessante? : Documento → {+, −}
I Representar cada documento por um vetor de palavras: um atributo por palavra no documento
I Aprendizado: usar exemplos de treino para estimar
I P(+) I P(−) I P(doc|+) I P(doc|−)
Classificador Naive Bayes em textos
Premissa de independˆencia condicional de Naive Bayes
P(doc|cj) =
tam(doc) Y
i =1
P(ai = wk|cj)
onde P(ai = wk|cj) ´e a probabilidade que a palavra na posi¸c˜ao i ´e wk, assumindo que a classe ´e cj
Premissa adicional
A posi¸c˜ao da palavra n˜ao muda a probabilidade: P(ai = wk|cj) = P(am= wk|cj), ∀i , m
1 T r e i n o N a i v e B a y e s ( Doc [ ] e x e m p l o s , 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 c a d a 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 c a d a p a l a v r a em c a d a 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 v o c a b [ ] = e x e m p l o s . 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 = e x e m p l o s . c o m C l a s s e ( c j ) 11 P [ c j ] = d o c s c j . s i z e ( ) / e x e m p l o s . s i z e ( ) ; 12 i n t n = d o c s c j . n u m e r o D e P a l a v r a s ( ) ; 13 14 f o r ( S t r i n g a i : v o c a b ) { 15 i n t n c = d o c s c j . n u m e r o O c o r r e n c i a s D e ( a i ) ; 16 Pw . g e t ( a i ) [ c j ] = ( n c + 1 ) / ( n + v o c a b . l e n g t h ) ; 17 } 18 } 19 r e t u r n P , Pw ; 20 }
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¸c˜ao: argmax(C, P, Pw, palavras)
cNB = arg max cj∈C log P(cj) + X ai∈palavras log P(ai|cj)
Exemplo: 20 newsgroups
Dados 1000 documentos de treino de cada classe (1 lista = 1 classe).
Aprender a classificar novos documentos entre as listas:
I comp.graphics I comp.os.ms-windows.misc I comp.sys.ibm.pc.hardware I alt.atheism I talk.religion.misc I talk.politics.misc I sci.space I sci.crypt I sci.med I rec.autos I misc.forsale
Redes Bayesianas
Interessante porque:
I Premissa de Naive Bayes de independˆencia condicional ´e muito restritiva
I Redes Bayesiana permite melhorar premissa, mantendo a tratabilidade
I Combina conhecimento pr´evio de (in)dependˆencias entre vari´aveis com dados observados
Independˆ
encia condicional
Defini¸c˜ao
X ´e condicionalmente independente de Y , considerando Z se
(∀xi, yj, zk)P(X = xi|Y = yj, Z = zk) = P(X = xi|Z = zk)
De maneira mais compacta
Exemplo
Trov~ao´e condicionalmente independente dechuva, considerando
raio.
P(trov˜ao|chuva, raio) = P(trov˜ao|raio)
Naive Bayes usa independˆencia condicional para justificar sua premissa:
P(X , Y |Z ) = P(X |Y , Z )P(Y |Z ) = P(X |Z )P(Y |Z )
Rede Bayesiana
Tempestade Turistas Raio Trov˜ao Fogueira Incˆendio A =Tempestade, B =Turistas, C =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.8Rede representa um conjunto de afirma¸c˜oes sobre independˆencia condicional.
Rede Bayesiana
Rede
representa distribui¸c˜ao de probabilidade conjunta sobre todas as vari´aveis
I Exemplo P(tempestade, turistas . . . incˆendio)
I Em geral P(y1, . . . , yn) = n Y i =1 P(yi|Pais(Yi))
onde Pais(Yi) denota predecessores imediatos de Yi no grafo
I Ent˜ao distribui¸c˜ao conjunta ´e completamente definida pelo grafo, mais P(yi|Pais(Yi))
Inferˆ
encia em Redes Bayesianas
Como inferir as probabilidades de vari´aveis da rede, considerando os valores de outras?
I Rede Bayesiana cont´em toda a informa¸c˜ao necess´aria para a inferˆencia
I No caso geral, problema ´e NP-hard Na pr´atica, pode ser bem sucedido
I M´etodos de inferˆencia exatos funcionam para algumas estruturas simplificadas
I M´etodos de Monte Carlo “simulam” a rede aleatoriamente para calcular solu¸c˜oes aproximadas
Aprendizado de Redes Bayesianas
Muitas variantes para esta tarefa de aprendizado
I Estrutura da rede pode ser conhecida oun˜ao
I Exemplos de treino podem prover valores para todas as vari´aveis da rede, ouapenas algumas
Estrutura conhecida e sem valores faltando treino similar ao classificador de Naive Bayes.
Algoritmo EM
EM : Expectativa/Esperan¸ca e Maximiza¸c˜ao
Supor estrutura conhecida, vari´aveis parcialmente observ´aveis. Exemplo
Poss´ıvel saberInc^endio,Tempestade,Turistas,Trov~ao, mas n˜aoRaio,Fogueira...
Inicializar parˆametros ignorando informa¸c˜ao faltante. Repetir at´e convergˆencia:
I Passo E: computar valores esperados de vari´aveis n˜ao observadas assumindo valores de parˆametros atuais
I Passo M: computar novos valores de parˆametros para
Exemplo EM
A B C Exemplos A B C 0 1 1 1 0 0 1 1 1 1 ? 0 Inicializa¸c˜ao P(B|A) = P(C |B) = P(A) = P(B|¬A) = P(C |¬B) = Passo EP(? = 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) =
Estrutura desconhecida
Busca
I Estado inicial: rede vazia ou rede de conhecimento pr´evio
I Operadores: adicionar aresta, remover aresta, inverter aresta