HMM - 디코딩 문제(Viterbi, A*, 빔 탐색)

알려진 모델 \lambda = \left ( \pi ,A,B \right )과 관측 시퀀스는 O = \왼쪽 \{o_{1},o_{2} ,...,o_{T} \오른쪽 \}상태 시퀀스를 찾는 데 사용되어 P(I|O,\lambda )최대

1. 비터비 알고리즘:

        방법: 매 순간 각 가능한 상태에 대한 이전 최적 경로의 확률을 기록하고 동시에 최적 경로의 이전 상태를 기록하고, 역방향으로 계속 반복하여 마지막 시점에서 최대 확률값에 해당하는 상태를 찾는다. , 역추적하여 최적의 경로를 찾는 최적의 경로(토큰 패스 알고리즘이라고도 함).

        시간 t에 대해 숨겨진 상태는 i이고 가능한 모든 경로의 최대값은 다음과 같이 정의합니다. \delta _{t}\left ( i \right )

        상태는 이전 상태에만 관련되어 있으므로 다음과 같은 재귀 공식을 얻을 수 있습니다.

        \delta _{t+1}\left ( i \right )=\frac{MAX}{i<j<N}\left [\delta _{t}\left ( j \right )a_{ji}\right ]b_{i}\left ( o_{t+1} \right )

        가장 가능성 있는 경로에서 시간 t - 1의 상태를 정의합니다.

\varphi _{t}\left ( i \right )=j\in \frac{MAX}{i<j<N}\left [\delta _{t-1}\left ( j \right )a_{ji }\오른쪽 ]

        동적 프로그래밍 알고리즘을 사용하여 최적의 경로를 얻을 수 있습니다.

        참고: Viterbi 알고리즘은 전진할 때만 확률을 계산하고 역추적할 때 최적의 경로를 얻습니다.

        예는 다음과 같습니다.

2. A* 알고리즘

        방법: 각 단계에서 최선의 경로만 선택(근시안적)

        장점: 계산이 빠르며 이런 종류의 그리디 또는 휴리스틱 알고리즘이 일반적으로 잘 작동합니다.

        단점 : 최적해 찾기가 어렵고, 국부적 최적해에 빠지기 어려움

3. 빔 서치(beam search)

        방법: 각 단계에서 최상의 N 경로만 선택합니다. 여기서 N은 빔 폭이라고도 합니다. A* 알고리즘의 개량형으로 N=1이면 A* 알고리즘으로 퇴화하고 N=N이면 소진법으로 퇴화한다.

        장점: 좋은 N 설정으로 잘 작동합니다.

        단점: Beam Width가 클수록 최적의 솔루션을 찾을 확률이 높아지고 해당 계산 복잡성이 커집니다.

        

        

        

        

Guess you like

Origin blog.csdn.net/weixin_43284996/article/details/127339869
HMM