35
PLN hmm 1 Modelos ocultos de Markov (HMM) Introducción Cálculo de la probabilidad de una observación Algoritmo Forward Algoritmo Backward Algoritmo de Viterbi Estimación de los parámetros del modelo: Algoritmo Baum-Welch (Forward-Backward) buena parte del material tomado de David Meir Blei (UCB)

PLN hmm1 Modelos ocultos de Markov (HMM) Introducción Cálculo de la probabilidad de una observación Algoritmo Forward Algoritmo Backward Algoritmo de Viterbi

Embed Size (px)

Citation preview

PLN hmm 1

Modelos ocultos de Markov (HMM)

• Introducción• Cálculo de la probabilidad de una observación• Algoritmo Forward• Algoritmo Backward• Algoritmo de Viterbi• Estimación de los parámetros del modelo:

• Algoritmo Baum-Welch (Forward-Backward)

nota: buena parte del material tomado de David Meir Blei (UCB)

PLN hmm 2

HMM 1

• Se trata de un modelo doblemente estocástico en el que el modelo del lenguaje corresponde a una máquina de estados finitos y el modelo de la comunicación es enteramente local (cada símbolo emitido depende sólo del estado en que se emite o de la transición que se efectúa).

• Un HMM puede implementarse mediante un FSA probabilístico de forma que las transiciones llevan asociada una probabilidad y la salida (asociada a los nodos) también.

PLN hmm 3

HMM 2

• En un HMM el pasado es independiente del futuro dado el presente.

• Los modelos simples de n-gram son casos particulares expresables en términos de HMM.

• Los parámetros del modelo (que debemos estimar) corresponden a las probabilidades de transición y de emisión.

PLN hmm 4

HMM 3

• 3 distribuciones de probabilidad:• probabilidad inicial: i probabilidad de estar inicialmente en

el estado i

• probabilidad de transición: aij probabilidad de, estando en el estado i, ir al estado j

• probabilidad de emisión: bi(k) probabilidad de, estando en el estado i, emitir el símbolo k.

PLN hmm 5

1

2

3

1.0

0.5

0.1

0.4

0.7

0.3

p(a) = 0.2 p(b) = 0.8

p(a) = 0.6 p(b) = 0.4

p(a) = 0.7 p(b) = 0.3

Ejemplo de modelo oculto de Markov

PLN hmm 6

• Modelo Gráfico (en el sentido probabilístico)• Los círculos denotan estados (correspondientes a

variables aleatorias)• Las flechas indican dependencias estadísticas

entre estados

HMM 4

PLN hmm 7

• Los círculos superiores denotan estados ocultos que sólo dependen de sus predecesores

HMM 5

PLN hmm 8

HMM 6

• Los círculos inferiores denotan estados visibles (observados)

• Los estados observados sólo dependen de su correspondiente estado oculto.

PLN hmm 9

HMM 7

