fbpx
Wikipedia

Algoritmo de Viterbi

El algoritmo de Viterbi es un algoritmo de programación dinámica que permite hallar la secuencia más probable de estados ocultos (el llamado camino de Viterbi) que produce una secuencia observada de sucesos, especialmente en el contexto de fuentes de información de Márkov y modelos ocultos de Márkov.

Se aplica de forma general en la descodificación de códigos convolucionales usados en redes de telefonía celular digital GSM y CDMA, módems de líneas conmutadas, satélites, comunicaciones espaciales y redes inalámbricas IEEE 802.11. También se usa en reconocimiento del habla, síntesis de habla, diarización, búsqueda de palabras clave, lingüística computacional y bioinformática.

Introducción Editar

El algoritmo de Viterbi permite encontrar las secuencias de estados más probable en un Modelo oculto de Márkov (MOM),  , a partir de una observación  , es decir, obtiene la secuencia óptima que mejor explica la secuencia de observaciones.

Consideremos la variable   que se define como:

 

  es la probabilidad del mejor camino hasta el estado   habiendo visto las   primeras observaciones. Esta función se calcula para todos los estados e instantes de tiempo.

 

Puesto que el objetivo es obtener las secuencia de estados más probable, será necesario almacenar el argumento que hace máxima la ecuación anterior en cada instante de tiempo   y para cada estado   y para ello utilizamos la variable  .

A continuación se detalla el proceso completo utilizando las funciones   y  .

Algoritmo Editar

Inicialización Editar

 

donde  

Recursión Editar

 ,

 ,

donde:

 ,

 

Terminación Editar

 

Reconstrucción de la secuencia de estados más probable Editar

 ,

donde:

 

Algunos de los cálculos del algoritmo de Viterbi recuerdan a los del algoritmo forward necesario para calcular eficientemente la probabilidad de una secuencia de observables. Una de las diferencias es la incorporación de la función   (en lugar de sumar las probabilidades) para calcular la secuencia de estados más probable.

Ejemplo de secuencia de estados más probable

La figura muestra un ejemplo de secuencia de estados más probable en un Modelo Oculto de Márkov de 5 estados dada una secuencia de observaciones de longitud 5.

 

Aplicación del algoritmo de Viterbi Editar

Muy usado para reconocimiento de voz, biología molecular, fonemas, palabras, codificadores entre otros. A cada secuencia de estados le corresponde una secuencia de etiquetas (o labels) de clasificación, es decir, palabras, caracteres, fonemas, sufijos. Dada una secuencia observada, se deduce la más probable secuencia de estados.

Desambiguación léxica categorial Editar

Una de las aplicaciones del algoritmo de Viterbi es en el área de procesamiento del lenguaje natural, más concretamente en el proceso de desambiguación léxica categorial.

En este caso particular, los elementos de un Modelo Oculto de Márkov serían los siguientes:

  • El conjunto   de estados sería el conjunto de posibles etiquetas (categorías gramaticales) para las palabras.
  • El conjunto   de observables en cada uno de los estados corresponde con el conjunto de palabras distintas.
  • El conjunto   de probabilidades de transiciones entre estados sería la probabilidad de que una determinada categoría categorial siga a otra. Por ejemplo, la probabilidad de que la categoría nombre vaya detrás de la categoría determinante.
  • El conjunto   de probabilidades de las observaciones correspondería con la probabilidad de pertenencia de una palabra (un observable) a una determinada categoría. Por ejemplo, la probabilidad de que la palabra casa sea verbo, que será menor que la probabilidad de que esta misma palabra tenga la categoría gramatical nombre.

La figura siguiente muestra un ejemplo de etiquetado gramatical para la oración "Coto privado de caza"

 

En él, los observables son la secuencia de palabras de la oración. Se puede observar como para cada palabra se contempla sólo un conjunto limitado de posibles categorías gramaticales (caza puede ser o nombre o verbo). Este es debido a que la probabilidad de pertenencia de determinadas palabras a una categoría gramatical es nula (como la probabilidad de que la palabra caza sea adverbio). Esto simplifica enormemente los cálculos en el modelo.

Otras preguntas fundamentales Editar

