ニューラルネットワークをトレーニングするためのオプティマイザーを選択するためのガイドライン


18

私はしばらくの間ニューラルネットワークを使用しています。ただし、私が常に苦労しているのは、ネットワークをトレーニングするためのオプティマイザーの選択です(backpropを使用)。私が通常行うことは、1つ(例えば、標準SGD)から始めて、それから他のものをほぼランダムに試すことです。良いオプティマイザーを見つけるためのより良い(そしてそれほどランダムではない)アプローチがあるかどうか、例えばこのリストから疑問に思っていました:

  • SGD(勢いのあるなしにかかわらず)
  • アダデルタ
  • AdaGrad
  • RMSProp
  • アダム

特に、訓練データに何らかの性質がある場合、たとえば、それがまばらであることを考えて、他のものよりも一つを選択する理論的な正当性があるかどうかに興味があります。また、特定のドメインでは、一部のオプティマイザが他のオプティマイザよりもうまく機能することを想像します。たとえば、畳み込みネットワークとフィードフォワードネットワーク、または分類と回帰をトレーニングする場合です。

オプティマイザーの選択方法に関する戦略や直感を開発している方がいれば、それを聞いてみたいと思います。さらに、あるものを別のものよりも選択するための理論的な正当性を提供する作業があれば、それはさらに良いでしょう。

回答:


3

1)AdaGradは、頻繁に更新されるパラメーターに対して学習率に過大なペナルティーを課し、スパースパラメーター、それほど頻繁に更新されないパラメーターにより多くの学習率を与えます。いくつかの問題では、頻繁ではないがまばらなデータに最も重要な情報が存在することがよくあります。そのため、作業中の問題がtf-idfなどのスパースデータを扱う場合は、Adagradは便利です。

2)AdaDelta、RMSPropは、最初の学習レート定数を必要としないAdadeltaの唯一の違いがあるだけで、同様の行でほとんど動作します。

3)Adamは、AdadeltaとRM​​Spropの優れた特性を兼ね備えているため、ほとんどの問題に対してより良い結果をもたらす傾向があります。

4)確率的勾配降下法は非常に基本的であり、現在ほとんど使用されていません。1つの問題は、それに関連するグローバルな学習率にあります。したがって、学習率が低いと学習が遅くなり、学習率が大きいと振動が発生する可能性があるため、パラメーターのスケールが異なるとうまく機能しません。また、確率的勾配降下では、一般に点からの脱出に苦労します。Adagrad、Adadelta、RMSprop、およびADAMは一般に、サドルポイントをより適切に処理します。勢いのあるSGDは、最適化の速度をある程度向上させ、局所的最小値からの脱出にも役立ちます。


2

私の個人的なアプローチは、最新のオプティマイザ(ピアでレビューされた最新のジャーナル)を選択することです。これは、通常、標準データセットで結果を報告するか、最先端の技術、またはその両方を報告するためです。たとえば、Caffeを使用するときは、常にAdam(http://arxiv.org/abs/1412.6980)を使用します。


0
Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)

Adam本質的RMSpropに勢いがあるのと同じように、NadamアダムRMSpropもネステロフの勢いです。

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