λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
1️⃣ AI•DS/πŸ“™ Model

HMM 기초 κ°œλ… 정리 - β‘‘ Decoding, Learning

by isdawell 2024. 1. 4.
728x90

 

β€»  μ°Έκ³ λ§ν¬

 

 

 

β‘   HMM - Part2 (Decoding)


 

β—―  Decoding Problem → HMM 의 핡심 

 

β–’  Decoding 문제 μ •μ˜ 

 

•  Problem : HMM(λ*) κ³Ό O κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 졜적의 S λ₯Ό μ°ΎλŠ” 것 (κ°€μž₯ κ·ΈλŸ΄μ‹Έν•œ μ€λ‹‰μƒνƒœμ˜ μ‹œν€€μŠ€ κ²°μ •) 
•  Solution : Viterbi algorithm 

•  ex. μ • 박사가 였늘 μ‚°μ±…, 내일 μ‚°μ±…, λͺ¨λ ˆ 연ꡬ, κΈ€ν”Ό μ‡Όν•‘ν–ˆλ‹€λ©΄, 각 λ‚ λ“€ λ‚ μ”¨λŠ” ? 

 

H = (λΉ„, λΉ„, ν•΄, ν•΄)

 

 

 

β–’  Viterbi algorithm 

 

•  vt(i) : t 번째 μ‹œμ μ˜ i μ€λ‹‰μƒνƒœμ˜ ν™•λ₯  

 

 

[t=1 μ—μ„œμ˜ 계산]

 

 

•  v1(1) = (S1이 t=1μ—μ„œ λ°œμƒν•  ν™•λ₯ ) (S1 μ€λ‹‰μƒνƒœμ—μ„œ 산책이 관찰될 ν™•λ₯ ) = π1•b1(μ‚°μ±…)

•  v1(2) = (S2κ°€ t=1μ—μ„œ λ°œμƒν•  ν™•λ₯ )  (S2 μ€λ‹‰μƒνƒœμ—μ„œ 산책이 관찰될 ν™•λ₯ ) = π2•b2(μ‚°μ±…)

 

 

 

[t=2 μ—μ„œμ˜ 계산]

 

 

•  v2(1) = max( v1(1) a11,  v1(2) a21 ) b1(μ‚°μ±…) 

•  v2(2) = max( v1(1) a12, v1(2) a22 ) b2(μ‚°μ±…) 

 

β†ͺ max : λΉ„ μƒνƒœμ—μ„œ 올 ν™•λ₯ κ³Ό ν•΄ μƒνƒœμ—μ„œ 올 ν™•λ₯  쀑 큰 ν™•λ₯ μ„ 선택 

 

 

[t=3 μ—μ„œμ˜ 계산]

 

 

 

•  v3(1) = max( v2(1)  a11,  v2(2)  a21 )  b1(연ꡬ) 

•  v3(2) = max( v2(1)  a12, v2(2)  a22 )  b2(연ꡬ) 

 

 

 

[t=4 μ—μ„œμ˜ 계산]

 

 

•  v4(1) = max( v3(1)  a11,  v3(2)  a21 )  b1(연ꡬ) 

•  v4(2) = max( v3(1)  a12, v3(2)  a22 )  b2(연ꡬ) 

 

 

 

πŸ‘€ Evalution 의 forward μ•Œκ³ λ¦¬μ¦˜μ—μ„œλŠ”, observable sequence 의 ν™•λ₯ μ„ κ΅¬ν•˜κ³  μ‹ΆκΈ° λ•Œλ¬Έμ— SUM 을 ν•˜λŠ” μ „λž΅μ„ μ„ νƒν–ˆμœΌλ‚˜, Decoding 의 Viterbi μ•Œκ³ λ¦¬μ¦˜μ—μ„œλŠ”, κ·Έ κ΄€μΈ‘μΉ˜μ—μ„œ κ°€μž₯ κ·ΈλŸ΄μ‹Έν•œ hidden state λ₯Ό μ°Ύμ•„μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— Maximum 을 취함 

 

