私はしばらくの間ニューラルネットワークを使用しています。ただし、私が常に苦労しているのは、ネットワークをトレーニングするためのオプティマイザーの選択です(backpropを使用)。私が通常行うことは、1つ(例えば、標準SGD)から始めて、それから他のものをほぼランダムに試すことです。良いオプティマイザーを見つけるためのより良い(そしてそれほどランダムではない)アプローチがあるかどうか、例えばこのリストから疑問に思っていました:
- SGD(勢いのあるなしにかかわらず)
- アダデルタ
- AdaGrad
- RMSProp
- アダム
特に、訓練データに何らかの性質がある場合、たとえば、それがまばらであることを考えて、他のものよりも一つを選択する理論的な正当性があるかどうかに興味があります。また、特定のドメインでは、一部のオプティマイザが他のオプティマイザよりもうまく機能することを想像します。たとえば、畳み込みネットワークとフィードフォワードネットワーク、または分類と回帰をトレーニングする場合です。
オプティマイザーの選択方法に関する戦略や直感を開発している方がいれば、それを聞いてみたいと思います。さらに、あるものを別のものよりも選択するための理論的な正当性を提供する作業があれば、それはさらに良いでしょう。