隠れマルコフモデルを実装した

一番上のグレーの正方形が真の遷移確率、3x8のカラーのが真の出力確率で、その下のカラーのバーが真の潜在変数の系列と出力変数の系列。

真ん中の段がそれを3回EMで学習した後の遷移確率と出力確率、カラーバーは上から、真の潜在変数、出力変数、zの確率によって色を混ぜたもの、個別のz単体で一番確率の高いものを選んだ推測値、ビタビで推測した最も確率の高い系列、真の潜在変数。

下の段は100回学習後のもの。ビタビで推測した系列と真の潜在変数の系列がだいぶマッチするようになったのが観察できる。

初期値は0〜1の乱数をふったあと確率値として妥当になるように正規化している。そのままだと真の潜在変数とHMMが学習した隠れ変数の対応がずれたりして見づらくなるので状態0の時に出力0が出る確率だけ少し増やしてある。