Algoritmo de Viterbi

download Algoritmo de Viterbi

of 9

Transcript of Algoritmo de Viterbi

Algoritmo de ViterbiContenido[ocultar]

1 Introduccin 2 Algoritmo

o o o o

2.1 Inicializacin 2.2 Recursin 2.3 Terminacin 2.4 Reconstruccin de la secuencia de estados ms probable

3 Aplicacin del algoritmo de Viterbi

o

3.1 Desambiguacin lxica categorial

4 Otras preguntas fundamentales 5 Vase tambin 6 Enlaces externos

[editar]IntroduccinEl algoritmo de Viterbi permite encontrar las secuencias de estados ms probable en un Modelo oculto de Mrkov (MOM), observacin secuencia de observaciones. Consideremos la variable t(i) que se define como: , a partir de una , es decir, obtiene la secuencia ptima que mejor explica la

t(i) es la probabilidad del mejor camino hasta el estado i habiendo visto las t primeras observaciones. Esta funcin se calcula para todos los estados e instantes de tiempo.

Puesto que el objetivo es obtener las secuencia de estados ms probable, ser necesario almacenar el argumento que hace mxima la ecuacin anterior en cada instante de tiempo t y para cada estado j y para ello utilizamos la variable . .

A continuacin se detalla el proceso completo utilizando las funciones y

[editar]Algoritmo

[editar]Inicializacin1(i) = ibi(o1) donde

[editar]Recursin

, donde: ,

, donde: ,

[editar]Terminacin

[editar]Reconstruccin, donde:

de la secuencia de estados ms probable

Algunos de los clculos 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 incorporacin de la funcin argmax (en lugar de sumar las probabilidades) para calcular la secuencia de estados ms probable. Ejemplo de secuencia de estados ms probable La figura muestra un ejemplo de secuencia de estados ms probable en un Modelo Oculto de Mrkov de 5 estados dada un secuencia de observaciones de longitud 5.

[editar]Aplicacin

del algoritmo de Viterbilxica categorial

[editar]Desambiguacin

Una de las aplicaciones del algoritmo de Viterbi es en el rea de procesamiento del lenguaje natural, ms concretamente en el proceso de desambiguacin lxica categorial. En este caso particular, los elementos de un Modelo Oculto de Mrkov seran los siguientes:

El conjunto Q de estados sera el conjunto de posibles etiquetas (categoras gramaticales) para las palabras.

El conjunto V de observables en cada uno de los estados corresponde con el conjunto de palabras distintas.

El conjunto A de probabilidades de transiciones entre estados sera la probabilidad de que una determinada categora categorial siga a otra. Por ejemplo, la probabilidad de que la categora nombrevaya detrs de la categora determinante.

El conjunto B de probabilidades de las observaciones correspondera con la probabilidad de pertenencia de una palabra (un observable) a una determinada categora. Por ejemplo, la probabilidad de que la palabra casa sea verbo, que ser menor que la probabilidad de que esta misma palabra tenga la categora gramatical nombre.

La figura siguiente muestra un ejemplo de etiquetado gramatical para la oracin "Coto privado de caza"

En l, los observables son la secuencia de palabras de la oracin. Se puede observar como para cada palabra se contempla slo un conjunto limitado de posibles categoras gramaticales (caza puede ser o nombre o verbo). Este es debido a que la probabilidad de pertenencia de determinadas palabras a una categora gramatical es nula (como la probabilidad de que la palabra caza sea adverbio). Esto simplifica enormemente los clculos en el modelo.

[editar]Otras

preguntas fundamentales

Otros dos problemas que es importante saber resolver para utilizar los MOM son: 1. Cul es la probabilidad de una secuencia de observaciones dado un modelo = (,A,B)? Es decir, cmo

podemos calcular de forma eficiente P(O | )?. Para esto se puede usar el algoritmo de avanceretroceso. 2. Dada una secuencia de observaciones , cmo podemos estimar

los parmetros del modelo = (,A,B) para maximizar P(O | ). 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.

[editar]Vase

tambin

Modelos Ocultos de Mrkov Algoritmo de Baum-Welch Algoritmo de Avance-Retroceso

[editar]Enlaces

externos

Entrevista con Andrew Viterbi, que incluye informacin sobre el descubrimiento del algortimo de Viterbi

Implementacin en Perl del algoritmo de Viterbi

Cdigo convolucionalEn teora de la informacin, un cdigo convolucional es un tipo de cdigo de deteccin de errores donde: 1. Cada smbolo de m bits de informacin se transforma, al ser codificado, en un smbolo de n bits, donde m/n es la tasa del cdigo (n m) 2. La transformacin es funcin de los k smbolos anteriores, donde k es la longitud del cdigo

