)について理論面でのまとめをした。今回はその内容を踏まえてPythonでの実装を行ってみる。使うモジュールは以下の通り。Distance二乗ユークリッド距離でのパラメータ更新式は以下の通り。(分母))で実装した。Divergence。かけることで正規化をはかった。更新式とコードは以下のようになる。学習部分の実装とりあえず初期値を0~1の一様乱数で初期化する。実行コード適当な画像を作って、それに対してNMFをかけてみた。これを表示させてみると、以下のような画像が表示される。これらを先ほど作った3つの指標を元に作った更新式でNMFを実行する。イテレーションの回数(num_iter)と学習率(eta)の2つの値を調整した。関数部分は他の実装も含めて記事の最後に掲載する。再構築された画像はそれぞれ以下のようになる。Divergenceこれくらい単純な画像であればどの評価指標でもまあまあうまくいくらしい。まとめ今回はNMFについてPythonで実装をしてみた。色々な解析で使えるようにコードを整えておけると良いなと思った。今度は音源分離をやってみたい。Appendix最後に、今回実装したコードは以下のレポジトリにアップロードした。ubuntu著者プロフィール。