こんにちは。
少し前に
標準化・正規化についてお話ししました。これらは勾配法による学習の際に学習速度が速くなるというメリットがありました。では今回は
正則化とはなんぞや
名前が似てますね、ということは
勾配法に関係あり?学習速度に関係あり?
いい読みです。次の図を見てください。
![](https://research.miidas.jp/wp-content/uploads/2019/01/Screen-Shot-2019-01-28-at-17.46.21.png)
どっちの曲線が「いい学習」をした結果だと思いますか? もう一問
![](https://research.miidas.jp/wp-content/uploads/2019/01/Screen-Shot-2019-01-28-at-17.39.51.png)
どちらが「いい分類」をしていますか?
「いい分類・いい学習」とは何か?
を考える必要があります。データには誤差がつきものです。なので「誤差を許容するという寛大な心が必要」なんです。つまり、
モデルは柔軟性を持つべき
という考えから「
正則化」とう考えに突入します。
具体的には?
そもそもなんで過学習してしまうのか、ですよね。
あるモデルが過学習するということはパラメータが手持ちのデータを重視しすぎるということ
言い換えると
過学習とはモデルが未知のデータを考慮しなくなるということです。
このままではいけません。未知のデータを考慮させる必要があり、そのための作戦が「
正則化」です。具体的には
パラメータの学習に制限を設けること
です。例えば、パラメータ
![Rendered by QuickLaTeX.com w](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dfee5c980777976ae8cf6541893fb572_l3.png)
を学習させたいとします。そこでモデルを
![Rendered by QuickLaTeX.com F_w](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-91f96a1b8c1e0b12b3a77ebbca3dc0b6_l3.png)
、ラベルを
![Rendered by QuickLaTeX.com t](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-b4e3cbf5d4c5c6d9b702dd139f14c147_l3.png)
とでもし
![Rendered by QuickLaTeX.com \[|t - F_w(x) |^2 \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-a87aacd0044a037ea6c2046d810e6264_l3.png)
を最小化することで
![Rendered by QuickLaTeX.com w](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dfee5c980777976ae8cf6541893fb572_l3.png)
を学習させる問題を考えます。このままやると
![Rendered by QuickLaTeX.com w](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dfee5c980777976ae8cf6541893fb572_l3.png)
は好き放題学習しますが
![Rendered by QuickLaTeX.com \alpha \in \mathbb{R}](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-2ce270165e059bf77a5beddd42cec8ad_l3.png)
で
![Rendered by QuickLaTeX.com \[|w| \leq \alpha\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-32ab97fb8716c9e96ebcc1e6476924e6_l3.png)
とかのように制限設けると
![Rendered by QuickLaTeX.com w](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dfee5c980777976ae8cf6541893fb572_l3.png)
はこの範囲で学習しますよね。しかしこれは考える問題が
![Rendered by QuickLaTeX.com \[\texttt{minimize} ~~ |t - F_w(x) |^2 \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-820ac5a94da76c627f55f4585316d78f_l3.png)
から
![Rendered by QuickLaTeX.com \[\texttt{minimize} ~~ |t - F_w(x) |^2 ~~s.t.~~ |w| \leq \alpha \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-514d3ea315b70ce414ba78a649bfdd8b_l3.png)
のように制約付きの最適化問題になりました。ヤバイ、しかも
制約が不等式!!!
これはやばいです。しかし!
カルーシュ・クーン・タッカー条件
KKT条件という物を使えば解決します。(ちなみにSVMとかでも出てきますがかなり難しいです)(ちなみに制約が等式の時はラグランジュの未定乗数法)つまり
![Rendered by QuickLaTeX.com \lambda \in \mathbb{R}](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-3d3a847f8dda9c0aa8864c746d726bf9_l3.png)
で
![Rendered by QuickLaTeX.com \[\texttt{minimize} ~~ |t - F_w(x) |^2 + \lambda|w|_p\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-08f5d2f0399d8ef4fc49ee0eb73b5d12_l3.png)
とできます。ただし
![Rendered by QuickLaTeX.com |w|_p](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-99ab212eceda2d3a00dffeae662882ac_l3.png)
はLpノルムです。
Lpノルムって何?
![Rendered by QuickLaTeX.com x\in \mathbb{R}^n](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-c78025a52120148d4ee4851507058f40_l3.png)
とします、つまり
![Rendered by QuickLaTeX.com x](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ede05c264bba0eda080918aaa09c4658_l3.png)
はn次元実ベクトルとします。この時
![Rendered by QuickLaTeX.com p \in \mathbb{R} ~~ s.t.~~ p\geq 1](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-3569c516a5c4e6b709f0ff06ed5b2494_l3.png)
に対して
![Rendered by QuickLaTeX.com \[| x |_p = \left( |x_1|^p + |x_2|^p + \cdots + |x_n|^p \right)^{1/p}\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-00af3436539ffb0e6760bf0808b44693_l3.png)
と定義します。これを
![Rendered by QuickLaTeX.com x](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ede05c264bba0eda080918aaa09c4658_l3.png)
のLpノルムと言います。関数解析でやるので覚えといて〜。初めての人は直感がわかないと思うので図で見てみましょう。
一般的に使うのは
![Rendered by QuickLaTeX.com L_1,L_2](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-77a6f0b90b7512d2a0cf03bea8f066ad_l3.png)
です。少し話が逸れましたが
![Rendered by QuickLaTeX.com \[\texttt{minimize} ~~ |t - F_w(x) |^2 + \lambda|w|_p\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-08f5d2f0399d8ef4fc49ee0eb73b5d12_l3.png)
これですね。コスト関数を最小化する際に
![Rendered by QuickLaTeX.com w](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dfee5c980777976ae8cf6541893fb572_l3.png)
が大きくならないようにペナルティーの形で加えます。なので第二項は
罰金項、正規化項などと呼ばれます。これを使った実際の例は次の2つがあります。
- Ridge Regression (Tikhonov regularization)
- Lasso Regression
です。リッジ回帰は
正規化項を使います。なので
![Rendered by QuickLaTeX.com \[\texttt{minimize} ~~ |t - F_w(x) |^2 + \lambda|w|_2^2\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-7e4a4bc42d2877ae97285d68fdbeb123_l3.png)
となります。一方でラッソ回帰は
正規化項を使います。なので
![Rendered by QuickLaTeX.com \[\texttt{minimize} ~~ |t - F_w(x) |^2 + \lambda|w|_1^1\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-0f15398ed9d14a119ea270f509f293da_l3.png)
です。これらについて詳しくは別の記事で書きます。今はとりあえず「正則化」の例として覚えておいてください。
さて、正則化はパラメータの学習に制限を設けることと言いました。で、各ノルムに対する正規化項の特徴についてです。がこれも長くなるので次の記事で会いましょう。
でわ。
READMORE