Slide 1

Slide 1 text

高橋研機械学習・確率 輪講 第5回 HMM 2019/07/17 関口舜一 Twitter : https://twitter.com/ShunichiSekigu1 Github : https://github.com/Shunichi09 Qiita : https://qiita.com/MENDY

Slide 2

Slide 2 text

本日の流れ • 複雑なモデルでのベイズ推論 ‐ HMM ‐ その他 2019/7/17 2 今まで比べると少しだけAdvancedな内容になっております 説明が不十分なケースが多いと思うので たくさん止めていただけると嬉しいです 各sectionで,breakを挟もうと思います

Slide 3

Slide 3 text

今日の輪講を理解するとできること 2019/7/17 3 時系列データのクラスタリング (観測モデルにはガウス分布を仮定) 潜在変数 (どちらのクラスから算出されたか) 推測されたクラスの確率 (どちらのクラスに所属するか) 観測値

Slide 4

Slide 4 text

今までの輪講を理解するとできそうになること 2019/7/17 4 モデル推定+制御(方策獲得) [1] [2] [1] Deisenroth, Marc, and Carl E. Rasmussen. "PILCO: A model-based and data-efficient approach to policy search." Proceedings of the 28th International Conference on machine learning (ICML-11). 2011. [2] Levine, Sergey, et al. "End-to-end training of deep visuomotor policies." The Journal of Machine Learning Research 17.1 (2016): 1334-1373.

Slide 5

Slide 5 text

今日の目標(HMM) 2019/7/17 5 潜在変数を扱う感覚に慣れる!!!

Slide 6

Slide 6 text

Notation and Reference • Sergey Levineの講義の資料を多く使ってます 本スライドでは[s]で参照します ‐ http://rail.eecs.berkeley.edu/deeprlcourse/ 2019/7/17 6 データ数 N クラス数 K 観測変数 xn 潜在変数 sn zn 平均μと分散Σの ガウス分布 N(μ,Σ) 観測変数系列 X 潜在変数系列 S 潜在変数系列 Z

Slide 7

Slide 7 text

Review (Maximum Likelihood) 2019/7/17 -7- Step4:未知のデータに対する予測 Step3:推論の導出 Step2:モデルの構築 Step1:データの収集 ( ) ( ) , p x N  =  確率分布 尤度関数 ( ) | , p X   EMアルゴリズムなど ( ) * | , new new p x   予測

Slide 8

Slide 8 text

Recap (Bayesian Inference) 2019/7/17 -8- Step4:未知のデータに対する予測 Step3:推論の導出 Step2:モデルの構築 Step1:データの収集 ( ) ( ) , p x N  =  ( ) ( ) ( ) * * | | , , | p x X p x p X d d    =     確率分布 事後分布 予測分布 もっと複雑なモデルへ ( ) ( ) ( ) ( ) | , , , | p X p p X p X       =

Slide 9

Slide 9 text

HMM (Hidden Markov Model) • “隠れ” マルコフモデル ‐ 時系列データのモデル化に使用 ‐ 音声波形[1] ‐ IMUの時刻歴[2] 2019/7/17 9 [1] https://www.gavo.t.u-tokyo.ac.jp/~mine/japanese/nlp+slp/IPSJ-MGN451003.pdf [1] [2] F. Dadashi et al., "A Hidden Markov Model of the breaststroke swimming temporal phases using wearable inertial measurement units,“ 2013 IEEE International Conference on Body Sensor Networks, Cambridge, MA, USA, 2013, pp. 1-6.doi: 10.1109/BSN.2013.6575461 [2]

Slide 10

Slide 10 text

What is Markov Model? • マルコフ過程は次のような確率過程のこと ‐ 今の状態 が1時刻前 の状態 にのみ依存 • マルコフ連鎖 ‐ マルコフ過程の中で状態 が離散のもの • マルコフ決定過程 ‐ 今の状態 が任意の行動 と, 1時刻前の状態 に依存 2019/7/17 10 t s 1 t s − 1 t s − t s t a s [s] [s]

Slide 11

Slide 11 text

