13 dm (aprend bayesiano)

43
Fundamentos de Aprendizaje Bayesiano Introducción: métodos probabilísticos (bayesianos) Hipótesis MAP y ML Aprendiz Naïve Bayesiano Ej: aprendizaje a partir de textos Mitchell Cap. 6

Upload: eduardo-quintanilla

Post on 05-Aug-2015

45 views

Category:

Documents


1 download

TRANSCRIPT

Fundamentos de Aprendizaje Bayesiano

Introduccin: mtodos probabilsticos (bayesianos) Hiptesis MAP y ML Aprendiz Nave Bayesiano Ej: aprendizaje a partir de textos

Mitchell Cap. 6

Breve Introduccin

Teora de Decisin Bayesiana: apareci mucho antes que Version Spaces, aprendizaje de rboles de decisin y redes neurales. Fue estudiada en el campo de la Teora Estadstica y -ms especificamente- en el Reconocimiento de Patrones. Es la base de enfoques de aprendizaje importantes, tales como el Clasificador Bayesiano Naive, las redes bayesianas de creencias y el algoritmo EM. Tambin provee un marco en el cual estudiar otros clasificadores no-bayesianos (Ver [Mitchell, Secs. 6.3, 4,5,6]).

Acercamientos Bayesianos

La teora de probabilidades tiene muchos roles en el aprendizaje automatizado: describir un aprendiz existente ej. compararlos con un aprendiz probabilstico ptimo

desarrollar algoritmos de aprendizaje para problemas prcticos ej. Aprendiz Bayesiano Nave

El Teorema de Bayes juega un rol central.

Perspectiva

Una razn importante para estudiar el aprendizaje bayesiano es la perspectiva de comprensin de otros algoritmos que no manipulan explcitamente probabilidades. Ej: Find-S y Candidate-Elimination Ej: Redes neuronales Ej: Arboles de Decisin

Estar familiarizados con mtodos bayesianos ayuda a comprender mejor estos algoritmos.

Algunas Caractersticas salientes de los Mtodos Bayesianos

Cada ejemplo de entrenamiento observado decrementa/incrementa posibilidad de que una hiptesis es correcta (mayor flexibilidad). El conocimiento previo puede combinarse con los datos observados para determinar la probabilidad final de una hiptesis. Los mtodos bayesianos pueden acomodarse para expresar hiptesis que hacen predicciones probabilsticas (ej: este paciente tiene 93% de probabilidad de recuperarse).

Algunas Dificultades Tpicas de los Mtodos Bayesianos

Dificultad prctica: requieren conocimiento inicial de muchas probabilidades. Alternativa: utilizar estimaciones estadsticas y suposiciones. Segunda dificultad prctica: costo computacional para determinar la hiptesis bayesiana optimal (en caso gral., lineal en el nro. de hiptesis candidatas). Alternativa: en ciertos casos este costo puede reducirse.

Fundamentos de probabilidad

P(A): probabilidad de que A ocurra P(A|B): prob. de que A ocurra, dado que B ocurra (probabilidad condicional) Algunas reglas: Complemento: P(not A) = 1 - P(A) Disyuncin: P(A or B) = P(A)+P(B)-P(A and B) Conjuncin: P(A and B) = P(A) P(B|A) = P(A) P(B) si A y B son independientes

Prob. Total : si los eventos A1, A2 An son mutuamente excluyentes, con i=1..nP(Ai) =1, ent. P(B)= P(B|Ai) P(Ai)

Teorema de Bayes

Situacin tpica en ML: dado un cjto. de datos observados D, predecir la mejor hiptesis hH. Una forma de hacer esto: determinar la hiptesis ms probable, dados los datos D + conocimiento inicial sobre distintas hiptesis h1... hn. El Teorema de Bayes nos permite calcular la probabilidad de una hiptesis h a partir de:i) la probabilidad previa de h; ii) las probabilidades de observar distintos datos sabiendo que la hiptesis es h; iii) los datos observados.

Teorema de Bayes

