バッチ正規化やReLuユニットを使用せずに、非線形性を飽和させるための消失勾配に対処する方法はありますか?


8

私は、消滅(または主に消滅しているが、勾配問題の爆発)に苦しむ非線形性を持つネットワークを訓練したかった。(現在の)標準的な方法は、バッチ正規化1 [BN] 1を使用するか、単に非線形性を放棄してReLu 整流器/ ReLuユニットを使用することです。

私は2つのことを望んでいました:

  1. 私の非直線性に固執するので、それを放棄してReLuを使用したくありません(つまり、ReLuは許可されません!)。非線形性の再パラメータ化は問題ありません。たとえば、ようにその前に乗法を置くとしましょう。θ(s)
  2. 理想的には、あまりにも多くのバッチ正規化に依存したくなかった(または、少なくともそれが使用された場合、元の論文での使用方法以外の新しい方法で使用するか、多くの非直線性に一般化する必要がある)。バッチ正規化を避けたかった理由の1つは、特定の非線形性に対してのみ機能するように見えるためです。たとえば、シグモイドの場合、tanhですが、他の非線形性に対してどのように機能するかは不明です、とガウシアンは言います。

これらの制約がある理由は、特定の非線形性に対してのみ機能するソリューションをハッキングしたり、単に問題を回避することで問題を回避したりするのではなく、直接問題を数えることによって勾配を消失または爆発させる問題に対処したいためですReLu。

これらの2つの制約があるため、勾配の消失問題に対処するための代替方法は何ですか?(考慮される別の非線形性は、ユークリッドノルムの事前アクティブ化、シグモイド、tanhなどのRBFガウスカーネルです)

私が考えていた(漠然とした)考えられるアイデアは次のとおりです。

  1. 飽和状態の非線形性が既に飽和状態にならないように、適切な初期化を行ってください(飽和状態の非線形性により、勾配がゼロに近くなります)。
  2. RBFの場合も同様に、ガウシアンは主に0に近い大きな値を持っているため(つまり、フィルターがそのアクティブ化またはデータに類似している場合)、適切な初期化が重要になる場合があります。したがって、大きすぎたり小さすぎたりすると、同様の勾配の問題が消えます。
  3. これが制約が強すぎるかどうかは本当にわかりませんが、元の論文での従来の提案(またはおそらく、より大きな非線形性、現在のところ、ほとんどの研究は、私が知る限り、シグモイドで機能することを示すことです)。
  4. もう1つのアイデアは、非線形性を使用する代わりにするです。場合以前のレイヤーで「消失」するのを避けるために、非線形性がレイヤーごとに逆方向に複数回乗算されないことを意味します。学習ルールが不安定になる可能性があるため、レギュラライザーを使用することをお勧めします。θ Z A R A > 1θ(z)aθ(z)aRa>1
  5. 本質的に消滅勾配を処理する(または少なくとも各パラメーターを別々に更新する)オプティマイザー。たとえば、その層が入力に近い場合、学習ステップは大きくなるはずです。学習アルゴリズムがこれを単独で考慮に入れて、消失勾配に対処するのは良いことです。

バッチノルムまたはReLu以外の消失勾配に対処する方法について提案がある場合は、それらについてお聞かせください。


勾配の消失は主に非線形性がという特性を持っているために発生するようです であり、で、それを何度も掛けた後、爆発または消失します。問題を明示的に言って解決するのに役立つかもしれません。問題は、下位層が更新されないか、ネットワークを介した信号を妨害することです。順方向パスと逆方向パスの間(および初期化時だけでなくトレーニング中も)、この信号がネットワークを流れるように維持するとよいでしょう。| θ s | < 1|a|<1|θ(s)|<1


1:Ioffe S.とSzegedy C.(2015)、
「バッチ正規化:内部共変量シフトの削減によるディープネットワークトレーニングの加速」、
第32回機械学習に関する国際会議、リール、フランス、2015。Journalof
Machine Learning Research: W&CPボリューム37


