深層学習ことはじめ その11

これから数回にわたって深層学習についての記事を書きます.ひとまとめに長文としたものを数回に分けて紹介していきます.初学者向けです,何かの参考になれば.前回の記事を読んでいない方は先にそちらを見てください.

******

正則化

L1およびL2正則化は長い間よく知られており、ニューラルネットワークが目立つようになる前に適用されてきた。 L1正則化は、単純に、重みの絶対値に定数を掛けたものに通常のコストを加えたものです。
J_L1 = J + L1_const *(| W1 | + | b1 | + | W2 | + | b2 | +…)
同様に、L2正則化は、通常、重みの2乗に定数を掛けたものに追加されます。
J_L2 = J + L2_const *(| W1 | 2 + | b1 | 2 + | W2 | 2 +…)
これは要素ごとの二乗であることに注意してください。場合によっては、L1とL2の両方の正則化を同時に使用できます。この2つの違いは何か?どちらも無限大になることから重みにペナルティを課します(シグモイド前の活性化が可能な限り無限大に近づくことを望んでいるので、それらはやるべきことです)。
違いは、平方関数の導関数が0に近づくにつれて0になることです。したがって、L2正則化は重みを小さくすることを推奨します。しかし、それらが小さくなると、ペナルティも小さくなり、ペナルティの勾配も小さくなるため、L2正則化の影響はここでは減少します。絶対値関数の導関数は0の両側で一定です。したがって、実際に0になるまで、重みが小さい場合でも勾配は同じままです。勾配は技術的に定義されていませんが、次のように扱います。 0なので、おもみは動きません。したがって、L1正則化は、重みが0になるように推奨される「希薄性」を助長します。これは、統計学者が少数の非常に影響力のある効果に関心を持つ線形回帰の一般的な手法です。

早期停止

バックプロパゲーションを早期に停止することは、別のよく知られている正則化の方法です。非常に多くのパラメータで、あなたは過剰装備に縛られています。バリデーションセットのコストが上がると、やり過ぎになる可能性があるため、早めに作業を中止するためにバリデーションセットを使用することもできます。

ノイズインジェクション

トレーニング中に入力にランダムノイズを追加することは、さらに別の正規化方法です。通常、平均が0で分散が小さいガウス分布確率変数を選択します。これは、より多くのデータを持つことをシミュレートし、より堅牢な予測子になります。

Data Augmentation

あなたの画像のラベルが “犬”だとします。あなたのイメージの中心にいる犬は犬として分類されるべきです。右上、または左上、または右下、または左下に犬がいるように。逆さまの犬はまだ犬です。色が少し違う犬はまだ犬です。独自のデータを作成し、元のデータと手作りのデータの両方についてトレーニングを行うことで、ニューラルネットワークに同じもののさまざまなバリアントを認識させることで、より堅牢な予測子が得られます。私が上述したのは並進不変性、回転不変性、そして色不変性でした。

DropOut

ドロップアウトは、その効果のためにディープラーニングコミュニティで非常にポピュラーになった新しいテクニックです。ノイズがガウス分布ではなく、2項ビットマスクになっている点を除けば、ノイズ注入と似ています。言い換えれば、ニューラルネットワークのすべてのレイヤで、そのレイヤのノードにビットマスク(レイヤと同じサイズの0と1の配列)を乗算するだけです。通常、1(これをpと呼びます)の確率を隠れ層で0.5、入力層で0.8に設定します。これが効果的に行うことは、ニューラルネットワークのアンサンブルを作成することです。すべてのノードは「オン」または「オフ」のどちらかである可能性があるため、この手法は2 ^ N個のニューラルネットワークの集合体をエミュレートします。
ノードの値を0に設定することは、ネットワークからノードを完全に「削除」することと同じであるため、この方法は「ドロップアウト」と呼ばれます。トレーニング段階では、ノードを0に設定するだけです。予測段階では、代わりにノードの発信ウェイトにそのノードのpを掛けます。これは実際に各アンサンブルの出力を計算し、結果の予測を平均化するための近似値ですが、実際にはうまく機能します。

1つの問題

これらすべての方法に共通する点は何か? うまく機能しますが、それでも大きな問題が1つあります。それらは、モデルにハイパーパラメータを追加することです。 したがって、ハイパーパラメータ検索空間はさらに大きくなる。

コメント

タイトルとURLをコピーしました