P(h): prob. inicial de que la hiptesis h valga sin tener en cuenta los datos D ==> probabilidad previa de h Si no hay informacin ==> puede asignarse la misma probabilidad a cada hiptesis candidata. Anlogamente, P(D) = probabilidad previa de que los datos de entrenamiento D sean observados. P(D|h) -> denota la probabilidad de observar los datos D dado un mundo en el cual vale la hiptesis h. En ML, estamos interesados en P(h|D), esto es, la probabilidad posterior de h despus de haber visto el cjto. D.

Teorema de BayesP(h|D) =

P(D|h) P(h) P(D)

Intuitivamente, P(h|D) aumenta con P(h) y P(D|h). Decrece cuando P(D) aumenta. En muchos escenarios: el aprendiz considera un cjto. H={h1,h2hk} de hiptesis, y est interesado en hallar la hip. hiH ms probable a partir de los datos observados D. Cualquier hiptesis hi mximamente probable se denomina una hiptesis MAP (maximum a posteriori).

Hiptesis MAP

P(h|D) = P(D|h) P(h) / P(D) hMAP = argmaxhH P(h|D) por Bayes => hMAP = argmaxhH P(D|h)P(h) / P(D) por indep.de P(D) => hMAP = argmaxhH P(D|h)P(h)

En algunos casos se asume que todo hH es igualmente probable (ie, P(hi)=P(hj), i,j). En este caso se puede simplificar lo anterior, y escribir slo hMAP = argmaxhH P(D|h) lo que a menudo se llama la posibilidad (likelihood) de los datos dado h. Cualquier h que maximice P(D|h) es llamada hiptesis de mxima posibilidad (ML) hML = argmaxhH P(D|h)

Teorema Bayes y Machine Learning

Datos D ==> ejemplos de entrenamiento para alguna fc. meta Conjunto H ==> espacio de funciones meta candidatas.

Ejemplo: Teorema de Bayes

Ejemplo: problema de diagnstico mdico Dos hiptesis: a) el paciente tiene un tipo especial de neumona; b) el paciente no tiene nada. Hay un test que puede hacerse, con dos resultados: (positivo) o (negativo). Sabemos que slo el 0.008 % de la poblacin tiene la enfermedad. El test retorna un resultado positivo correcto en el 98% de los casos en los cuales la enfermedad realmente est presente, y un resultado negativo correcto en slo el 97% de los casos en los cuales la enfermedad no est presente. En los dems casos, el test retorna el resultado opuesto.

Ejemplo: Teorema de Bayes

Ejemplo: problema de diagnstico mdico P(neumona) = 0.008 P(neumonia)=0.992 P( | neumona) = 0.98 P( | neumona) = 0.02 P( | neumonia) = 0.03 P( | neumona) = 0.97 Testeamos a un nuevo paciente, para el cual el test da resultado positivo. Debera diagnosticrsele que tiene neumona o no? P(neumona |) = P( |neumona) P(neumona) = (0.98)(0.008) = 0.0078 P( neumona | ) = P( |neumona) P(neumona) = (0.03)(0.992) = 0.0298 hMAP = argmaxhH P(D|h) = neumona ( 0.0298 )

Ejemplo: Teorema de Bayes

Probabilidades posteriores exactas: pueden determinarse normalizando las cantidades anteriores para que sumen 1 Ej: P(neumona |) = (0.0078 / (0.0078+0.0298))= 0.21 Ej: P(neumona |) = (0.0298 / (0.0078+0.0298))= 0.79 Ntese que P() y P() no son provistos como datos,

pero lo anterior puede hacerse porque sabemos queP(neumona |) y P(neumona |) deben sumar 1.

Clasificador de Bayes Nave

Mtodo de clasificacin simple & popular Performance: comparable a redes neuronales y rboles de decisin. Se basa en : regla de Bayes + suposicin de independencia condicional suposicin a menudo violada en la prctica.. aun as, usualmente funciona bien

Aplicacin exitosa: clasificacin de documentos de texto

Clasificador de Bayes Nave

Este clasificador es aprendizaje donde

aplicable

a

tareas

de

c/instancia x es descrita por una conjuncin de valores de atributos, la funcin meta f(x) puede tomar cualquier valor vV, para un cjto. finito V. Se dan ejemplos de entrenamiento para la fc. meta, y se presenta una nueva instancia, descrita como una tupla de valores de atributos

