2.1.12
Orthogonal Matching Pursuit (OMP)
まとめ
- Orthogonal Matching Pursuit (OMP) は残差と最も相関の高い特徴量を順番に選ぶ貪欲法で、疎な線形モデルを構築する。
- 選択済み特徴量に限定した最小二乗解を逐次的に求めるため、係数が直感的に解釈しやすい。
- 正則化パラメータではなく「残す特徴量数」を直接指定できる点が特徴で、疎性制御が明確になる。
- 特徴量の標準化や相関チェックを行うと、安定してスパース解を得られる。
- リッジ回帰とラッソ回帰 の概念を先に学ぶと理解がスムーズです
直感 #
大量の特徴量の中から本当に効いているものだけを残したいとき、OMP は残差を最も減らす特徴量を 1 つずつ追加していきます。辞書式学習やスパースコーディングの基本アルゴリズムとしても知られており、少数の特徴量だけで説明したい場面で重宝します。
具体的な数式 #
初期残差を \(\mathbf{r}^{(0)} = \mathbf{y}\) とし、各ステップ \(t\) で以下を繰り返します。
- 各特徴量 \(\mathbf{x}_j\) と残差 \(\mathbf{r}^{(t-1)}\) の内積を計算し、絶対値が最大の特徴量 \(j\) を選ぶ。
- 選択済み特徴量集合 \(\mathcal{A}_t\) に \(j\) を追加する。
- \(\mathcal{A}t\) の特徴量だけを使って最小二乗解 \(\hat{\boldsymbol\beta}{\mathcal{A}_t}\) を求める。
- 新しい残差 \(\mathbf{r}^{(t)} = \mathbf{y} - \mathbf{X}_{\mathcal{A}t} \hat{\boldsymbol\beta}{\mathcal{A}_t}\) を計算する。
指定したステップ数に達するか残差が十分小さくなるまでこの操作を続けます。
Pythonを用いた実験や説明 #
疎な真の係数を持つデータで OMP とラッソを比較します。
| |
実行結果の読み方 #
n_nonzero_coefsを真の非ゼロ係数数に合わせると、OMP は対象となる特徴量を高確率で復元できる。- ラッソと比べると、OMP は選ばれた特徴量以外の係数が完全に 0 になる。
- 特徴量間の相関が強い場合は選択順序が不安定になることがあるため、事前の標準化や特徴量設計が重要になる。
参考文献 #
- Pati, Y. C., Rezaiifar, R., & Krishnaprasad, P. S. (1993). Orthogonal Matching Pursuit: Recursive Function Approximation with Applications to Wavelet Decomposition. In Conference Record of the Twenty-Seventh Asilomar Conference on Signals, Systems and Computers.
- Tropp, J. A. (2004). Greed is Good: Algorithmic Results for Sparse Approximation. IEEE Transactions on Information Theory, 50(10), 2231–2242.
- リッジ・ラッソ回帰 — 正則化による変数選択
- Elastic Net — L1+L2正則化
- 特徴選択の基本 — 特徴選択の体系的解説
係数パスと特徴選択 #
正則化係数による係数の変化を確認できます。