πŸ‘€ 계산은 λ°”λ‘œ 이전 μ‹œμ μ˜ μ •λ³΄λ§Œ ν™œμš©ν•˜κΈ° λ•Œλ¬Έμ— computationally efficient ν•˜λ‹€. κ·ΈλŸ¬λ‚˜ 정보가 μΆ•μ λ˜μ–΄ μ „λ‹¬λ˜κΈ° λ•Œλ¬Έμ— λͺ¨λ“  정보λ₯Ό μ‚¬μš©ν•˜λŠ” 꼴이 λœλ‹€. 

 

 

 

[μ΅œμ’… hidden state 예츑]

 

•  각 time λ³„λ‘œ κ΅¬ν•œ ν™•λ₯  쀑에 큰 κ°’μ˜ μƒνƒœλ₯Ό 선택 : ex. T=1 μ‹œμ μ—λŠ” 0.24 > 0.06 μ΄λ‹ˆκΉŒ "ν•΄" μƒνƒœλ₯Ό 선택 

 

 

•  Qt_hat : κ°€μž₯ 졜적의 hidden state sequence 

 

 

 

 

 

β—―  Viterbi algorithm 

 

β–’  μˆ˜μ‹ 정리 

 

•  μ•žμ˜ 예제λ₯Ό 톡해 μ„€λͺ…ν•œ 뢀뢄을 μˆ˜μ‹μœΌλ‘œ μ •λ¦¬ν•˜λ©΄ μ•„λž˜μ™€ κ°™μŒ 

 

 

 

 

β–’  Evaluation vs Decoding

 

•  Forward μ•Œκ³ λ¦¬μ¦˜μ€ κ°€λŠ₯ν•œ λͺ¨λ“  경우의 ν™•λ₯ μ˜ ν•©μœΌλ‘œ Observable sequence 의 λ°œμƒ ν™•λ₯ μ„ κ΅¬ν–ˆκ³ , Vitebi μ•Œκ³ λ¦¬μ¦˜μ€ κ°€λŠ₯ν•œ λͺ¨λ“  ν™•λ₯ μ€‘ κ°€μž₯ 큰 값을 μ„ νƒν•¨μœΌλ‘œμ¨ κ°€μž₯ κ·ΈλŸ΄μ‹Έν•œ hidden state λ₯Ό μ„ νƒν•œλ‹€. 

 

 

 

 

 

 

β‘‘  HMM - Part2 (Learning)


 

β—―  Learning problem (ν•™μŠ΅)

 

β–’  Parameter learning

 

•  관츑벑터 O 의 ν™•λ₯ μ„ μ΅œλŒ€λ‘œ ν•˜λŠ” HMM(λ) (νŒŒλΌλ―Έν„°) 을 찾자 

•  μ—¬λŸ¬ 개의 κ΄€μΈ‘ μ‹œν€€μŠ€λ₯Ό μ€„ν…Œλ‹ˆ 졜적의 HMM νŒŒλΌλ―Έν„°λ₯Ό 찾자 

•  Training data O κ°€ μžˆμ„ λ•Œ λ λ₯Ό μ°ΎλŠ” 것 

 

 

 

 

 

β–’  Procedure of HMM Learning

 

•  input : HMM(λ) architecture 

•  output : HMM(λ*) = {A*, B*, π*}  →  Optimal ν•œ parameter κ΅¬ν•˜κΈ° 

•  Algorithm 

   β‘΄ HMM μ΄ˆκΈ°ν™” : νŒŒλΌλ―Έν„° μ΄ˆκΈ°ν™” 

   β‘΅ μ μ ˆν•œ λ°©λ²•μœΌλ‘œ P(HMM(λ_new)) > P(O | HMM(λ)) 을 찾아라 : 쒋은 λ°©ν–₯으둜 이동 

   β‘Ά 만쑱슀러우면 λ_hat = HMM (λ_new) 둜 μ„€μ •ν•˜κ³  멈좀 ν˜Ήμ€ β‘΅ 반볡 

 

 

 

 

β—―  Baum-Welch algorithm 

 

β–’  바움-μ›°μΉ˜ μ•Œκ³ λ¦¬μ¦˜

 

