前の節では、正則化がモデルを複雑にしすぎないための工夫であることを見てきました。
では実際には、どのようにしてモデルの複雑さを抑えるのでしょうか。
その方法はいくつかありますが、ここでは代表的な正則化手法を見ていきます。
それぞれ少しずつ考え方が異なりますが、どれも共通しているのは、モデルが過度に複雑にならないようにする、という目的です。
L0正則化
L0正則化は、不要な特徴をできるだけ減らすという考え方です。
イメージとしては、
・「この特徴は重要そうだ」
・「この特徴はあまり関係なさそうだ」
と選別して、使う特徴の数そのものを減らすような方法です。
ただし、実際の計算では扱いが難しいため、機械学習では別の方法が使われることが多くなっています。
L1正則化(ラッソ回帰)
L1正則化は、モデルの重みにペナルティを与えることで、重要でない特徴の重みを0に近づける方法です。
つまり、AIは「この特徴はあまり役に立たない」と判断したものを、思い切って使わなくなることがあります。
そのため、L1正則化は、特徴選択を行う正則化とも言われます。
この方法は、統計学では、ラッソ回帰(Lasso Regression)として知られています。
L2正則化(リッジ回帰)
L2正則化も、モデルの重みにペナルティを与える方法です。
ただしL1正則化とは少し違い、重みを完全に0にするのではなく、重みを全体的に小さく抑えるという特徴があります。
つまり、特定の特徴を消すというよりも、モデル全体をなだらかに保つイメージです。
この方法は、統計学では、リッジ回帰(Ridge Regression)と呼ばれています。
ドロップアウト
ドロップアウトは、ディープラーニングでよく使われる正則化手法です。
学習の途中で、ニューラルネットワークの一部のニューロンを、ランダムに無効化するという方法です。
これは、少し不思議な仕組みですが、イメージとしては、ときどきメンバーを減らして練習するチーム、のようなものです。
もし常に同じメンバーだけでプレーすると、特定の人に頼りすぎてしまうかもしれません。
しかし、メンバーを入れ替えながら練習すれば、チーム全体の力がバランスよく育ちます。
ドロップアウトも同じように、特定のニューロンに依存しすぎないようにすることで、過学習を防ぐ効果があります。
機械学習を勉強していると、「ラッソ回帰」や「リッジ回帰」という名前が出てきます。
この2つの名前は、イメージが暗記の手助けになります。
ラッソ(lasso)とは、カウボーイが使う投げ縄のことです。
縄を投げて、牛を捕まえるあの道具です。
ラッソ回帰では、この縄で「いらない特徴」を捕まえるようなイメージがあります。
モデルの重みを調整していくと、重要でない特徴の重みは、思い切って0になることがあります。
つまり、「この特徴はいらない」とAIが判断して、使わなくなるのです。
そのためラッソ回帰は、不要な特徴を減らす正則化として知られています。
一方、リッジ(ridge)は、山の尾根という意味の言葉です。
リッジ回帰では、モデルの重みを0にするのではなく、全体をなだらかに抑えるような働きがあります。
イメージとしては、山の尾根のように、急に大きな値にならないようにする感じです。
つまり、重みを完全に消すのではなく、全体をバランスよく小さくするのがリッジ回帰の特徴です。
ラッソ回帰
↓
いらない特徴を捕まえる
↓
重みが0になる
☆ラッソは「いらん特徴をラッソで捕まえる」
尖った山
↓
なだらかな尾根
☆リッジは「重みをなだらかにする」
このイメージで覚えると、ややこしい正則化も暗記しやすくなりませんか。
next ▶ 誤差逆伝播法とは何か