Reference:
Hidden 마코브 모델 학습하기!
- 대부분 Obserrvation만 주어지고, hidden state 정확히 잘 모름. 그래서 이런 상황에서 state간의 방출,전이 확률 알기 위해서 expectation 사용한다!
Expectation
- i에서 j state로 이동할 확률?
- 에타=전이 확률/
- O는 주어진 시퀀스 내에서! 전이 확률 구하기
- 그냥 그리드 서치같은거군?
- 전방 후방 확률 이용해서 베이지안식 이용해서 시퀀스가 정해졌을 때 전이확률 구한다.
- 전방확률: 특정시간에 나타날 i일 확률을 전방의 확률의 합으로 나타내서!!
다음 i확률 => 이게 기대확률인가?!? 아! 베이지안에서!! training 데이터 이용해서 한건가?
- 후방확률: 특정시간에 j일 확률을 후방의 확률의 합으로 나타내서!!
=> 특정시간에 어떤 state가 나타날 확률 (i,j,k 등등)
바움-웰치 알고리즘
- 은닉마코브모델 학습에 사용되는 알고리즘
- Expectation-Maximization(EM) 알고리즘의 일종
- 1) 임의로 전방후방확률 초기값!!!
- 2) 이를 바탕으로 transition 확률 A와 emission 확률 B 초기화
- 2) Expectation: A,B 고정시킨 상태에서 transition 기댓값, state 기댓값 계산
- 3) Maximization: 기댓값들 고정한 상태에서 A,B 업데이트
- 4) convergence 할 때까지 반복 (여기서 convergence는 뭐가 기준인가요..?) => a와 b가 변함이 없을때까지?!?!
=> lower, upper 바운드가 생김. iteration할 수록 값이 커지거나, 작아지거나 upper bound로 수렴!! => 이게 KL divergence / convex한 그래프면 반드시 lowerbound를 가지는 식이 된다.
(한마디로 다 가정이네.. 경우의 수... 같이... 글쿤... 체스같은... )
그래프가 두개가 있고, 차이를 줄인다. 그때가 convergence이다! 아하아하!!
em 알고리즘으로 써도 되는구나! 콜백
원래예측 분포랑 관측치 분포 거리가 멀어서 줄인다!! 아~~
바움-웰치 수도 코드