2016年9月30日 更新

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

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

6,281 view お気に入り 0
こんにちは!

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

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

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

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

スパースモデリングの形

2. 問題設定

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

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

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

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

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

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

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

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

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

19 件

関連する記事 こんな記事も人気です♪

Python × TensorFlow ② ~TensorFlow を扱う上で必要な知識「定数・変数」~

Python × TensorFlow ② ~TensorFlow を扱う上で必要な知識「定数・変数」~

TensorFlow を扱う上で必要な以下3つの知識のうち「定数と変数」について解説していきたいと思います.
井上 大輝 | 8,888 view
KaggleチュートリアルTitanicで上位1%に入った話。(0.87081)

KaggleチュートリアルTitanicで上位1%に入った話。(0.87081)

前回書いた「KaggleチュートリアルTitanicで上位3%以内に入るには。(0.82297)」 から久々にやり直した結果上位1%の0.87081を出せたのでどのようにしたのかを書いていきます。
Takumi Ihara | 49,092 view

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部