[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

吴恩达老师DeepLearning.ai课程笔记
【吴恩达Deeplearning.ai笔记一】直观解释逻辑回归
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络上
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络下
深度网络不好使?吴恩达老师带你优化神经网络(1)

ディープニューラルネットワークのトレーニング効率を向上させたい場合は、すべての側面から始めて、計算プロセス全体を最適化し、発生する可能性のあるさまざまな問題を防ぐ必要があります。

この記事では、ディープニューラルネットワークでのいくつかの勾配降下方法の最適化、Momentum、RMSProp、勾配降下でのAdam最適化アルゴリズム、学習率の減衰、バッチ標準化などについて説明します。

1勾配降下法のバッチ勾配降下(BGD)


バッチ勾配降下(BGD)は、勾配降下の最も一般的に使用される形式であり、以前のロジスティック回帰およびディープニューラルネットワーク構築で使用された勾配降下はこの形式です。パラメータを更新するときに、すべてのサンプルを使用して更新します。具体的なプロセスは次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

サンプルグラフ:
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

  • 利点:すべてのトレーニングサンプルの損失関数を最小限に抑えて、グローバルな最適なソリューションを取得します。並行して簡単に実装できます。
  • 短所:サンプル数が多いと、トレーニングプロセスが非常に遅くなります。

2勾配降下法の確率勾配降下法(SGD)


Stochastic Gradient Descent(SGD)は、バッチ勾配降下の原理に似ていますが、一度に1つのサンプルを繰り返し更新する点が異なります。具体的なプロセスは次のとおりです。

[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
サンプルグラフ:
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

  • 利点:トレーニング速度が速い。
  • 短所:各サンプルの損失関数を最小限に抑えます。最終結果は、グローバル最適ではなく、グローバル最適ソリューションに近いことがよくあります。並行して実装するのは簡単ではありません。

3小バッチ勾配降下法(MBGD)の勾配降下法


ミニバッチ勾配降下(MBGD)は、バッチ勾配降下法と確率的勾配降下法の間の妥協点です。m個のトレーニングサンプルを使用し、毎回t(1 <t <m)サンプルが反復更新に使用されます。 。具体的なプロセスは次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
その中
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
で、
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
例の図:

[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

サンプル数tの値は、実際のサンプル数に応じて調整されます。コンピュータの情報保存方法と互換性を持たせるために、tの値を2の累乗に設定することができます。すべてのトレーニングサンプルを完全に通過させることをエポックと呼びます。

4勾配降下最適化法の指数加重平均


指数関数的重み平均は、シーケンスデータを処理するために一般的に使用される方法であり、その計算式は次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

ロンドンでの1年間の毎日の温度値などの時系列を考えると、
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
青い点は実際のデータ値を表します。

瞬時の温度値の場合、重み値βを0.9とすると、次のようになります。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

による:
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

このようにして得られた値は、図の赤い曲線であり、温度変化の一般的な傾向を反映しています。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

重み値β= 0.98の場合、図ではより滑らかな緑色の曲線が得られます。重み値β= 0.5の場合、図のノイズが多い黄色の曲線が得られます。βが大きいほど、平均使用日数が多いことに相当し、曲線は自然に滑らかになり、遅れが大きくなります。

指数加重平均を計算する場合、最初の値ν0は0に初期化されます。これにより、前の計算で特定の偏差が発生します。偏差を修正するには、次の式を使用して、各反復後に偏差を修正する必要があります。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

5勾配降下最適化法の運動量勾配降下


勢いのある勾配降下は、勾配の指数加重平均を計算し、この値を使用してパラメーター値を更新することです。具体的なプロセスは次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
運動量減衰パラメータβは一般に0.9です。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
一般的な勾配降下を実行すると、図の青い曲線が得られます。運動量勾配降下を使用すると、累積によって最小へのパスのスイングが減少し、収束が加速され、図の赤い曲線が得られます。

前後の勾配方向が同じ場合、運動量勾配降下は学習を加速できます。前後勾配方向が一貫していない場合、運動量勾配降下は衝撃を抑制することができます。

6勾配降下最適化法のRMSPropアルゴリズム


RMSProp(Root Mean Square Prop)アルゴリズムは、勾配の指数関数的に重み付けされた平均に基づいて、平方根と平方根を導入します。具体的なプロセスは次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
ここで、ε= 10-8は、数値の安定性を向上させ、分母が小さすぎるのを防ぐために使用されます。

[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

7勾配降下最適化法のアダム最適化アルゴリズム


Adam(Adaptive Moment Evaluation、Adaptive Moment Evaluation)最適化アルゴリズムは、さまざまな深層学習ネットワーク構造に適しており、基本的にMomentum勾配降下とRMSPropアルゴリズムを組み合わせています。具体的なプロセスは次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
学習率αを調整する必要があります。ハイパーパラメータβ1は最初のモーメントと呼ばれ、通常は0.9、β2は2番目のモーメント、通常は0.999、εは通常10-8です。

8学習率の減衰


時間の経過とともに、学習率αのサイズをゆっくりと小さくします。初期段階でαが大きいほど、ステップサイズが大きくなり、より速い速度で勾配を小さくすることができますが、後の段階ではαの値を徐々に小さくします。ステップサイズはアルゴリズムの収束に役立ち、最適なソリューションに近づくのが簡単になります。

一般的に使用されるいくつかの学習率減衰方法は次の
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
とおりです。decay_rateは減衰率、epoch_numはすべてのトレーニングのエポック数です。

標準化の9つのバッチ


バッチ正規化(BN)は、以前のデータセットの標準化と同様であり、分散データを統合する方法です。仕様が統一されたデータを使用すると、マシンがデータの法則を簡単に学習できるようになります。

mノードのニューラルネットワークの特定のレイヤーの場合、zでバッチ標準化操作を実行する手順は次のとおりです
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
。γとβはハイパーパラメーターではなく、学習する必要のある2つのパラメーターです。ニューラルネットワークは、それ自体で使用と変更を学習します。これらの2つの拡張パラメーター。このようにして、ニューラルネットワークは以前の標準化操作が最適化されているかどうかをゆっくりと把握できます。それらが機能しない場合は、γとβを使用して以前の標準化操作の一部を相殺します。たとえば
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
、正規化操作の前にキャンセルされた場合
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

「共変量シフト」の現象は、現在の経験が新しいサンプルと新しい環境に適応できないときに発生します。ニューラルネットワークの場合、前の重み値が一定に変化すると、次の重み値が一定に変化します。バッチ標準化により、隠れ層の重み分布の変化の度合いが遅くなります。バッチ標準化が採用された後、各層のzはまだ変化していますが、それらの平均と分散は基本的に変化しないため、後続のデータとデータ分散がより安定し、前層と後層の間の結合が減少します。各レイヤーが前のネットワークレイヤーに過度に依存しないようにし、最終的にニューラルネットワーク全体のトレーニングをスピードアップします。

バッチ標準化には、付随する正規化効果もあります。ミニバッチ勾配降下を使用する場合、各ミニバッチでバッチ標準化を実行すると、このミニバッチで最後に取得されたzに干渉が発生します。これは、DropOutと同様です。正規化効果がありますが、効果はそれほど重要ではありません。この小さなバッチの数が多いほど、正規化の効果は弱くなります。

バッチ標準化は正規化の手段ではなく、正規化の効果はわずかな副作用にすぎないことに注意してください。さらに、トレーニング中にバッチ標準化を使用する場合は、テスト中にバッチ標準化も使用する必要があります。

トレーニングの場合、入力はトレーニングサンプルの小さなバッチであり、テストの場合、テストサンプルは1つずつ入力されます。ここでも、指数加重平均が使用されます。トレーニングプロセスでは、各ミニバッチの平均および分散加重平均が取得され、最終結果が保存されてテストプロセスに適用されます。

10Softmaxが戻ります


Softmax回帰モデルは、複数分類の問題に関するロジスティック回帰モデルの推進です。複数分類の問題では、出力yの値は数値ではなく、多次元の列ベクトルになります。分類と同じ数の次元があります。アクティベーション関数はsoftmax関数を使用します。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)
損失関数は次のとおりです。
[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

注:この記事に含まれる写真と資料は、AndrewNgのDeepLearningシリーズから編集および翻訳されており、著作権は彼に帰属します。翻訳と照合のレベルは限られており、不適切な点を指摘することを歓迎します。

[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

推奨読書:

ビデオ|紙を作成できない場合はどうすればよいですか?これらの方法を試してみません
か[深層学習戦闘] pytorchでのRNN入力可変長シーケンスパディングの処理方法[
機械学習の基本理論]最大事後確率推定(MAP)の詳細な理解

      欢迎关注公众号学习交流~         

[Deeplearning.ai]ディープラーニング(4):ニューラルネットワークの最適化(2)

おすすめ

転載: blog.51cto.com/15009309/2554218