私は、消滅(または主に消滅しているが、勾配問題の爆発)に苦しむ非線形性を持つネットワークを訓練したかった。(現在の)標準的な方法は、バッチ正規化1 [BN] 1を使用するか、単に非線形性を放棄してReLu 整流器/ ReLuユニットを使用することです。
私は2つのことを望んでいました:
- 私の非直線性に固執するので、それを放棄してReLuを使用したくありません(つまり、ReLuは許可されません!)。非線形性の再パラメータ化は問題ありません。たとえば、ようにその前に乗法を置くとしましょう。
- 理想的には、あまりにも多くのバッチ正規化に依存したくなかった(または、少なくともそれが使用された場合、元の論文での使用方法以外の新しい方法で使用するか、多くの非直線性に一般化する必要がある)。バッチ正規化を避けたかった理由の1つは、特定の非線形性に対してのみ機能するように見えるためです。たとえば、シグモイドの場合、tanhですが、他の非線形性に対してどのように機能するかは不明です、とガウシアンは言います。
これらの制約がある理由は、特定の非線形性に対してのみ機能するソリューションをハッキングしたり、単に問題を回避することで問題を回避したりするのではなく、直接問題を数えることによって勾配を消失または爆発させる問題に対処したいためですReLu。
これらの2つの制約があるため、勾配の消失問題に対処するための代替方法は何ですか?(考慮される別の非線形性は、ユークリッドノルムの事前アクティブ化、シグモイド、tanhなどのRBFガウスカーネルです)
私が考えていた(漠然とした)考えられるアイデアは次のとおりです。
- 飽和状態の非線形性が既に飽和状態にならないように、適切な初期化を行ってください(飽和状態の非線形性により、勾配がゼロに近くなります)。
- RBFの場合も同様に、ガウシアンは主に0に近い大きな値を持っているため(つまり、フィルターがそのアクティブ化またはデータに類似している場合)、適切な初期化が重要になる場合があります。したがって、大きすぎたり小さすぎたりすると、同様の勾配の問題が消えます。
- これが制約が強すぎるかどうかは本当にわかりませんが、元の論文での従来の提案(またはおそらく、より大きな非線形性、現在のところ、ほとんどの研究は、私が知る限り、シグモイドで機能することを示すことです)。
- もう1つのアイデアは、非線形性を使用する代わりにするです。場合以前のレイヤーで「消失」するのを避けるために、非線形性がレイヤーごとに逆方向に複数回乗算されないことを意味します。学習ルールが不安定になる可能性があるため、レギュラライザーを使用することをお勧めします。θ (Z )A ∈ R A > 1
- 本質的に消滅勾配を処理する(または少なくとも各パラメーターを別々に更新する)オプティマイザー。たとえば、その層が入力に近い場合、学習ステップは大きくなるはずです。学習アルゴリズムがこれを単独で考慮に入れて、消失勾配に対処するのは良いことです。
バッチノルムまたはReLu以外の消失勾配に対処する方法について提案がある場合は、それらについてお聞かせください。
勾配の消失は主に非線形性がという特性を持っているために発生するようです であり、で、それを何度も掛けた後、爆発または消失します。問題を明示的に言って解決するのに役立つかもしれません。問題は、下位層が更新されないか、ネットワークを介した信号を妨害することです。順方向パスと逆方向パスの間(および初期化時だけでなくトレーニング中も)、この信号がネットワークを流れるように維持するとよいでしょう。| θ ′(s )| < 1
1:Ioffe S.とSzegedy C.(2015)、
「バッチ正規化:内部共変量シフトの削減によるディープネットワークトレーニングの加速」、
第32回機械学習に関する国際会議、リール、フランス、2015。Journalof
Machine Learning Research: W&CPボリューム37