7

これは愚かな疑問に思えるかもしれませんが、私は妥当な答えを出すことはできません。機械学習の問題で正規化を使用する必要があるのはなぜですか?

正規化は、オーバーフィッティングを避けるために複雑なものより単純なモデルを得るのに役立つと言われています。しかし、線形分類問題のために:

f(x) = Wx 

モデルの複雑さはやや指定されている:それは、線形、二次ではないか、何かもっと複雑です。だからなぜ我々はまだパラメータの正則化が必要なのでしょうか?そのような場合、なぜ我々はより小さい重量を好むのですか?

+0

質問:パラメータWをゼロに縮小すると、モデルの複雑さが減少するのはなぜですか?とにかく - おそらく統計に移行する必要があります。 – cel

+0

いいえ、私はなぜf(x)= wx + R(w)にR(w)が必要なのか尋ねています。私は線形分類で考えるので、モデルの複合体は私たちが選択する任意のwについて同じです。しかし、なぜ我々は小さいものを好むのですか? – Demonedge

+1

私の質問に対する答えを知ることができない場合は、私は簡単に答えることができます:モデルの複雑さを軽減したいからです。ベクトルが小さいほど複雑なモデルになり、複雑なモデルはしばしば好まれません。哲学的な観点からはhttps://en.wikipedia.org/wiki/Occam%27s_razor、数学的観点からはhttps://en.wikipedia.org/wiki/Regularization_(mathematics)をご覧ください。 – cel

答えて

3

モデルを正規化する必要性は、モデルを訓練したいサンプルの数を増やすか、モデルの複雑さを軽減するにつれてますます少なくなりがちです。しかし、モデルを訓練するために必要なサンプル数(または非常に小さな正則化効果)は、パラメータの数によって指数関数的に増加し、おそらくモデル内で継承されるいくつかの要因があります。

ほとんどの機械学習の問題では、必要な数のトレーニングサンプルがありませんまたはモデルの複雑さが大きいため、オーバーフィッティングを避けるために正規化を使用する必要があります。直感的には、正則化の仕方は、ペナルティ項をargmin∑L(desired,predictionFunction(Wx))に導入することです。ここで、Lは、モデルの予測が望ましいターゲットからどのくらいずれているかを計算する損失関数です。したがって、新しい損失関数はargmin∑L(desired,predictionFunction(Wx)) + lambda*reg(w)となる。ここで、regは正規化の一種(例えばsquared L2)であり、lambdaは正規化効果を制御する係数である。そして、当然ながら、コスト関数を最小限に抑えながら、重みベクトルは小さな平方の長さ(例えば、squared L2 norm)に制限され、ゼロに向かって収縮する。これは、重みベクトルの2乗の長さが大きいほど、損失が大きくなるからです。したがって、重みベクトルは、最適化が実行されている間にモデルの損失を低減するためにも補償する必要があります。

正規化用語(lambda = 0)を削除したとします。モデルパラメータに任意の値を自由に設定できるため、線形モデルや非線形モデルを持っていても、ウェイトベクトルの2乗の長さは大きくなります。これは、(パラメータの数に加えて)モデルの複雑さに別の次元を追加し、最適化手順は、訓練データ点に正確に一致し得る重みベクトルを見つけることができる。しかし、目に見えない(検証またはテスト)データセットにさらされた場合、モデルはトレーニングデータにあまりフィットしていないため、一般化できません。

関連する問題