Otros dos problemas que es importante saber resolver para utilizar los MOM son:

  1. ¿Cuál es la probabilidad de una secuencia de observaciones   dado un modelo  ? Es decir, ¿cómo podemos calcular de forma eficiente  ?. Para esto se puede usar el algoritmo de avance-retroceso.
  2. Dada una secuencia de observaciones  , ¿cómo podemos estimar los parámetros del modelo   para maximizar  . En este caso el objetivo es encontrar el modelo que mejor explica la secuencia observada. Para esto se puede usar el algoritmo de Baum-Welch.

Véase también Editar

Referencias Editar

Enlaces externos Editar

  • Andrew Viterbi, que incluye información sobre el descubrimiento del algoritmo de Viterbi
  • Implementación en Perl del algoritmo de Viterbi
  •   Datos: Q83886
  •   Multimedia: Viterbi coding / Q83886

algoritmo, viterbi, algoritmo, viterbi, algoritmo, programación, dinámica, permite, hallar, secuencia, más, probable, estados, ocultos, llamado, camino, viterbi, produce, secuencia, observada, sucesos, especialmente, contexto, fuentes, información, márkov, mod. El algoritmo de Viterbi es un algoritmo de programacion dinamica que permite hallar la secuencia mas probable de estados ocultos el llamado camino de Viterbi que produce una secuencia observada de sucesos especialmente en el contexto de fuentes de informacion de Markov y modelos ocultos de Markov Se aplica de forma general en la descodificacion de codigos convolucionales usados en redes de telefonia celular digital GSM y CDMA modems de lineas conmutadas satelites comunicaciones espaciales y redes inalambricas IEEE 802 11 Tambien se usa en reconocimiento del habla sintesis de habla diarizacion busqueda de palabras clave linguistica computacional y bioinformatica Indice 1 Introduccion 2 Algoritmo 2 1 Inicializacion 2 2 Recursion 2 3 Terminacion 2 4 Reconstruccion de la secuencia de estados mas probable 3 Aplicacion del algoritmo de Viterbi 3 1 Desambiguacion lexica categorial 4 Otras preguntas fundamentales 5 Vease tambien 6 Referencias 7 Enlaces externosIntroduccion EditarEl algoritmo de Viterbi permite encontrar las secuencias de estados mas probable en un Modelo oculto de Markov MOM S q 1 q 2 q T displaystyle S q 1 q 2 ldots q T nbsp a partir de una observacion O o 1 o 2 o T displaystyle O o 1 o 2 ldots o T nbsp es decir obtiene la secuencia optima que mejor explica la secuencia de observaciones Consideremos la variable d t i displaystyle delta t i nbsp que se define como d t i max q 1 q 2 q t 1 P q 1 q 2 q t i o 1 o 2 o t m displaystyle delta t i max q 1 q 2 ldots q t 1 P q 1 q 2 ldots q t i o 1 o 2 ldots o t mu nbsp d t i displaystyle delta t i nbsp es la probabilidad del mejor camino hasta el estado i displaystyle i nbsp habiendo visto las t displaystyle t nbsp primeras observaciones Esta funcion se calcula para todos los estados e instantes de tiempo d t 1 j max 1 i N d t i a i j b j o t 1 displaystyle delta t 1 j biggl max 1 leq i leq N delta t i a ij biggr b j o t 1 nbsp Puesto que el objetivo es obtener las secuencia de estados mas probable sera necesario almacenar el argumento que hace maxima la ecuacion anterior en cada instante de tiempo t displaystyle t nbsp y para cada estado j displaystyle j nbsp y para ello utilizamos la variable f t j displaystyle varphi t j nbsp A continuacion se detalla el proceso completo utilizando las funciones d displaystyle delta nbsp y f displaystyle varphi nbsp Algoritmo EditarInicializacion Editar d 1 i p i b i o 1 displaystyle delta 1 i pi i b i o 1 nbsp donde 1 i N displaystyle 1 leq i leq N nbsp Recursion Editar d t 1 j max 1 i N d t i a i j b j o t 1 displaystyle delta t 1 j biggl max 1 leq i leq N delta t i a ij biggr b j o t 1 nbsp f t 1 j arg max 1 i N d t i a i j displaystyle varphi t 1 j arg max 1 leq i leq N delta t i a ij nbsp donde t 1 2 T 1 displaystyle t 1 2 ldots T 1 nbsp 1 j N displaystyle 1 leq j leq N nbsp Terminacion Editar q T arg max 1 i N d T i displaystyle q T arg max 1 leq i leq N delta T i nbsp Reconstruccion de la secuencia de estados mas probable Editar q t f t 1 q t 1 displaystyle q t varphi t 1 q t 1 nbsp donde t T 1 T 2 1 displaystyle t T 1 T 2 ldots 1 nbsp Algunos de los calculos del algoritmo de Viterbi recuerdan a los del algoritmo forward necesario para calcular eficientemente la probabilidad de una secuencia de observables Una de las diferencias es la incorporacion de la funcion arg max displaystyle arg max nbsp en lugar de sumar las probabilidades para calcular la secuencia de estados mas probable Ejemplo de secuencia de estados mas probableLa figura muestra un ejemplo de secuencia de estados mas probable en un Modelo Oculto de Markov de 5 estados dada una secuencia de observaciones de longitud 5 nbsp Aplicacion del algoritmo de Viterbi EditarMuy usado para reconocimiento de voz biologia molecular fonemas palabras codificadores entre otros A cada secuencia de estados le corresponde una secuencia de etiquetas o labels de clasificacion es decir palabras caracteres fonemas sufijos Dada una secuencia observada se deduce la mas probable secuencia de estados Desambiguacion lexica categorial Editar Una de las aplicaciones del algoritmo de Viterbi es en el area de procesamiento del lenguaje natural mas concretamente en el proceso de desambiguacion lexica categorial En este caso particular los elementos de un Modelo Oculto de Markov serian los siguientes El conjunto Q displaystyle Q nbsp de estados seria el conjunto de posibles etiquetas categorias gramaticales para las palabras El conjunto V displaystyle V nbsp de observables en cada uno de los estados corresponde con el conjunto de palabras distintas El conjunto A displaystyle A nbsp de probabilidades de transiciones entre estados seria la probabilidad de que una determinada categoria categorial siga a otra Por ejemplo la probabilidad de que la categoria nombre vaya detras de la categoria determinante El conjunto B displaystyle B nbsp de probabilidades de las observaciones corresponderia con la probabilidad de pertenencia de una palabra un observable a una determinada categoria Por ejemplo la probabilidad de que la palabra casa sea verbo que sera menor que la probabilidad de que esta misma palabra tenga la categoria gramatical nombre La figura siguiente muestra un ejemplo de etiquetado gramatical para la oracion Coto privado de caza nbsp En el los observables son la secuencia de palabras de la oracion Se puede observar como para cada palabra se contempla solo un conjunto limitado de posibles categorias gramaticales caza puede ser o nombre o verbo Este es debido a que la probabilidad de pertenencia de determinadas palabras a una categoria gramatical es nula como la probabilidad de que la palabra caza sea adverbio Esto simplifica enormemente los calculos en el modelo Otras preguntas fundamentales EditarOtros dos problemas que es importante saber resolver para utilizar los MOM son Cual es la probabilidad de una secuencia de observaciones O o 1 o 2 o T displaystyle O o 1 o 2 ldots o T nbsp dado un modelo m p A B displaystyle mu pi A B nbsp Es decir como podemos calcular de forma eficiente P O m displaystyle P O mu nbsp Para esto se puede usar el algoritmo de avance retroceso Dada una secuencia de observaciones O o 1 o 2 o T displaystyle O o 1 o 2 ldots o T nbsp como podemos estimar los parametros del modelo m p A B displaystyle mu pi A B nbsp para maximizar P O m displaystyle P O mu nbsp En este caso el objetivo es encontrar el modelo que mejor explica la secuencia observada Para esto se puede usar el algoritmo de Baum Welch Vease tambien EditarModelos Ocultos de Markov Algoritmo de Baum Welch Algoritmo de Avance RetrocesoReferencias EditarEnlaces externos EditarEntrevista conAndrew Viterbi que incluye informacion sobre el descubrimiento del algoritmo de Viterbi Implementacion en Perl del algoritmo de Viterbi nbsp Datos Q83886 nbsp Multimedia Viterbi coding Q83886 Obtenido de https es wikipedia org w index php title Algoritmo de Viterbi amp oldid 135729481, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos