「パターン認識と機械学習」理解のための数学〜スパースモデリング(絶対値制約の最小二乗法)〜

今回は前回の最小二乗法の実装の続きで、スパースモデリングの実装方法についてご紹介します。

目次

こんにちは!

今回は前回の最小二乗法の実装の続きで、スパースモデリングの実装をしてみたいと思います。

なお、前回の内容はこちらを参考にしてください。
「パターン認識と機械学習」理解のための数学〜最小二乗法の実装〜

1. スパースモデリングとは

スパースとは「まばら」という意味です。反対の言葉で「密」があります。スパースモデリングとは、情報を落としてより 低い次元で物事をみることです。

スパースモデリングの形

2. 問題設定

問題設定は最小二乗法のときの実装と同じです。ランダムに発生させたxとyのデータに関して、ある平面でフィッティングさせるようにします。今回は2x+3y-z=1の平面から少しずれた値を生成して、それに最小二乗法を用いてみました。そしてそれに制約を加え、平面の推定をしてみます。

3. 制約付き最小二乗法の数学的解法

解くべき問題は以下のような形です。

これは制約のついた最小二乗法です。なお、式を簡潔に書くため変数をxで統一し、x0は1としています。

この式は絶対値がついていて微分することができません。なので、今回はwの成分は全て正とした上で絶対値を外し、プログラムしました。

4.スパースになることの説明

上の式は二乗の項と絶対値の項があります。二乗の項は以下のような楕円、絶対値の項は以下のようなカクカクのものです。

これらがどこで交わるかを考えるとスパースに近くなる説明ができそうです。

このような図が書けることがわかります。これから楕円を大きくするとどこに当たるでしょうか。

このように頂点にぶつかります。つまり解は頂点になります。これは解がx成分が0となっていることを意味しているので、スパースなわけです。

このように二次元の図を書いてみると、絶対値の関数の場合スパースになりやすいことがわかります。

5. プログラム

今回用いたプログラムをのせておきます。解がスパースかどうかを判定するのが難しいので、高次元の場合もやってみる必要がありそうです。