[editar]CaractersticasCodificacin Existen varios mtodos de codificacin de cdigos convolucionales, aunque una de la ms usuales es la basada en registros de desplazamiento conectados con sumadores base 2 en los que se realiza la codificacin. Por cada bit que entre en el codificador se obtienen n bits. Decodificacin La decodificacin de un cdigo convolucional consiste en escoger la secuencia ms probable entre todas las posibles. Existen diversos algoritmos que permiten la decodificacin de este tipo de cdigos y la decodificacin ptima se consigue mediante el algoritmo de Viterbi.

Comprobacin de redundancia cclica(Redirigido desde Control de redundancia cclica)

La comprobacin de redundancia cclica (CRC) es un tipo de funcin que recibe un flujo de datos de cualquier longitud como entrada y devuelve un valor de longitud fija como salida. El trmino suele ser usado para designar tanto a la funcin como a su resultado. Pueden ser usadas como suma de verificacin para detectar la alteracin de datos durante su transmisin o almacenamiento. Las CRC son populares porque su implementacin en hardware binario es simple, son fciles de analizar matemticamente y son particularmente efectivas para detectar errores ocasionados por ruidoen los canales de transmisin. La CRC fue inventada y propuesta por W. Wesley Peterson en un artculo publicado en 1961.1

Contenido[ocultar]

1 Introduccin 2 La integridad de los datos frente a la codificacin 3 Clculo de CRC 4 Matemticas del CRC 5 Especificacin de un CRC 6 Referencias 7 Vase tambin 8 Enlaces externos

o

8.1 Herramientas en lnea

[editar]IntroduccinEl CRC es un cdigo de deteccin de error cuyo clculo es una larga divisin de computacin en el que se descarta el cociente y el resto se convierte en el resultado, con la importante diferencia de que la aritmtica que usamos conforma que el clculo utilizado es el arrastre de un campo finito, en este caso los bits. El tamao del resto es siempre menor que la longitud del divisor, que, por lo tanto, determina el tamao del resultado. La definicin de un CRC especifica el divisor que se utilizar, entre otras cosas. Aunque un CRC se puede construir utilizando cualquier tipo de regla finita, todos los CRC de uso comn emplean una base finita binaria, esta base consta de dos elementos, generalmente el 0 y 1. El resto de este artculo se centrar en este tipo de composicin, es decir el mbito binario y los principios generales de los CRC.

[editar]La

integridad de los datos frente a la codificacin

Es til para deteccin de errores, pero, en condiciones de seguridad, no podemos confiar en que el CRC puede verificar plenamente que los datos son los correctos en caso de que se hayan producido cambios deliberados y no aleatorios. A menudo se piensa que si, cuando llega un mensaje, ste y su CRC coinciden, quiere decir que el mensaje no ha podido ser alterado durante su transmisin, aunque se haya transmitido por un canal abierto. Esta suposicin es falsa porque CRC es un mal mtodo de cifrado de datos. De hecho, el CRC no se trata realmente de un mtodo de cifrado, lo que realmente hace es utilizarse para el control de integridad de datos, pero en algunos casos se supone que se utilizarn para el cifrado.

Cuando un CRC se calcula, el mensaje se conserva (no cifrado) y la constante de tamao CRC se sita hacia el final (es decir, el mensaje puede ser tan fcil como leer antes de la posicin que ocupa el CRC). Adems, la longitud del CRC es por lo general mucho ms pequea que la longitud del mensaje, es imposible para una relacin de 1:1 entre la CRC y el mensaje. As, numerosos cdigos producirn el mismo CRC. Por supuesto, estos cdigos estn diseados para ser lo suficientemente diferentes como para variar (y por lo general slo en uno o dos bits). Pequeos cambios en la palabra clave produciran una gran diferencia entre un CRC y otro; por ese motivo es posible detectar el error. Si la manipulacin del mensaje (cambios de los bits) es deliberada, entonces se tomara una nueva clave, produciendo un falso CRC el cual puede ser calculado para el nuevo mensaje y sustituir el CRC real en el final del paquete y esta modificacin no podr ser detectada. La CRC sirve para verificar la integridad, pero no para saber si el mensaje es correcto. Por el contrario, un medio eficaz para proteger a los mensajes contra la manipulacin intencional es el uso de un cdigo de autenticacin de mensajes como HMAC.

[editar]Clculo

de CRC

La mecnica de la informtica con su lenguaje binario produce unas CRC simples. Los bits representados de entrada son alineados en una fila, y el (n + 1) representa el patrn de bits del divisor CRC (llamado polinomio) se coloca debajo de la parte izquierda del final de la fila. Aqu est la primera de ellas para el clculo de 3 bits de CRC:

11010011101100