隠れ層にランダムノイズを追加することは正則化と見なされますか? それを行うことと、ドロップアウトとバッチ正規化を追加することの違いは何ですか?


答え 1:

はい、隠れ層にランダムノイズを追加することは、ドロップアウトとまったく同じ方法で正則化されます。 ここで重要な直観は、各層での神経応答がノイズの多い場合、トレーニングはノイズよりも大きいクリアランスでカテゴリを分離するように重みを調整する必要があるということです。 したがって、テスト時、ノイズが存在しない場合、分類はより安定している必要があります。 これは、max-margin分類の仕組みと非常によく似ており、max-marginテクニックが成功したことは誰もが知っています(サポートベクターマシンなど)。 ただし、ノイズが信号を圧倒しないように注意する必要があります。

ドロップアウトは、モデルの平均化を実行するため、正則化方法と見なされます。 つまり、トレーニング中、特定の時点でのモデルは、実際には重みは固定されているがモデル内のニューロンのいずれかが欠落している可能性があるニューラルネットワークモデルのクラスにわたる確率分布です。 各ニューラルネットワークの全体的な確率は、特定のニューロンが存在または存在しない個々の確率によって決定されます。 これは、各インスタンスのバイアスを平均してコスト関数を平滑化するため、正則化です。

ランダムノイズを隠れ層に追加する方法も同じですが、確率分布が異なります。 重みを固定するのではなく、トポロジを固定します。確率分布は、「真の」重み、つまりハードドライブに保存する重みを中心とするガウス分布に従ってランダムに重みを選択します。 繰り返しになりますが、これはモデルの平均化であり、ノイズ(分散)が信号を圧倒しないように注意して、規則的な影響を与える必要があります。 したがって、たとえば、最初にBatchNormを適用すると、おおよそ標準の標準出力プロファイル(分散1でゼロを中心とする単位)になり、分散0.1などのノイズを適用できます。 分散を試して、何が機能するかを確認できます。

編集:質問でBatchNormに言及したので、BatchNormは実際には正規化には使用されないことを指摘したかったのです。 つまり、BatchNormはコストを平滑化しません。 代わりに、逆伝播のパフォーマンスを改善するためにBatchNormが追加されます。 本質的に、再スケーリングと再センタリングにより、逆伝播勾配が大きくなりすぎたり小さくなりすぎないようにします。 手法として、コストサーフェスの曲率をモデル化しようとする2次の最適化手法とのより深いつながりがあります。 前述したように、BatchNormは、神経活動にランダムノイズを追加する場合に、相対的なスケーリングが正しいことを保証するためにも使用できます。


答え 2:

正則化よりも最適化の秘trickだと思います。

この効果は、SGDの確率論的効果と同等でなければなりません。

SGDとそのインスピレーションモンテカルロ法は、最急降下の方向に厳密に従うのではなく、時々ランダムなステップを踏むことにより、貧弱な局所最小値にとらわれることを回避します。 または、さまざまなインカネーションで同等のことを行います。たとえば、定期的にランダムなステップを実行する代わりに、ランダムなコンポーネントをすべてのステップに追加します。

重みに弱いランダムノイズを追加すると、まったく同じ結果が得られます。 [ヒント:勾配降下は、反復ごとに重みに何かを追加します!]


答え 3:

編集:

各層の入力データにガウス分布のランダムノイズを追加すると、データのわずかな変化に対してモデルがより堅牢になり、ネットワークでノイズと信号をより適切に区別できるようになります。 Zeeshan Ziaが言ったように、これは本質的に確率的勾配まともです。 私はまだこの正則化を考慮しません。 これは、モデルがパターンを学習して信号からノイズを分離するのに役立つテクニックです。

ドロップアウトは、各パスで非表示レイヤーの特定の割合のノードをランダムに無効にします。 これにより、複数の方法で同じパターンを認識する方法を学習させるため、ネットワークが改善され、より良いモデルにつながります。

バッチ正規化では、入力をレイヤーに取り込み、それらがすべて0から1の間で正規化されていることを確認します。これにより、ネットワークの学習がより適切になります。 この方法では、勾配が大きすぎるため、最小値を回避することはできません。