Quelles sont les différences entre l'algorithme Baum-Welch et la formation Viterbi?

18

J'utilise actuellement la formation Viterbi pour un problème de segmentation d'image. Je voulais savoir quels sont les avantages / inconvénients de l'utilisation de l'algorithme Baum-Welch au lieu de la formation Viterbi.

Digital Gal
la source
3
Qu'entendez-vous exactement par «formation viterbi»?
bmargulies
2
Dans mon problème, j'ai un tableau de données réelles que je modélise en tant que HMM (spécialement un mélange de fonctions de densité multiples avec chacune des paramètres inconnus). Pour l'instant, je suppose que je connais les probabilités de transition d'état. Ce que je veux dire par Viterbi Trainig est l'algorithme suivant. 1) Attribuer arbitrairement un état à chaque point de données (initialisation) 2) Effectuer MLE des paramètres de la fonction de densité. 3) Réestimer l'état pour chaque point (peut être fait avec Viterbi Alg). 4) Passez à l'étape 2 et répétez à moins que les critères d'arrêt ne soient remplis.
Digital Gal
1
La même question a été posée sur le débordement de pile: entraînement viterbi vs algorithme baum-welch
Franck Dernoncourt

Réponses:

21

L'algorithme de Baum-Welch et l'algorithme de Viterbi calculent différentes choses.

Si vous connaissez les probabilités de transition pour la partie cachée de votre modèle et les probabilités d'émission pour les sorties visibles de votre modèle, l'algorithme de Viterbi vous donne la séquence complète des états cachés la plus probable conditionnelle à la fois à vos sorties et à la spécification de votre modèle.

L'algorithme de Baum-Welch vous donne à la fois les probabilités de transition cachées les plus probables ainsi que l'ensemble de probabilités d'émission le plus probable étant donné uniquement les états observés du modèle (et, généralement, une limite supérieure du nombre d'états cachés). Vous obtenez également les points de probabilité les plus élevés "point par point" dans les états cachés, ce qui est souvent légèrement différent de la séquence cachée unique qui est globalement la plus probable.

Si vous connaissez votre modèle et que vous voulez simplement les états latents, il n'y a aucune raison d'utiliser l'algorithme Baum-Welch. Si vous ne connaissez pas votre modèle, vous ne pouvez pas utiliser l'algorithme de Viterbi.

Modifié pour ajouter: Voir le commentaire de Peter Smit; il y a un certain chevauchement / imprécision dans la nomenclature. Quelques fouilles m'ont amené à un chapitre de Luis Javier Rodrıguez et Ines Torres dans "Pattern Recognition and Image Analysis" (ISBN 978-3-540-40217-6, pp 845-857) qui discute des compromis vitesse / précision de les deux algorithmes.

En bref, l'algorithme Baum-Welch est essentiellement l'algorithme Expectation-Maximization (EM) appliqué à un HMM; en tant qu'algorithme strict de type EM, vous êtes assuré de converger vers au moins un maximum local, et donc pour les problèmes unimodaux, trouvez le MLE. Cependant, cela nécessite deux passes sur vos données pour chaque étape, et la complexité devient très grande dans la longueur des données et le nombre d'échantillons d'apprentissage. Cependant, vous vous retrouvez avec la probabilité conditionnelle complète pour vos paramètres cachés.

L'algorithme d'apprentissage de Viterbi (par opposition à "l'algorithme de Viterbi") se rapproche du MLE pour obtenir un gain de vitesse au détriment de la précision. Il segmente les données et applique ensuite l'algorithme de Viterbi (tel que je l'ai compris) pour obtenir la séquence d'état la plus probable dans le segment, puis utilise cette séquence d'état la plus probable pour réestimer les paramètres cachés. Contrairement à l'algorithme Baum-Welch, cela ne donne pas la probabilité conditionnelle complète des paramètres cachés, et finit donc par réduire la précision tout en économisant un temps de calcul important (le chapitre rapporte 1 à 2 ordres de grandeur).

Riches
la source
7
Si j'ai raison, vous mélangez la formation Viterbi et le décodage Viterbi.
Peter Smit
1
Tu as raison. Je ne savais pas qu'il existait une procédure qui n'utilisait que l'algorithme de Viterbi pour calculer également les probabilités de transition. Il semble - à la lecture de plus loin - qu'il y a un certain chevauchement de nomenclature entre l'analyse HMM temps discret / état discret et l'analyse temps discret / état continu utilisant des distributions de mélange gaussiennes. Ma réponse concerne la configuration DTDS HMM, et non la configuration du modèle de mélange.
Rich
@ Rich: Pourriez-vous m'indiquer du matériel accessible (comme le didacticiel HMM original de Rabiner) sur la formation Viterbi?
Jacob
4
La formation @Jacob Viterbi porte également le nom de Segmental K-Means, voir cet article de Juang et Rabiner.
alto
1
@Anoldmaninthesea. L'examen des probabilités entre les époques est le moyen normal d'évaluer la convergence (la probabilité doit toujours augmenter à chaque époque, puis s'arrêter lorsque vous avez atteint un maximum local). L'autre chose que vous pouvez faire est d'arrêter tôt en surveillant la probabilité que les données ne soient pas utilisées pendant la SE.
alto
0

Avant-arrière est utilisé lorsque vous souhaitez compter les «choses invisibles». Par exemple, lorsque vous utilisez EM pour améliorer un modèle via des données non supervisées. Je pense que le document de Petrov en est un exemple. Dans la technique à laquelle je pense, vous entraînez d'abord un modèle avec des données annotées avec des annotations assez grossières (par exemple une balise pour 'Verb'). Ensuite, vous divisez arbitrairement la masse de probabilité pour cet état en deux quantités légèrement inégales, et vous réentraînez, en allant de l'avant vers l'arrière pour maximiser la probabilité en redistribuant la masse entre les deux états.

bmargulies
la source