Recap: Graphical model of GMM 2019/7/17 11 ( ) ( ) 1 | | , k K k k k p N = =  s x s x μ Σ ( ) 1 k K k k p  = =  s s パラメータθ ( ) ( ) 1 | | N n n p p = =  S π s π Gaussian Mixture Model (複数のガウス分布を混合) ➔潜在変数は各データ間で独立 ( ) ( ) 1 | | N n n p p   =   =      X x 潜在変数 の発生過程   1 2 3 , , ,... = S s s s

Slide 12

Slide 12 text

Graphical model of HMM 2019/7/17 12 Gaussian Mixture Model Hidden Markov Model 潜在変数がマルコフ性を持つ➔“隠れ”マルコフモデル 潜在変数 観測値 パラメータ

Slide 13

Slide 13 text

潜在変数 の発生過程 Parameters and latent variables of HMM 2019/7/17 13 ( ) ( ) ( ) 1 1 2 | , | | , N n n n p p p − = =  S π A s π s s A   1 2 3 , , ,... = S s s s ( ) 1 | p s π :初期確率 A :状態遷移確率   0,0,1,0,0... n = s 1 2 3 0, 0, 1,... n n n = = = s s s n s nk s :あるn番目データ点の潜在変数ベクトル :あるn番目データ点の潜在変数ベクトルのk個目の値 (どの(状態)クラスに所属しているか?) 潜在変数について補足

Slide 14

Slide 14 text

Initial Probability 2019/7/17 14 ( ) ( ) 1 1 1 1 | | k K k k p Cat  = = =  s s π s π 1 s がどのクラスに所属するかの確率分布 パラメータ の事前分布は (カテゴリカル分布の共役事前分布) ( ) ( ) | p Dir = π π α π   0,0,1,0,0... n = s 1 2 3 0, 0, 1,... n n n = = = s s s n s nk s :あるn番目データ点の潜在変数ベクトル :あるn番目データ点の潜在変数ベクトルのk個目の値 (どの(状態)クラスに所属しているか?) 潜在変数について補足

Slide 15

Slide 15 text

Transition Probability Matrix 2019/7/17 15 0.5 0.25 0.25 0.5 0.5 0.0 0.5 0.0 0.5     =       A n-1番目の状態(クラス) n番目の状態(クラス) クラスが3つ(K=3)ある場合の 遷移確率行列の例(行列が緑本とは逆です) • 行の和は1になる • 確率なのでどれも0以上 正しい定義は,n-1番目の潜在変数が の場合に n番目での潜在変数が となる確率は,   ( ) 1 1 3 0,0,1 , 1 n n − − = = s s   1 1,0,0 , 1 n n = = s s 31 0.5 = A

Slide 16

Slide 16 text

Transition Probability Matrix 2019/7/17 16 ( ) ( ) ( ) ( ) 1 1 1 1 | , ni n j K K n n ji i j p − − = = =  s s s s A A ( ) ( ) ( ) 1 1 2 | , | | , N n n n p p p − = =  S π A s π s s A   0,0,1,0,0... n = s 1 2 3 0, 0, 1,... n n n = = = s s s n s nk s :あるn番目データ点の潜在変数ベクトル :あるn番目データ点の潜在変数ベクトルのk個目の値 (どの(状態)クラスに所属しているか?) 潜在変数について補足 0.5 0.25 0.25 0.5 0.5 0.0 0.5 0.0 0.5     =       A n-1番目の状態 n番目の状態 パラメータ の事前分布は (カテゴリカル分布の共役事前分布) ( ) ( ) , , , | i column i column i column p A Dir = A β A 各行はカテゴリカル分布

Slide 17

Slide 17 text

Observation model 2019/7/17 17 潜在変数 とパラメータ が与えられたもとでの 観測値の確率分布の定義 上側はすべて定義完了 ( ) | , n n p x s Θ n s Θ 好きなように定義してください. ( ) ( ) 1 | , , | , nk K n n n k k k p N = =  s x s μ Σ x μ Σ 例:ガウス分布   0,0,1,0,0... n = s 1 2 3 0, 0, 1,... n n n = = = s s s 潜在変数について補足

Slide 18

Slide 18 text

Hidden Markov Model • すべての定義が終わったので 後は,同時分布や事後確率,尤度関数を 算出して推論(最尤推定含め)を行えばよい! 2019/7/17 18 例:ある観測値系列 と ある潜在変数系列 の同時分布 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1 1 2 , , , , | , | , | , | | , | , N n n n n n p p p p p p p p p p p p p − = = =  X S Θ π A X S Θ S π A Θ A π Θ A π x s Θ s π x s Θ s s A 各パラメータは独立   1 2 3 , , ,... = S s s s   1 2 3 , , ,... = X x x x 初期状態の分布