+1これは興味深い質問です。好奇心から脱出-ReLUを使いたくないのはなぜですか?
Sycorax氏は、モニカを2016

私の理由は次のとおりです。1)ReLuを使用すると、勾配に直接対処するのではなく、勾配の消失と爆発の問題を回避できるようです。2)一部のタスクが他のタスクよりも非常に優れていると思われるアクティベーションがあった場合、Reluに切り替える必要があります。3)...(次のコメント)
ピノキオ

3)たとえば、ガウシアンを扱う場合、バッチ正規化の一般化は簡単ではありません(ユークリッドノルムの事前活性化をバッチ正規化する必要がありますか?そうすると、RBFガシアへの入力が負になり、勾配が爆発する可能性がありますが、代わりにI非線形性の出力を直接正規化します。RBFの出力と実際にはシグモイド(tanh)も短い間隔[0,1]または[- 1,1])基本的に、これらの2つのアイデアをさらに進めることができるように思われますが、方法がわかりません。
ピノキオ

私の理由は主に直感に基づいていますが、明らかに、これらすべてのポイントに対処するには、さらに調査または何かが必要です。
ピノキオ

1
LSTMまたは残差ネットワークが飽和非線形性とどのように関係するかについて何か知っている場合は、ちょうど興味があります。彼らはReLusでしか機能しない傾向があるのだろうか。論文ではどちらもReLusの使用を指定していますが、それがメソッドに不可欠であるのか、それとも後押しになるものだけなのか疑問に思います。
testuser

回答:


2

RMSPropを調べましたか?ジェフヒントンの次のスライドセットをご覧ください。

ミニバッチ勾配降下法の概要

具体的には、29ページ、「rmsprop:rpropのミニバッチバージョン」というタイトルですが、関連するいくつかのアイデアの詳細を理解するには、フルセットを一読する価値があります。

Yan Le Cunのこれ以上厄介な学習率も関連しています

Brandyn WebbのSMORMS3

主なアイデアは、勾配の兆候と、それがフリップフロップであるかどうかを見ることです。一貫している場合は、その方向に移動する必要があります。また、標識が反転しない場合は、取るに足りないほど小さいステップでなければ、ステップは大丈夫でなければならないので、ステップサイズを制御してそれを維持する方法があります。賢明であり、それは実際の勾配からある程度独立しています。

したがって、グラデーションの消失または爆発を処理する方法に対する簡単な答えは、グラデーションの大きさを使用しないことです。


「ステップサイズを制御して賢明に保つ方法があり、実際の勾配とはある程度独立している」これを手動で行う必要がありますか、それとも機能するアルゴリズムはありますか?
ピノキオ

リンクで説明されているさまざまな方法(およびバリアント)がありますが、これらはすべて、勾配と学習率の積以外の何かである重み更新を計算する方法を提供します。
redcalx

1

私の理解の一部は正しくないかもしれません。

勾配の消失問題の原因はsigmoid tanh(およびRBF)が両側-infおよびinf)で飽和するためです。そのため、このような非線形性の入力が飽和領域に入る可能性が非常に高くなります。

BNの効果は、非線形の入力を開始点としての0付近の小さな範囲に向けて「引き寄せ」、そのような非線形が飽和しないことです。ですから、RBFでも動作すると思います。N(0,1)

ReLUの非直線性を取り除くには、ReLUに非常に近いsoftplus関数を使用できます。これは、Geoffrey Hintonのpapperで使用され、ReLUが機能する理由を説明しています。log(1+ex)

ここに画像の説明を入力してください

また、残余ネットワークまたは高速道路ネットワークは、(ショートカットを介して)消失勾配に対処する別の方法を提供します。私の経験から、そのようなアーキテクチャは、損失を最後のレイヤーに接続するだけの場合よりもはるかに速くトレーニングされます。

さらに、ディープネットワークのトレーニングの難しさは、勾配の消失だけではなく、他の要因(内部共変量シフトなど)も原因です。正規化を行う別の方法について、最近の紙層の正規化があります。ただし、勾配の消失については触れていませんが、興味があるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.