この本は古典的な機械学習手法の1つである非負値行列因子分解(NMF)を機械学習ライブラリscikit-learnで実装されているsklearn.decomposition.NMFの内容にのみ絞って解説したものです。 例えば、scikit-learnでは最適化手法として乗法的更新則と座標降下法のどちらかを選択でき、初期値として与える初期行列を得る手法として擬似乱数に基づくものや、NNDSVDとその派生のNNSVDaとNNDSVDar、または任意の行列から選ぶことができます。 本書ではこれらの内容を取り上げ、それぞれについて理解を深めることを目的としています。特に、最適化手法の導出やNNDSVDを使った初期化方法の説明に力を入れました。宜しければぜひ一読ください!
⚠️⚠️⚠️注意⚠️⚠️⚠️
本書はタイトルに"まるわかり"という名を付けましたが、sklearn.decomposition.NMFの全てが"わかる"わけではありません。 以下に現時点でわかる箇所とわからない箇所について挙げます。 ⭕️まるわかり ・密行列に対するsklearn.decomposition.NMFの使い方(コードあり) ・sklearn.decomposition.NMFにおける各最適化手法の指定の仕方(コードあり) ・勾配降下法からの乗法更新(MU: Multiplicative Update)則の説明 ・ユークリッド距離版乗法更新則の導出 ・NMFにおける座標降下(CD: Coordinate Descent)の説明 ・ユークリッド距離版FastHALSアルゴリズムの導出 ・sklearn.decomposition.NMFにおける各初期化方法の指定の仕方(コードあり) ・擬似乱数に基づく方法(init="random")に対応する初期行列について ・NNDSVD(init="nndsvd")に対応する初期行列について ・NNDSVDの派生(init="nndsvda", init="nndsvdar")に対応する初期行列について ❌まるわからない ・疎行列に対するsklearn.decomposition.NMFの使い方 ・βダイバージェンス版乗法更新則の導出 ・β値のハイパーパラメータ探索 ・各最適化手法の収束性 ・各最適化手法の計算コスト ・更新則における0除算問題と解決策 ・各初期化方法の収束性 ・NNDSVDで得られた初期行列の再構成誤差の上限 ・正規化項がある場合の更新則 ・行列Xの形状に大きな偏りがある場合の正規化の問題とその解決策 ・sklearn.decomposition.NMFにおける多くのParametersの説明 ・sklearn.decomposition.NMFにおける多くのAttributesの説明