ホーム » 「リッジ」タグがついた投稿
タグアーカイブ: リッジ
レコメンデーション Biased-MFの実装
前回レコメンデーションの入門を行いました。 シンプルなMatrix Factorizationで終わってしまったので今回は一つ発展したBiased-Matrix Factorizationを実装してみようと思います。その前に簡単な解説から入りましょう。
Biased-Matrix Factorization
前回のSimple Matrix Factorizationをおさらいすると次のような分解でした。

この時、お互いが同じとある映画「ミイダスリサーチ」を見たとします。Aさんは辛口にもかかわらずratingを4としたとします。そしてBさんは安定に3.8より少し高い4をつけたとします。
ここでデータ









しかし、今回は








あとはいつも通り微分をとっていくだけです。行列で書き直すときに僕はよく頭がこんがらがるんですがそこは耐えです。



Lassoはなんでスパース?
こんにちは。
素人にfish_shellは無理でした。kzです。
リッジが終わりましたね。ついに来ました
ラッソ
最近色々ラッソについて調べていたんですが、微分不可能な関数の最適化ってやっぱ難しいですね。機械学習において非常に重要な2つのキーワード
– ラグランジュの未定乗数法
– KKT条件
は別の記事でゆっくり解説します。では本題に入りましょう。
Lasso
過学習を考慮した回帰モデルの一つ
– L_1正則化項を使用した回帰model
– スパース性を考えるときに用いる(これについては次の記事で詳しく説明します。)
(1)
リッジ回帰との唯一の違いは正規化項がL1(絶対値)であるということ。
微分できない?
ちょっと微分について復習しよう。おまけで複素解析も出てくるよ
L1とL2
これまでに何度か説明していると思いますがまずは
– 微分可能性
が大きな違いです。L1は尖っているので0で微分できませんね。
他の違いは?
リッジ回帰ではデカイパラメータがでかくなりすぎないよう上限を設けましたね。
ラッソも上限はありますが、ゼロがKEYWORDです。なぜなら
– 無関係な特徴量はゼロで排除する
という特徴があります。ゆえに、モデルで初めに設定したものよりも少ない特徴量で済む可能性があります。これが先ほどのスパース性と言われる所以です。
パラメータが0を図から考察
では図を用いて直感的に理解しましょう。次の図はRidge, Lassoを議論するときに使われるとてもポピュラーなものです。
「スパース」とは「スカスカ」なイメージ
つまり、ゼロがいっぱいあるイメージでいい。
しかし重要なのは常にスパースなわけじゃないこと。
スパースと言われるのはこの「尖ったポイント」に最適解がある時。
これはL1だからできますよね。L2は円だったのでスパース性はありません。
パラメータが0を数式から考察
次のように超シンプルな回帰モデルを考えます。(以下転置使ってますが無くてもいいです)
(2)
次の最小化を考えます。
(3)
(この2は計算の都合上のもの)
ここで解がと仮定します。
すると、より
と仮定するのと同値であることがわかります。さて、目的関数を
に関して微分しましょう
仮定より今は微分できます
(4)
であり、これをゼロと置くことでこの解は次のものだとわかります
(5)
ここでを増やしていくと
でゼロになることがわかりますね。
この瞬間にLassoはスパース性を持ちます。
一方、リッジの場合は
(6)
(7)
となるので、よりパラメータはゼロにはならないですね。
でわ
PythonでRidgeを数式から実装する
こんにちは。
本日はRidge回帰の実装とパラメータの交差検証を行いましょう。
色々やっていると少し長くなりましたがお許しください。
最後の2セルはinteractを使ったんですがjupyterだと表示されませんね。。コピーして実行してみてください。
個人的に今回の収穫は
– 交差検証は4分割するといい
– センタリングでinterceptionが消える
次はLasso頑張るぞ!
でわ
Ridgeを数式から実装まで(理論)
こんにちは。
料理にはまっているkzです。
本日はリッジ回帰行きましょう。次回実装します。🐷
Ridge Regression
過学習を防ごうということで導入された正則化回帰の一例。
– 正則化項を使用した回帰model
– パラメータに上限あり
たまにリッジ回帰はペナルティーありの線形回帰という記事を見かけますがそうではなく多項式回帰でもあります。つまりモデルが
(1)
だけでなく
(2)
もOKということ。
Notation
- Number of data:
- Dimension:
- Parameters:
つまり各データは
(3)
と表されます。も同様。
Constrained minimizationは
(4)
(5)
となりますが扱いずらいのでベクトル表示に変更し同時にKKT条件より最適化問題を同値なものに書き換えます。
(6)
ではまず解を求めましょう。いつも通り微分をゼロとおいて解くだけ。今回のコスト関数は次の通り
(7)
としてで微分する。
– 「ベクトルで微分・行列で微分」公式まとめ
(8)
したがって
は正則をキープするためのものでしたね。
ここまでは前回の内容をちょっとだけ丁寧にやっただけのおさらいのようなものです。ここからが数学チック。
さて、この解が最適解かどうかを関数の凸性から確認してみましょう。凸性は前回やりましたがお椀型なら極小値が最小値になることでしたね。
– 第2章 凸関数
– Convex functions
(9)
に対して次は同値である。
– が凸である
– に対してヘッセ行列
がpositive-semi-define
では
(10)
となりますね。ここでこれがpositive-semi-defineであることは次からわかります。に対して
(11)
とノルムの定義よりわかりました。

今見たのは
(12)
の凸性ですよね。そして
(13)
こちらは明らかに凸。ではが本当に凸かどうか。これは直感的には明らかですが証明が簡単なのでやってみましょう。
集合を定義域とする関数
がともに凸関数であると仮定する。
このときに対して
が凸であることを示す。
(14)
(15)
(16)
Q.E.D.
Lassoは結構めんどくさいんですよね。。
でわ