数学

L1正則化とL2正則化の概要と効果

L1正則化とL2正則化の概要と効果

機械学習の分野において汎化誤差を減少させる方法の一つであるL1正則化L2正則化について概要と効果についてまとめます。

過学習と正則化

機械学習では、モデルを決めたうえで学習データに対して学習を行い、テストデータを使ってモデルの評価をするということを行います。

テストデータは、学習時には未知のデータであり、このような未知のデータに対する誤差を小さくできるようなモデルが望ましいわけです。未知のデータに対してモデルを適用できるようにすることを汎化と言い、未知のデータに対する誤差を汎化誤差と言います。

ただし、機械学習ではよく学習データに過度にモデルが適合してしまう過学習という現象が起こります。過学習では、学習データに対する誤差は非常に小さくなるのですが、未知のデータであるテストデータに対する汎化誤差は大きくなってしまいます。

過学習発生しないようにして、汎化誤差を減少させる目的で学習のアルゴリズムに適用する変更の事を正則化と言います。本記事では、正則化でよく用いられる方法であるL1正則化L2正則化について、数式の意味や効果について紹介していきます。

L1正則化とL2正則化の概要と効果

以降では、L1正則化とL2正則化の式を紹介しつつ、数式の図的な意味とその効果について説明していきます。なお、以降では、損失関数を$\mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}})$、正則化を加えた目的関数$\mathrm{R}$と表現することとします。

L1正則化

L1正則化項を損失関数に加えた目的関数$\mathrm{R}_{l1}$は、以下の式のように表すことができます。なお、$\alpha$は正則化項の影響の度合いを決定するハイパーパラメータで自分で決める必要があります。

\[
\mathrm{R}_{l1} = \mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}}) + \alpha\sum_{i=0}^{n}|w_{i}|
\]

L1正則化項は、機械学習のモデルの重みパラメータの絶対値の和となっています。モデルを最適化する場合には、$\mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}})$を最小化するのではなく、正則化項を加えた$\mathrm{R}_{l1}$を最小化します。

L1正則化は、数式を見ると分かるようにパラメータの値$\boldsymbol{w}$が大きくなると目的関数が大きくなってしまうため、$\boldsymbol{w}$が大きくならないように制約をかけているという意味になります。

L1正則化と後述するL2正則化では、その制限のかかり方が異なっており、それが性質の違いに現れます。では、L1正則化がどのような効果を持っているのかについて以下の図を見ながら確認していきましょう。この図はよくL1正則化の説明で出てくる図です。

L1正則化 概要図

簡単のためにパラメータは$w_{1}$と$w_{2}$の二つであるとしましょう。

オレンジの円は損失関数$\mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}})$の等高線だと思ってください。同じ線上では$\mathrm{E}$の値は同じで、円の内側に行くほど損失関数の値は小さいものとします。

また、青い線はL1正則化項の等高線です。例えば$w_{1}+w_{2}=c$($c$は定数)となるような線が図中のそれぞれの線のようになります。

この図を見たときに、損失関数と正則化項を足した関数$\mathrm{R}_{l1}$が最小になる点を考えてみると損失関数と正則化項の等高線が接するような赤い点が最小になります。なぜなら、上記の図で同じ損失関数の値である円上の点のうち、正則化項が最小となるのはひし形を徐々に拡大していったときに、はじめて楕円と接する点であるためです。

ここでポイントは、損失関数と接する点では、上記の例では$w_{1}$が0となっているということです。このため、L1正則化は、重要なパラメータをそのまま残して不要なパラメータを0にする効果があります。このような状況をスパースであると言います。

L2正則化

L2正則化項を損失関数に加えた目的関数$\mathrm{R}_{l2}$は、以下の式のように表すことができます。なお、$\alpha$は正則化項の影響の度合いを決定するハイパーパラメータで自分で決める必要があります。

\[
\mathrm{R}_{l2} = \mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}}) +\alpha\sum_{i=0}^{n}w_{i}^{2}
\]

L2正則化項は、機械学習のモデルの重みパラメータの2乗の和となっています。モデルを最適化する場合には、$\mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}})$を最小化するのではなく、正則化項を加えた$\mathrm{R}_{l2}$を最小化します。

L2正則化は、L1正則化と同じように$\boldsymbol{w}$が大きくなると目的関数が大きくなってしまうため、$\boldsymbol{w}$が大きくならないように制約をかけているという意味があります。

では、L2正則化がどのような効果を持っているのかについて、L1正則化の時と同じように図を見ながら確認していきましょう。この図はよくL2正則化の説明で出てくる図です。

L2正則化 概要図

簡単のためにパラメータは$w_{1}$と$w_{2}$の二つであるとしましょう。

オレンジの円は損失関数$\mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}})$の等高線です。同じ線上では$\mathrm{E}$の値は同じで、円の内側に行くほど損失関数の値は小さいものとします。

また、青い線はL2正則化項の等高線です。例えば$w_{1}^{2}+w_{2}^{2}=c$($c$は定数)となるような線がそれぞれの円というようになります。

この図を見たときに、損失関数と正則化項を足した関数$\mathrm{R}_{l2}$が最小になる点を考えてみると損失関数と正則化項の等高線が接するような赤い点が最小になります。なぜなら、上記の図で同じ損失関数の値である円上の点のうち、正則化項が最小となるのは円を徐々に拡大していったときに、はじめて楕円と接する点であるためです。

ここでポイントは、L2正則化は、パラメータを全体的に小さくする効果があります。L1正則化のように一部のパラメータを0に近づけるような効果ではない点を覚えておきましょう。

まとめ

機械学習の分野において汎化誤差を減少させる方法の一つであるL1正則化L2正則化について概要と効果をまとめました。

L1正則化とL2正則化のそれぞれについて図的な意味についても紹介しています。それぞれの正則化の数式と効果をまとめてみると以下の通りです。

正則化数式効果
L1$
\mathrm{R}_{l1} = \mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}}) + \alpha\sum_{i=0}^{n}|w_{i}|
$
重要なパラメータをそのまま残して不要なパラメータを0にする効果がある
L2$
\mathrm{R}_{l2} = \mathrm{E}(\boldsymbol{y}, \hat{\boldsymbol{y}}) +\alpha\sum_{i=0}^{n}w_{i}^{2}
$
パラメータを全体的に小さくする効果がある

L1正則化もL2正則化もパラメータが大きくならないように制約をかけるという点では同じなのですが、効果には少し特徴の違いがあります。よく効果の特徴を理解した上でモデルへの適用を検討してみるとよいでしょう。