•  Problem : X={O1, ... , ON} 이 μ£Όμ–΄μ‘Œμ„ λ•Œ, HMM(λ*) 

•  Solution : Baum-Welch μ•Œκ³ λ¦¬μ¦˜ (or forward-backward μ•Œκ³ λ¦¬μ¦˜) 

β†ͺ  EM μ•Œκ³ λ¦¬μ¦˜μ— 속함 (Estimation - Maximization) 

 

 

β†ͺ  ϒ 와 ξλ₯Ό κ΅¬ν•˜κ³  λ λ₯Ό κ΅¬ν•˜κ³ , κ΅¬ν•œ λ 둜 ϒ 와 ξλ₯Ό κ΅¬ν•˜κ³ , κ΅¬ν•œ ϒ 와 ξλ₯Ό 가지고 λ λ₯Ό κ΅¬ν•˜κ³  βˆ™βˆ™βˆ™

 

 

 

 

β–’  E-step 

 

 

 

 

β€»  α : forward probability , β : backward probability 

 

 

 

 

•  ϒt(i) : HMM(λ), O κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, t μ‹œμ  μƒνƒœκ°€ si (hidden state κ°€ i) 일 ν™•λ₯ 

 

 

β†ͺ λΆ„μž :   αt(i)•βt(i) : t μ‹œμ μ—μ„œ si 일 ν™•λ₯  

β†ͺ λΆ„λͺ¨ :  S1,S2, ... , Sn 일 ν™•λ₯ μ„ λͺ¨λ‘ λ”ν•œ κ°’ (n : hidden state 의 μ’…λ₯˜ 개수) 

 

 

•   ξt(i, j) HMM(λ), O κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, t μ‹œμ  μƒνƒœκ°€ si, t+1 μ‹œμ  μƒνƒœλŠ” sj 일 ν™•λ₯  

 

 

β†ͺ i μƒνƒœμ™€ j μƒνƒœλ₯Ό μ—°κ²°ν•΄μ£ΌλŠ” 계산값이 μΆ”κ°€λ˜λŠ” ν˜•νƒœ 

 

 

 

 

 

β–’  M-step

 

•   E-step 은 α , β λ₯Ό κ³„μ‚°ν•˜μ—¬ ϒt(i),  ξt(i, j) λ₯Ό κ΅¬ν•˜λŠ” 것 

•   M-step 은  ϒt(i),  ξt(i, j) λ₯Ό μ΄μš©ν•˜μ—¬ HMM(λ) λ₯Ό κ°œμ„  →  HMM(λ_new)

   β†ͺ  κ°œμ„  : P(HMM(λ_new)) > P(O | HMM(λ))   → 즉, HMM(λ_new) 의 evaluation μ‹œ 높은 ν™•λ₯  

 

 

 

 

•  πi_new : t=1 (μ‹œμž‘μ‹œμ ) 일 λ•Œ si 에 μžˆμ„ ν™•λ₯   ⇨  ϒt=1(i) , 1 β©½ i β©½ n

  β†ͺ  Expected number of times (μ „μ²΄μ—μ„œ λͺ‡λ²ˆ λ°œμƒν•˜λŠ”μ§€λ‘œ μΆ”μ •) in state si at time t=1 

  β†ͺ  Counting 으둜 estimation 

 

 

•  αij_new : (si μ—μ„œ sj 둜 전이할 κΈ°λŒ€κ°’) / (si μ—μ„œ 전이할 κΈ°λŒ€κ°’) 

  β†ͺ  ϒt 와 ξt λ₯Ό μ‚¬μš©ν•΄μ„œ 계산 

 

 

 

•  bi(vk)_new : (si μ—μ„œ vk λ₯Ό κ΄€μΈ‘ν•  ν™•λ₯ ) / (si 에 μžˆμ„ ν™•λ₯ ) = (i μƒνƒœ ν•˜μ—μ„œ κ΄€μΈ‘μΉ˜κ°€ vk 일 ν™•λ₯ ) / (i μƒνƒœκ°€ λ‚˜νƒ€λ‚  ν™•λ₯ ) 

  β†ͺ  ϒt λ₯Ό μ‚¬μš©ν•΄μ„œ 계산 

 

 

 