Slide 19

Slide 19 text

How to use HMM? • 評価(Evaluation) ‐ パラメータを既知とした時に,観測値系列の確率 を求める • 復号(Decoding) ‐ パラメータを既知とした時に,観測値系列 を導く確率の高い 潜在変数系列 を求める(状態推定) • 推定(Estimation) ‐ パラメータを未知とした時に,観測値系列 から未知パラメータ を求める 2019/7/17 19 ( ) p X X ( ) p S X

Slide 20

Slide 20 text

How to use HMM? 2019/7/17 20 :評価 :復号 :推定 [1] [1] 続分かりやすいパターン認識 オーム社 133pより

Slide 21

Slide 21 text

Algorithms for HMM • Baum-Welchアルゴリズム ‐ 観測値系列からモデルのパラメータを求める ‐ EMアルゴリズム(最尤推定)の一種 • Viterbiアルゴリズム ‐ 観測値系列とパラメータから状態系列を求める ‐ 動的計画法 • 完全分解変分推論(緑本5章) • 構造化分解変分推論(緑本5章) 2019/7/17 21 時間がかかりすぎる+説明できるほど 理解できてない(ごめんなさい...)ので, 各自勉強してみてください。 時間があれば追加で勉強会してもいいかもです

Slide 22

Slide 22 text

Example: problem formulation 2019/7/17 22 復号(潜在変数推定)問題 ー観測値のみが取得できるとして,その値が どのクラスのガウス分布のものかを推定しなさい(パラメータ既知) 観測値 潜在変数 (真値)   0.99 0.01 = π 0.99 0.01 0.01 0.99   =     A         1 1 2 2 0 0.25 0.3 0.25 = = = = μ Σ μ Σ ( ) 500 N T =

Slide 23

Slide 23 text

Example: results 2019/7/17 23 PythonのHMMのライブラリ,hmmlearn[1]を使用 (viterbiアルゴリズム使用) 予測した 潜在変数 潜在変数 (真値) [1] https://github.com/hmmlearn/hmmlearn

Slide 24

Slide 24 text

What is different from GMM? 2019/7/17 24 GMMとは,潜在変数にマルコフ性を導入して いるかしていないかの違いだけ そんなに影響が出るのか? 同じ例題を解いてみる (パラメータ既知で状態推定のみ) GMM HMM 観測値 潜在変数 (真値) HMM GMM ※ ※パラメータを既知として負担率を計算しています

Slide 25

Slide 25 text

Example: problem formulation 2019/7/17 25 推定問題 ー観測値のみが取得できるとして, パラメータを推定しなさい(パラメータ未知) 観測値 潜在変数 (真値)   0.99 0.01 = π 0.99 0.01 0.01 0.99   =     A         1 1 2 2 0 0.25 1.25 0.5 = = = = μ Σ μ Σ ( ) 500 N T = 真値

Slide 26

Slide 26 text

Example: results 2019/7/17 26 PythonのHMMのライブラリ,hmmlearn[1]を使用 (Baum-Welchアルゴリズム使用) [1] https://github.com/hmmlearn/hmmlearn   1.0 0.0 = π 0.98 0.02 0.01 0.99   =     A         1 1 2 2 0.01 0.26 1.29 0.69 = − = = = μ Σ μ Σ 推定   0.99 0.01 = π 0.99 0.01 0.01 0.99   =     A         1 1 2 2 0 0.25 1.25 0.5 = = = = μ Σ μ Σ 真値 潜在変数 (真値) ※パラメータ推定後 そのパラメータを使用して予測 予測した 潜在変数 ※

Slide 27

Slide 27 text

Example: results, compare with GMM 2019/7/17 27 ※GMMでは,EMアルゴリズムを使用 観測値 潜在変数 (真値) HMM GMM ※         1 1 2 2 0 0.25 1.25 0.5 = = = = μ Σ μ Σ 真値         1 1 2 2 0.01 0.26 1.29 0.51 = − = = = μ Σ μ Σ HMM GMM         1 1 2 2 0.01 0.26 1.09 0.69 = − = = = μ Σ μ Σ