web-dev-qa-db-ja.com

なぜ人工ニューラルネットワークの入力を正規化する必要があるのですか?

ニューラルネットワークの理論に関する主要な質問です。

なぜニューラルネットワークの入力を正規化する必要があるのですか?

たとえば、入力値が非数値の場合、特定の変換を実行する必要がありますが、数値入力がある場合はどうすればよいかを理解しています。数字が一定の間隔にある必要があるのはなぜですか?

データが正規化されない場合はどうなりますか?

120
karla

それはよく説明されています ここ

MLPのように、入力変数が線形に結合される場合、少なくとも理論的には、入力を標準化することが厳密に必要になることはめったにありません。その理由は、対応する重みとバイアスを変更することで、入力ベクトルの再スケーリングを効果的に取り消すことができ、以前とまったく同じ出力が得られるためです。ただし、入力を標準化することでトレーニングを高速化し、ローカルの最適化で立ち往生する可能性を減らすことができるさまざまな実際的な理由があります。また、標準化された入力を使用して、重量減衰とベイズ推定をより便利に行うことができます。

89
finnw

ニューラルネットワークでは、データを正規化するだけでなく、スケーリングすることをお勧めします。これは、エラーサーフェスでのグローバルミニマムへのより高速なアプローチを目的としています。次の写真を参照してください。 error surface before and after normalization

error surface before and after scaling

写真は coursera course ニューラルネットワークについてのものです。 course の著者はGeoffrey Hintonです。

50
Yuriy Zaletskyy

NNへの一部の入力には、「自然に定義された」値の範囲がない場合があります。たとえば、平均値はゆっくりですが、時間とともに継続的に増加する場合があります(たとえば、データベース内のレコードの数)。

そのような場合、この生の値をネットワークに入力してもうまく機能しません。範囲の低い部分からの値でネットワークを教えますが、実際の入力はこの範囲の高い部分からのものです(ネットワークが動作することを学んだ範囲よりかなり高い可能性があります)。

この値を正規化する必要があります。たとえば、前回の入力から値がどれだけ変化したかをネットワークに伝えることができます。通常、この増分は特定の範囲で高い確率で定義できるため、ネットワークへの適切な入力になります。

19
Mchl

ニューラルネットワークを外部から見ると、それはいくつかの引数を取り、結果を生成する単なる関数です。すべての関数と同様に、ドメイン(つまり、正当な引数のセット)があります。ドメイン内にあることを確認するには、ニューラルネットに渡す値を正規化する必要があります。すべての関数と同様に、引数がドメインにない場合、結果が適切であるとは限りません。

ドメイン外の引数に対するニューラルネットの正確な動作は、ニューラルネットの実装に依存します。しかし、全体として、引数がドメイン内にない場合、結果は役に立ちません。

10
Oswald

正規化が必要な理由は、関数のドメイン内の1つの場所で適応ステップがどのように進行するかを見て、単純に問題をある方向の大きな値によって変換された同じステップの等価物に転送するためですドメインを選択すると、異なる結果が得られます。要するに、線形部分をデータポイントに適合させるという問題になります。曲がらずにピースはどれだけ動き、その1つのトレーニングポイントに応じてどれだけ曲がるべきですか?ドメインのさまざまな部分で適応手順を変更しても意味がありません!そのため、トレーニング結果の差を減らすために正規化が必要です。これはまだ書かれていませんが、単純な線形関数の数学と、2つの異なる場所で1つのトレーニングポイントがどのようにトレーニングされるかを見ることができます。この問題はいくつかの場所で修正されたかもしれませんが、私はそれらに精通していません。 ALNでは、問題は修正されており、wwarmstrong AT shaw.caに手紙を書いていただければ論文をお送りします。

答えはシナリオに依存していると思います。

F(input output)==となるように、NN(ニューラルネットワーク)を演算子Fとして考えます。この関係が線形であるためF(A * input A * output)==の場合、入力/出力をそのままの形で正規化しないか、両方を正規化して削除するかを選択できますA.明らかに、この線形性の仮定は、分類タスク、または確率を出力するほぼすべてのタスクで違反します。ここで、F(A *入力 1 *出力)==

実際には、正規化により、適合不可能なネットワークを適合可能にすることができます。これは、実験者/プログラマーにとって重要です。それにもかかわらず、正規化の正確な影響は、ネットワークアーキテクチャ/アルゴリズムだけでなく、入力と出力の事前統計にも依存します。

さらに、NNは非常に難しい問題をブラックボックス形式で解決するために実装されることが多く、これは根本的な問題の統計的定式化が非常に不十分であり、正規化の影響を評価するのが難しくなり、技術的優位性が生じることを意味します(適合可能になる)統計への影響を支配します。

統計的な意味では、正規化は出力の予測に非因果性があると考えられる変動を除去し、NNが予測としてこの変動を学習しないようにします(NNはこの変動を認識しないため、使用できません)。

0
shouldsee