機械学習についての理解を進めてゆこうとする過程で、ニューラルネットワーク以外の手法の重要性に改めて気づき、「続・わかりやすいパターン認識 教師なし学習入門」を読み進めています。
途中で困ったのが、Baum-Welchアルゴリズムの実装です。その手前のViterbiアルゴリズムは書籍の記述をそのままコード化すれば同じ結果が得られたのですが、Baum-Welchについては解説が少なく、思ったように動作しませんでした。
いろいろとネットを探しまわった結果、コロラド州立大学のCS教材のページがかなりナイーブな実装で参考になりました。ただし、完全にナイーブではなくスケーリングが施してあります。これがないと、条件によっては値が小さくなりすぎてNaNになってしまうような状況が発生します。
より複雑な実装としては、hmmlearnがありました。元はscikit-learnの一部だったようですが、独立したモジュールになったようです。その他、Wikipediaの記事、朱鷺の杜Wikiの記事が参考になりました。