Objetivo: que el clasificador prediga el valor meta o clasificacin de esta nueva instancia.

Clasificador de Bayes Nave

Acercamiento bayesiano: buscamos clasificar la nueva tupla de valores asignndole el valor meta ms probable.

VMAP = argmax P(vj | a1 a2 ... an ) vj V Por Teorema de Bayes P(a1 a2 ... an | vj) P(vj ) VMAP = argmax vj V P(a1 a2 ... an) = argmax P(a a ... a | v ) P(v ) 1 2 n j j vj V

Obs: los ai representan valores, no nombres de atributos

Clasificador de Bayes NaveAcercamiento bayesiano: VMAP = argmax P(a1 a2 ... an | vj) P(vj ) vj V Podramos estimar los trminos en esta ecuacin:

P(vj) -> contar la frecuencia con la que cada vj aparece en los datos de entrenamientoP(a1 a2 ... an | vj) -> no es factible de computar, a menos que tengamos enorme cantidad de datos de entrenamiento

Razn: el nmero de estos trminos es igual al nmero deposibles instancias multiplicado por el nmero de posibles valores meta! Necesitariamos ver cada instancia en el espacio de instancias muchas veces para obtener una estimacin confiable.

Clasificador de Bayes NaveAcercamiento bayesiano: VMAP = argmax P(a1 a2 ... an | vj) P(vj ) vj V Solucin: asumir independencia condicional

P(a1 a2 ... an | vj) = P(a1 | vj) * P(a2 | vj) * ... * P(an | vj)= i P(ai | vj )

Clasificador Bayesiano Naive

A partir de la suposicin de independencia condicional, la frmula anterior se simplifica a: VNB = argmax P(vj ) vj V

P(a | v )i j

i

Clasificacin Bayesiana NaiveDonde VNB es el resultado provisto como valor meta por el clasificador bayesiano nave

VNB = argmax P(vj ) vj V

P(a | v )i j

i

Clasificacin Bayesiana NaiveEspacio a evaluar: El nmero de valores diferentes para un atributo multiplicado por el nmero de valores diferentes para el atributo meta V (mucho ms chico que P(a1..an|vj)

CBN involucra un paso de aprendizaje donde se estiman los diferentes P(vj) y P(ai|vj), basados en su frecuencia en los datos de entrenamiento.El conjunto de estas estimaciones corresponde a la hiptesis aprendida. Esta hiptesis es luego usada para clasificar cada nueva instancia

VNB = argmax P(vj ) vj V

P(a | v )i j

i

Clasificacin Bayesiana NaiveCuando hay independencia condicional, el CBN que retorna VNB se comporta idntico a las clasificacin MAP. Diferencia interesante con otros mtodos: No hay bsqueda explcita en el espacio de posibles hiptesis (en este caso, el espacio de posibles valores que pueden asignarse a P(vj) y P(ai|vj). En lugar de esto, la hiptesis se obtiene simplemente computando la frecuencia de varias combinaciones de datos *sin* ejemplos de entrenamiento.

EjemploConsideremos el problema de clasificar los das en que se juega al tenis (visto anteriormente)Concepto Meta: PlayTennis

Atributos: Outlook, Temp, Humidity, WindQueremos entrenar a nuestro clasificador bayesiano a partir de ciertos ejemplos, y luego predecir la siguiente instancia:

Tarea: predecir valor meta (yes/no) para el concepto meta PlayTennis para esta nueva instancia.

VNB = argmax P(vj )vj {yes,no}

P(a | v )i j

Ejemploi

VNB = argmax P(vj ) [ P(Outlook=sunny| vj )*vj {yes,no}

P(Temp=cool| vj )* P(Humid=high| vj )* P(Wind=strong| vj ) ]

Instanciamos (a1..an) con los valores de atributos de la instancia a clasificar. Para calcular VNB recurrimos a los ejemplos de entrenamiento.

Day D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14

Outlook Sunny Sunny Overcast Rain Rain Rain Overcast Sunny Sunny Rain Sunny Overcast Overcast Rain

Temp. Hot Hot Hot Mild Cool Cool Cool Mild Cool Mild Mild Mild Hot Mild

Humid High High High High Normal Normal Normal High Normal Normal Normal High Normal High

Wind Weak Strong Weak Weak Weak Strong Strong Weak Weak Weak Strong Strong Weak Strong

PlayTennis? No No Yes Yes Yes No Yes No Yes Yes Yes Yes Yes No

EjemploP(PlayTennis=yes) = 9 / 14 = 0.64 P(PlayTennis =no) = 5 / 14 = 0.36 Similarmente, obtenemos probabilidades condicionales: P(Wind=strong | PlayTennis=yes) = 3 / 9 = 0.33 P(Wind=strong | PlayTennis = no) = 3 / 5 = 0.60 A partir de estimaciones similares resulta: P(yes)*P(sunny|yes)*P(cool|yes)*P(high|yes)* *P(strong|yes)=0.0053 P(no)*P(sunny|no)*P(cool|no)*P(high|no)* *P(strong|no)=0.0206 Normalizando VNB = (0.0206)/(0.0206+0.0053)=0.795

Estimacin de Probabilidades (1)

Hasta ahora, para estimar probabilidades usamos la nocin intuitiva ( nro. de veces evento observado / nro. total de oportunidades). Ej: P(Wind=Strong|PlayTennis=no) es una fraccin nc / n, con n=5, nc=3. Pero si nc es pequeo, la estimacin es pobre. Ej: supongamos que el valor verdadero de P(Wind=Strong|PlayTennis=no) es 0.08 y que tenemos una muestra con slo 5 ejemplos para los que PlayTennis=no. Ent. el valor ms probable para nc ser 0! (lo mnimo es 1/5 = 0.20).

Estimacin de Probabilidades (2)

Esto presenta dos problemas: 1) nc/n nos produce una (sub)estimacin sesgada de la probabilidad 2) Si hay una estimacin de probabilidad que es 0 para Wind=Strong, esto ser dominante en futuras consultas al clasificador que incluyan el uso de esta estimacin.

