Quais são as diferenças entre o algoritmo de Baum-Welch e o treinamento de Viterbi?

18

Atualmente, estou usando o treinamento Viterbi para um problema de segmentação de imagem. Eu queria saber quais são as vantagens / desvantagens de usar o algoritmo Baum-Welch em vez do treinamento em Viterbi.

Digital Gal
fonte
3
O que você quer dizer com 'treinamento de viterbi' exatamente?
bmargulies
2
No meu problema, tenho uma matriz de dados com valores reais que estou modelando como um HMM (especificamente uma mistura de funções de densidade múltipla, cada uma com parâmetros desconhecidos). Por enquanto, presumo que conheço as probabilidades de transição de estado. O que quero dizer com Viterbi Trainig é o seguinte algoritmo. 1) Atribua arbitrariamente um estado para cada ponto de dados (inicialização) 2) Realize o MLE dos parâmetros da função de densidade. 3) Reestime o estado de cada ponto (pode ser feito com Viterbi Alg). 4) Vá para a etapa 2 e repita, a menos que os critérios de parada sejam atendidos.
Digital Gal
1
A mesma pergunta foi feita em estouro de pilha: formação Viterbi vs algoritmo de Baum-Welch
Franck Dernoncourt

Respostas:

21

O algoritmo de Baum-Welch e o algoritmo de Viterbi calculam coisas diferentes.

Se você conhece as probabilidades de transição para a parte oculta do seu modelo e as probabilidades de emissão para as saídas visíveis do seu modelo, o algoritmo Viterbi fornece a sequência completa mais provável de estados ocultos condicionais para ambas as saídas e a especificação do modelo.

O algoritmo Baum-Welch fornece as probabilidades de transição ocultas mais prováveis ​​e o conjunto de probabilidades de emissão mais provável, considerando apenas os estados observados do modelo (e, geralmente, um limite superior para o número de estados ocultos). Você também obtém os pontos de maior probabilidade "pointwise" nos estados ocultos, que geralmente são ligeiramente diferentes da sequência oculta única que é geralmente mais provável.

Se você conhece seu modelo e deseja apenas os estados latentes, não há razão para usar o algoritmo Baum-Welch. Se você não conhece seu modelo, não pode usar o algoritmo Viterbi.

Editado para adicionar: Veja o comentário de Peter Smit; há alguma sobreposição / imprecisão na nomenclatura. Alguns bisbilhoteiros me levaram a um capítulo de Luis Javier Rodrıguez e Ines Torres em "Reconhecimento de padrões e análise de imagens" (ISBN 978-3-540-40217-6, pp 845-857) que discute as compensações de velocidade versus precisão de os dois algoritmos.

Resumidamente, o algoritmo Baum-Welch é essencialmente o algoritmo Expectation-Maximization (EM) aplicado a um HMM; como um algoritmo estrito do tipo EM, você garante convergir para pelo menos um máximo local e, portanto, para problemas não -odais, encontre o MLE. Porém, são necessárias duas passagens sobre seus dados para cada etapa, e a complexidade aumenta muito no tamanho dos dados e no número de amostras de treinamento. No entanto, você acaba com a probabilidade condicional completa de seus parâmetros ocultos.

O algoritmo de treinamento Viterbi (em oposição ao "algoritmo Viterbi") aproxima o MLE para obter um ganho de velocidade com o custo de precisão. Ele segmenta os dados e, em seguida, aplica o algoritmo Viterbi (como eu o entendi) para obter a sequência de estado mais provável no segmento e, em seguida, usa essa sequência de estado mais provável para reestimar os parâmetros ocultos. Isso, diferentemente do algoritmo Baum-Welch, não fornece a probabilidade condicional completa dos parâmetros ocultos e, portanto, acaba reduzindo a precisão, economizando tempo computacional significativo (o capítulo relata 1 a 2 ordens de magnitude).

Rico
fonte
7
Se eu estiver certo, você mistura o treinamento e a decodificação de Viterbi.
Peter Smit
1
Você está certo. Eu não sabia que havia um procedimento que usava apenas o algoritmo Viterbi para calcular também as probabilidades de transição. Parece - em uma leitura mais aprofundada - que há alguma sobreposição de nomenclatura entre análise HMM de tempo discreto / estado discreto e análise discreta de tempo / estado contínuo usando distribuições de mistura gaussiana. Minha resposta fala com a configuração do DTDS HMM, e não com a configuração do modelo de mistura.
Rich
@ Rich: Você poderia me indicar algum material acessível (como o tutorial original do HMM de Rabiner) sobre o treinamento em Viterbi?
Jacob
4
O treinamento de @Jacob Viterbi também tem o nome de Segmental K-Means, veja este artigo de Juang e Rabiner.
alto
1
@Anoldmaninthesea. Observar as probabilidades entre épocas é a maneira normal de avaliar a convergência (a probabilidade deve sempre aumentar a cada época e depois parar quando você atingir um máximo local). A outra coisa que você pode fazer é parar rapidamente, monitorando a probabilidade de dados não usados ​​durante o EM.
alto
0

Avançar para trás é usado quando você deseja contar 'coisas invisíveis'. Por exemplo, ao usar o EM para melhorar um modelo por meio de dados não supervisionados. Eu acho que o artigo de Petrov é um exemplo. Na técnica em que estou pensando, você primeiro treina um modelo com dados anotados com anotações bastante grosseiras (por exemplo, uma tag para 'Verbo'). Em seguida, você divide arbitrariamente a massa de probabilidade para esse estado em duas quantidades ligeiramente desiguais e treina novamente, avançando para trás para maximizar a probabilidade redistribuindo a massa entre os dois estados.

bmargulies
fonte