RMSPropとAdamとSGD


12

RMSProp、Adam、SGDのネットワークを使用して、EMNIST検証セットの実験を行っています。SGD(学習率0.1)とドロップアウト(0.1ドロップアウト確率)、およびL2正則化(1e-05ペナルティ)で87%の精度を達成しています。同じ正確な構成をRMSPropとAdamでテストし、初期学習率0.001をテストすると、85%の精度と大幅に滑らかでないトレーニングカーブが得られます。この動作を説明する方法がわかりません。トレーニング曲線が滑らかでなく、精度が低く、エラー率が高い理由は何ですか?


これはネットワークに依存します。ネットワークの詳細を教えてください。また、学習曲線を提供できますか?
Memming

これは、次のように設定された5つのレイヤー(ドロップアウト、アフィン、ELU)のネットワークです。150の隠し次元、使用されるELUアクティベーション関数、SGDの0.1学習率、RMSおよびAdamの0.001学習率、1eのL2正則化-05ペナルティ、除外確率0.1のドロップアウト。
Alk、

そして、「まったく同じ構成...最初の学習率0.001」と言ったとき、異なる学習率を使用したということですか、それとも2つの実験を行ったということです。1つは同じ学習率で、もう1つは異なるものです。これは、どのパラメーターのデフォルトが何であるかについて、使用している実際のソフトウェアに依存する場合があります。
2017年

したがって、SGDには0.1を、AdamとRMSPropの両方には0.001を使用しました。これは、0.1の学習率でAdamとRMSPropを実行すると、どちらも60%の精度でパフォーマンスが低下したためです。また、0.001はAdamに関する論文の推奨値です。
Alk、

学習曲線と、テストデータまたはトレーニングデータのエラーを測定するかどうかを投稿する必要があります。
Jakub Bartczuk、2018年

回答:


4

オンラインでいくつかの記事とKerasのドキュメントを調査した後、RMSPropオプティマイザがリカレントニューラルネットワークに推奨されることが示唆されています。https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209

確率的勾配降下法は、各バッチ間の学習率と勢いを利用して、私の場合の損失関数の情報に基づいてモデルの重みを最適化するようです( 'categorical_crossentropy')。

最適化アルゴリズムの詳細については、http://ruder.io/optimizing-gradient-descent/index.htmlをお勧めします。


「RMSPropオプティマイザーは再帰型ニューラルネットワークに推奨されます」とはどういう意味かわかりません。あなたが置いたリンクは今壊れており、それが推奨されていることはどこにも言及されていません。
Harshal Parekh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.