VNB = argmax P(vj ) vj V

P(a | v )i j

i

Clasificacin Bayesiana Naive

Estimacin de Probabilidades (3)

Solucin: m-estimador de probabilidad:

nc + mpn+mp = Estimacin previa de la probabilidad a determinar.Tpicamente: si el atributo tiene k valores posibles, asumimos p=1/k

m = constante llamada equivalent sample size, que determina cunto peso le asignamos a p en relacin a los datos observados

Aplicacin: aprender a clasificar texto

Aplicacin ejemplo: Dado el texto de un artculo de un newsgroup, adivinar de qu newsgroup ha sido tomado Bayes Nave resulta funcionar bien en esta aplicacin. Punto clave para aplicar NB: cmo representar los ejemplos? cules son los atributos?

Aplicacin: aprender a clasificar textoInternetQueryArtculos Buscados

Quiero artculos que hablen sobre cmo va a evolucionar la economa argentina este ao

Internet

ClasificadorArtculos Descartados

Aprender a clasificar texto

Espacio de Instancias X: todos los documentos de texto posibles. Supongamos ejemplos de entrenamiento de alguna fc. desconocida f(x), que puede tomar cualquier valor a partir de un cjto. V. Tarea: aprender a partir de estos ejemplos para predecir el valor meta de futuros documentos de texto. Ej: valores meta gusta y disgusta (likes/dislikes) Puntos importantes: a) cmo representar un documento arbitrario en trminos de atributos; b) cmo estimar las probabilidades requeridas por el clasificador bayesiano naive.

a) Representacin de textos

Representacin: dado un texto (ej: este prrafo), definimos un atributo para cada posicin de palabra en el documento. El valor del atributo es la palabra hallada en esa posicin. Este prrafo tendra N atributos, donde el valor del 1er. atributo es Representacin, el valor del 2do atributo es dado, del 3ro es un, etc. Documentos largos requerirn un mayor nro. de atributos que documentos cortos. Asumamos 700 documentos que un amigo clasific como disgusta y otros 300 como gusta. Nos dan un nuevo documento, y nos piden clasificarlo.

b) Aplicando Bayes NaiveVNB = argmax P(vj )vj {like,dislike}

