【E資格対策】正則化を考える
機械学習における過学習対策である正則化について考えたいと思います。
難しい数式は抜きに、概念をイメージできるように整理します。
まず、言葉が似ていて混同しがちな正規化との関係を整理します。正規化と正則化は全然意味が違います。
本題の正則化に入ります。
過学習が起きる背景
訓練データに対して、パラメータがうまくフィッティングするよう学習したとします。
この時、説明変数が多い場合、モデルの複雑さが増して、訓練データに対してのみ過剰に当てはまりが良くなり、逆に、テストデータへの当てはまりが悪くなる「過学習」の状態に陥る傾向があります。
正則化による過学習対策
正則化とは、訓練データへの過剰フィッティングを抑制するために、パラメータに何らかの制約を課すものです。
回帰・分類など、さまざまな機械学習やディープラーニングの手法で利用することができます。
正則化の種類
正則化には、ラッソ、リッジ、エラスティックネットの大きく3つの方法があります。
エラスティックネットは、ラッソとリッジの融合なので、ラッソとリッジをおさえておくのが大事です。
それぞれの特徴を一言で知るために、一旦、数式で表してみます。
|w|のことをノルムと呼びます。これはベクトルの距離を表しますが、気にすることはありません。用語だけおさえておけば大丈夫です。
ラッソは、ノルムの絶対値
リッジは、ノルムの二乗
であることをおさえておきましょう。
損失関数のイメージ
図を使って、イメージしていきましょう。
まず、一般的な機械学習のモデルの学習ケースを想定し、モデル性能を改善するために、損失関数Lを最小化することを考えます。
パラメータがw1とw2の2種類のみであると仮定します。
この場合、損失関数は以下のイメージになります。
円の中心に行くほど損失が小さくなり、円の中心である●点が損失関数を最小にする最適解となります。
正則化のイメージ
今、損失関数を最小化させるパラメータW1とW2では、過学習に陥っているとすると、過学習をおさえるためには、パラメータの値を小さくする方法が考えられます。
そこで、パラメータにペナルティを科すための追加情報(バイアス)を導入します。
ペナルティ項を導入することで、W1とW2のパラメータが大きくなりすぎないようにします。
ラッソ正則化のイメージ
重みの絶対値をペナルティに取り入れます。
重み係数の取りうる範囲は菱形の頂点の部分になる可能性が高いです。
結果として、あまり重要でない説明変数のパラメータ(重み)をゼロにする効果があります。
リッジ正則化のイメージ
重みの2乗をペナルティに取り入れます。
一般的に重み減衰とも言われる。
重みが原点から離れるほどペナルティが大きくなります。
さいごに L1とL2の覚え方
ラッソ正則化がL1ノルム、リッジ正則化がL2ノルムですが、どちらがどちらだったか混乱します。
以下のように覚えるといいかなと思います。
リッジがL2であることを覚えることができれば、L2=2乗ですので、ラッソがL1=絶対値にたどりつくことができます。
Discussion