Edited at

PRMLのアルゴリズムをPython(ほぼNumpyだけ)で実装

自分の勉強(機械学習のアルゴリズムやPythonの勉強)のためにPRMLに掲載されている手法をPythonで実装していきます。

原則としては、アルゴリズムの部分ではPythonの標準ライブラリに加えてNumpyだけ使用可能としていきます。scikit-learnやtensorflowなどの機械学習パッケージは使いません。matplotlibなどの結果を図示するパッケージはアルゴリズムの実装と関係がない限りは使っていきます。また、必要になったらscipyなどの他のパッケージもたまに使っていきます(すでにディガンマ関数などに使用)。ただし、最適化ツール(例えばscipy.optimizeやtensorflowの自動微分機能)などの実装を著しく簡単にするものは使いません。

基本的には、章ごとに一つの手法を実装していきます。一通り終われば二周目に入るかもしれません。自分の勉強のためのものなので、なんでもかんでも詳しく説明していくことはしません。自分で見返すのに要らないと判断した説明は省いていきます。


記事

実装済みの記事へのリンク、実装予定の手法一覧です。

PRML
記事

第1章 序論
ベイズ曲線フィッティング

第2章 確率分布
スチューデントのt分布

第3章 線形回帰モデル
エビデンス近似

第4章 線形識別モデル
ベイズロジスティック回帰

第5章 ニューラルネットワーク

誤差逆伝播混合密度ネットワーク

第6章 カーネル法
ガウス過程回帰

第7章 疎な解を持つカーネルマシン
関連ベクトル回帰

第8章 グラフィカルモデル
積和アルゴリズム

第9章 混合モデルとEM
混合ガウス分布の最尤推定

第10章 近似推論法
変分混合ガウス分布

第11章 サンプリング法
マルコフ連鎖モンテカルロ

第12章 連続潜在変数
ベイズ的主成分分析

第13章 系列データ
隠れマルコフモデルの最尤推定

第14章 モデルの結合
条件付き混合モデル