2019/04/23
2020/04/14
正則化の種類と目的 L1正則化 L2正則化について
ニューラルネットワークも多くの機械学習アルゴリズムと同様に過学習という問題に陥ります。
今回はこの過学習を回避するための手法の一つ、正則化について説明します。
正則化手法としてL1正則化、L2正則化について解説します。これらの正則化手法はリッジ回帰、ラッソ回帰やエラスティックネットといった機械学習モデルに関連します。
過学習と正則化
機械学習モデルは未知データへの予測精度を高めるために訓練データを学習します。
機械学習モデルが訓練データを過剰に学習すると未知データへの予測精度が落ちることがあります。
これはモデルが訓練データに対して過剰に学習したため、はずれ値やノイズまで学習してしまったと考えることができます。
このような現象を過学習、またはoverfittingと呼びます。
過学習が起きる原因としてデータ数が少ない、変数が多い、パラメータが大きすぎるといったことがあります。
今回はこの過学習を防ぐための手法として正則化について説明します。これらの手法はニューラルネットワークの他にもランダムフォレスト、回帰モデルなど様々な機械学習アルゴリズムで用いられる手法です。
正則化
機械学習モデルは損失関数を最小にするパラメータを学習していました。
L1、L2正則化を用いた機械学習モデルは損失関数とパラメータの値の和を最小にするパラメータを学習します。パラメータの和を評価することでパラメータが大きくなるのを防ぎます。このようにしてモデルが過学習しないようにしています。
以下の数式を見てみましょう。これはそれぞれの手法が最小にしようと関数を表しています。
損失関数を\( f(x) \)、パラメータ\( \lambda \)とします。
正則化なし … 損失関数
\( \min f(x) \)
L1正則化 … 損失関数 + L1正則化項
\( \min f(x) + \lambda \sum_{ i = 1 }^{ n } |w_i| \)
L2正則化 … 損失関数 + L2正則化項
\( \min f(x) + \displaystyle \frac{ \lambda }{ 2 } \sum_{ i = 1 }^{ n } |w_i|^2 \)
通常のモデルが損失関数\( f(x) \)を最小とする一方で、L1正則化を行うモデルは損失関数\( f(x) \)と\( \lambda \sum_{ i = 1 }^{ n } |w_i| \)の合計を最小にするパラメータ\( w_i \)を求めます。
同様にL2正則化を行うモデルは損失関数\( f(x) \)と\( \displaystyle \frac{ \lambda }{ 2 } \sum_{ i = 1 }^{ n } |w_i|^2 \)の合計を最小にするパラメータ\( w_i \)を求めます。
これらの数式から正則化はパラメータが小さいモデルをより評価すると分かります。
このパラメータの大きさを評価する項はペナルティ項と呼びれていて、正則化に用いるパラメータ\( \lambda \)を大きくすると過学習に陥りにくくなります。
L1正則化はパラメータの絶対値の和を、L2正則化はパラメータの二乗和を罰則項としていました。
正則化の目的
多くの場面でL1正則化は余分な説明変数を省くことを目的とした手法です。余分な説明変数を省くことを次元圧縮と呼びますが、L1正則化は次元圧縮のために用いられます。
これはL1正則化を用いた学習ではパラメータ\( w_i \)が0になりやすいためです。パラメータ\( w_i \)が0とされた説明変数は目的変数に対して無関係であることを意味します。
一方でL2正則化はモデルの過学習を防ぐことで精度を高めるために用いられます。結果としてL1正則化を使ったモデルよりも予測精度が高い傾向にあります。
これはL2正則化を用いたモデルのパラメータの方がより滑らかで表現力に優れているためであると説明できます。
まとめ
この記事ではモデルの過学習を防ぐための手法の一つ、正則化について説明してきました。
L2正則化がモデルの過学習を避けるために用いられる一方、L1正則化は不要な説明変数をそぎ落とす次元圧縮のために用いられます。
またL1正則化、L2正則化、それぞれを施した線形回帰をLasso回帰、Ridge回帰と呼びます。
Recommended