P(a | v )i j

i

= argmax P(vj) P(a1=Representacin|vj) *vj {like,dislike}

* P(a2=dado|vj) * ..... * P(a100=etc|vj)

P(vj) ==> P(like) = 0.3, P(dislike) = 0.7En sntesis: el clasificador VNB es la clasificacin que maximiza la probabilidad de observar aquellas palabras que concretamente fueron encontradas en el documento, sujeto a la suposicin de independencia condicional.

c) Aplicando Bayes NaiveP(a1...an| vj) =

P(a | v )i j

i

Esta suposicin es fuerte (nos indica que las probabilidades de una palabra en un lugar del texto es independiente de las palabras que ocurren en otras posiciones). Ej: machine learning sern dos atributos separados, pero claramente estn interrelacionados. Pese a esta inexactitud, el clasificador Bayes Naive funciona muy bien en diversos problemas de clasificacin de textos (Domingos & Pazzani, 1996).

Consideraciones de ImplementacinVNB = argmax P(vj )vj {like,dislike}

P(a | v )i j

i

Hace falta estimar P(like) y P(dislike). Puede hacerse estadsticamente (cjto. documentos de entrenamiento ya clasificados).

Estimar

P(a1=Representacin|dislike)es ms difcil. Debe estimarse este factor para cada palabra, cada posicin, y cada valor meta (ej: 2 x 111 x 50.000 =10.000.000 combinaciones). Asumiendo: prrafo = 111 palabras; vocabulario = 50.000 trminos.

Consideraciones de ImplementacinVNB = argmax P(vj )vj {like,dislike}

P(a | v )i j

i

Estimar P( Representacin|dislike) es ms fcil. (ej: 2 x 50.000 =100.000 combinaciones). Asumiremos que la probabilidad de encontrar una palabra especfica wk (ej: casa) es independiente de su posicin. Esto equivale a asumir que todos los atributos son independientes y distribuidos uniformemente, esto es P(ai=wk|vj) = P(am=wk|vj), para todo i,j,k,m. Esto reduce el cjto. de factores de la forma P(wk|vj) a 2 x 50000 = 10.000 combinaciones.

Estimacin de Probabilidades

Finalmente, definimos un m-estimador con prioridades uniformes, con m=tamao del vocabulario. As, la estimacin para P(wk|vj) ser

nk + 1n+|Vocabulario|n=nro. total de posiciones de palabras nk=nro. de veces que la en todos los ejemplos de entrenamiento palabra w aparece entre las n k donde el valor meta es vj posiciones de palabra halladas en los datos de entrenamiento

Algoritmoprocedure learn_nave_bayes_text(Docs: set of articles, V: set of classes) Voc = todas las palabras y tokens en Docs Estimar P(vj) y P(wk|vj) para toda wk en Docs y vj en V: Docsj = subconjunto de documentos de Docs para los cuales el target value es j P(vj) = |Docsj| / |Docs| Textj = documento que se obtiene de concatenar a todos los elementos de Docsj n = nro total de posiciones de palabras distintas en Textj Para cada palabra wk en Voc nk = nro de veces que wk aparece en Texti P(wk|vj) = ( nk+1) / (n + |Voc|)

Algoritmo Clasificadorprocedure classify_nave_bayes_text(Doc: article) Retorna el valor meta estimado para el documento Doc; ai denota la palabra encontrada en la i-sima posicion dentro de Doc

Positions = posiciones de palabras en Doc que contienen tokens que aparecen en VocReturn VNB = argmaxvjV P(vj) iPositions P(ai|vj)

Resultados Experimentales

En un experimento (Joachims, 1996) se aplic este algoritmo al problema de clasificar artculos de grupos de noticia USENET. Meta de clasificacin: nombre de un grupo de Usenet en el cual apareci el artculo. 1000 articulos para 20 newsgroups (total 20.000 artculos). Objetivo: acertar newsgroup correcto para documentos nunca vistos 89% exactitud de clasificacin

Para Recordar

Teorema de Bayes y su importancia Clasificador Bayes Nave : cmo funciona, suposiciones, aplicacin a clasificacin de texto.