•   νŒŒλΌλ―Έν„° μ—…λ°μ΄νŠΈ 정리 

 

 

 

 

β–’  E-M step 

 

•   (1) μ—μ„œ μž„μ˜μ˜ A,B,π 둜 ξ,ϒ λ₯Ό ꡬ함 

•  ξ,ϒ 둜 μƒˆλ‘œμš΄ A,B, π λ₯Ό ꡬ함 

 

μœ„ 두 과정을 반볡 ← ν™•λ₯ μ΄ μ»€μ§ˆλ•ŒκΉŒμ§€ 반볡 

 

 

 

•   "만쑱슀러울 λ•ŒκΉŒμ§€" 반볡 - "만쑱" 의 의미 

β†ͺ  a. μ—…λ°μ΄νŠΈλœ κ²½μš°μ—μ„œμ˜ ν™•λ₯ κ³Ό 이전 κ²½μš°μ—μ„œμ˜ ν™•λ₯ μ˜ 차이가 νŠΉμ • κ°’ μ΄ν•˜μΈ 경우 

β†ͺ  b. μ—…λ°μ΄νŠΈλœ κ²½μš°μ—μ„œμ˜ ν™•λ₯ μ΄ νŠΉμ • κ°’ 이상인 경우 

 

 

 

•   μ•Œκ³ λ¦¬μ¦˜

 

 

 

 

 

 

 

 

β‘’  HMM μ‘μš©


 

β—―  [HMM Evaluation Application]  μ œμ‘°κ³΅μ • μ €μˆ˜μœ¨ μ„€λΉ„ 경둜 탐지

 

•  κ΄€μΈ‘ μ‹œν€€μŠ€ : μ„€λΉ„ ID 데이터 (ex. μ„€λΉ„1, μ„€λΉ„4 βˆ™βˆ™βˆ™) 

•  은닉 μ‹œν€€μŠ€ : 곡정 ID 데이터 

 

 

 

•  정상 μ œν’ˆλ§Œ 가지고 HMM λͺ¨λΈμ„ λ§Œλ“€κ³ , λΆˆλŸ‰ μ œν’ˆλ§Œ 가지고 HMM λͺ¨λΈμ„ λ§Œλ“€ 수 있음 

•  λ―Έλž˜μ— 3001번 μ œν’ˆμ΄ λ“€μ–΄μ™”λŠ”λ°, κ΄€μΈ‘ μ‹œν€€μŠ€κ°€ μžˆμ„ λ•Œ,  정상일지 λΆˆλŸ‰μΌμ§€ μ•Œκ³ μ‹ΆμŒ 

β†ͺ  observable sequence λ₯Ό HMM(정상) λͺ¨λΈμ— λ„£μ—ˆμ„ λ•Œ P(정상) 정상일 ν™•λ₯ μ΄ λ‚˜μ˜€κ³ , HMM(λΆˆλŸ‰) λͺ¨λΈμ— λ„£μ—ˆμ„ λ•Œ P(λΆˆλŸ‰) λΆˆλŸ‰μΌ ν™•λ₯ μ΄ λ‚˜μ˜€κ²Œ 됨 β‡’ P(정상) 인 ν™•λ₯ μ΄ P(λΆˆλŸ‰) 일 ν™•λ₯ λ³΄λ‹€ 크면 μ •μƒμœΌλ‘œ λΆ„λ₯˜ 

 

 

 

β—―  [HMM Decoding Application]  Sleep Quality Evaluation 

 

•  κ΄€μΈ‘ μ‹œν€€μŠ€ : 수면 EEG 데이터 

•  은닉 μ‹œν€€μŠ€ : REM-수면, NREM-수면, Wake 

 

 

•  μ–΄λŠ 뢀뢄이 램수면 μƒνƒœμ΄κ³ , λž¨μˆ˜λ©΄μ•„λ‹Œ μƒνƒœμ΄κ³ , κΉ¨μ–΄μžˆλŠ” μƒνƒœμΈμ§€ 3가지 hidden state 쀑에 예츑 

 

 

 

728x90

λŒ“κΈ€