• {S, K, • S : {s1…sN } valores de los estados ocultos

• K : {k1…kM } valores de las observaciones

SSS

KKK

S

K

S

K

PLN hmm 10

• {S, K, • probabilidades iniciales

• A = {aij} probabilidades de transición

• B = {bik} probabilidades de emisión

A

B

AAA

BB

SSS

KKK

S

K

S

K

HMM 8

PLN hmm 11

Algoritmos para tratar HMM

• Cálculo de la probabilidad de una observación (dado el modelo) con coste lineal.• Cálculo incremental de la probabilidad Fw

• Encontrar el camino mejor (el más probable) para una observación dada con coste lineal.

• Entrenamiento (estimación de los parámetros) del modelo a partir de un corpus => maximizar la probabilidad global del corpus.• Algoritmo Forward/Backward

• Cuando hablamos de observación nos referimos a una secuencia de observaciones

PLN hmm 12

)|(Calcular

),,( ,)...( 1

OP

BAooO T

oTo1 otot-1 ot+1

Dada una observación y un modelo, calcular la probabilidad de la observación

Decodificación 1

PLN hmm 13

Decodificación 2

TT oxoxox bbbXOP ...),|(2211

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

PLN hmm 14

Decodificación 3

TT oxoxox bbbXOP ...),|(2211

TT xxxxxxx aaaXP132211

...)|(

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

PLN hmm 15

Decodificación 4

)|(),|()|,( XPXOPXOP

TT oxoxox bbbXOP ...),|(2211

TT xxxxxxx aaaXP132211

...)|(

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

PLN hmm 16

Decodificación 5

)|(),|()|,( XPXOPXOP

TT oxoxox bbbXOP ...),|(2211

TT xxxxxxx aaaXP132211

...)|(

X

XPXOPOP )|(),|()|(

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

PLN hmm 17

111

1

111

1

1}...{

)|(

tttt

T

oxxx

T

txxoxx babOP

Decodificación 6

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

PLN hmm 18

)|,...()( 1 ixooPt tti

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

• Implementación eficiente usando programación dinámica• Idea: Mantener para cada estado i y tiempo t la

probabilidad de haber alcanzado el estado habiendo emitido la secuencia de observaciones hasta t

• Probabilidad forward:

Algoritmo Forward 1

PLN hmm 19

1

),( 11

joj b

jxoP

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

)1( :base Caso j

Algoritmo Forward 2

PLN hmm 20

)|(),...(

)()|()|...(

)()|...(

),...(

1111

11111

1111

111

jxoPjxooP

jxPjxoPjxooP

jxPjxooP

jxooP

tttt

ttttt

ttt

tt

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

)1( :recurrente Caso tj

Algoritmo Forward 3

PLN hmm 21

Nijoiji

ttttNi

tt

tttNi

ttt

ttNi

ttt

tbat

jxoPixjxPixooP

jxoPixPixjxooP

jxoPjxixooP

...1

111...1

1

11...1

11

11...1

11

1)(

)|()|(),...(

)|()()|,...(

)|(),,...(

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

Algoritmo Forward 4

PLN hmm 22

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

)|...()( ixooPt tTti

1)1( Ti

Nj

jioiji tbatt

...1

)1()(

Probabilidad de completar la emisión desde un estado

Algoritmo Backward 1

PLN hmm 23

oTo1 otot-1 ot+1

x1 xt+1 xTxtxt-1

N

ii TOP

1

)()|(

N

iiiOP

1

)1()|(

)()()|(1

ttOP i

N

ii

Forward Procedure

Backward Procedure

Combination

Decodificación 7

PLN hmm 24

oTo1 otot-1 ot+1

• Encontrar la secuencia de estados que explique mejor las observaciones

• Algoritmo de Viterbi

)|(maxarg OXPX

Viterbi 1

PLN hmm 25

oTo1 otot-1 ot+1

),,...,...(max)( 1111... 11

ttttxx

j ojxooxxPtt

Secuencia de estados que maximiza la probabilidad de ver las observaciones hasta el instante t-1, estando en el estado j y emitiendo la observación del instante t

x1 xt-1 j

Viterbi 2

PLN hmm 26

oTo1 otot-1 ot+1

),,...,...(max)( 1111... 11

ttttxx

j ojxooxxPtt

1)(max)1(

tjoijii

j batt

1)(maxarg)1(

tjoijii

j batt CálculoRecursivo

x1 xt-1 xt xt+1

Viterbi 3

PLN hmm 27

oTo1 otot-1 ot+1

)(maxargˆ TX ii

T

)1(ˆ1

^

tXtX

t

)(maxarg)ˆ( TXP ii

Cálculo de la secuencia más verosimil de forma backward

x1 xt-1 xt xt+1 xT

Viterbi 4

PLN hmm 28

oTo1 otot-1 ot+1

• Dada una secuencia de observaciones encontrar el modelo (= {,A,B}) que maximice la probabilidad de emitir la observación

• No existe método analítico para hacerlo

A

B

AAA

BBB B

Estimación de los parámetros 1

PLN hmm 29

• Baum-Welch (Forward-Backward)• Caso particular de la familia de algoritmos de

Expectation Maximization (EM)• Método iterativo de tipo hill-climbing

Estimación de los parámetros 2

)|(maxarg trainingOP

PLN hmm 30

• Algoritmo EM• Se ignoran (algunos de) los parámetros del modelo• No se conoce la Estructura oculta• Se dispone de una serie de observaciones• Dos etapas

• Expectation• Maximization

Estimación de los parámetros 3

PLN hmm 31

Estimación de los parámetros 4

Parámetrosdel modelo

(probabilidades)

Estructura oculta

Observaciones

E step: a partir de los parámetros actuales se recupera laestructura oculta

M step: a partir de las observaciones y de laestructura oculta se recalculan los parámetros

PLN hmm 32

Estimación de los parámetros 5

• Baum-Welch (Forward-Backward)• Comenzar con un modelo = {,A,B} inicial

• Cálculo de valores esperados del uso de las transiciones/emisiones

• Reestimar las probabilidades (el modelo) de acuerdo al modelo

• Repetir hasta lograr la convergencia

PLN hmm 33

oTo1 otot-1 ot+1

A

B

AAA

BBB B

Nmmm

jjoijit tt

tbatjip t

...1

)()(

)1()(),( 1

Probabilidad de

atravesar un arco (i,j)

Nj

ti jipt...1

),()( Probabilidad de estar en el estado i

Estimación de los parámetros 6

PLN hmm 34

oTo1 otot-1 ot+1

A

B

AAA

BBB B

)1(ˆ i i

T

t i

T

t tij

t

jipa

1

1

)(

),(ˆ

T

t i

kot t

ikt

ib t

1

}:{

)(

)(ˆ

Estimación de los parámetros 7

Reestimación de los parámetros del modelo

PLN hmm 35

Aplicaciones

• POS tagging• Generación de los parámetros de un LM• NER• NEC• chunking• ASR