1

RNNモデルがあります。約10Kの反復後、損失は減少しなくなりますが、損失はそれほど大きくはありません。最適化がローカルの最小値にトラップされていることを常に意味しますか?損失が減少しなくなったときにRNNモデルをトレーニングするための一般的なルール

一般的に、この問題に対処するにはどうすればよいですか?トレーニングデータを追加しますか?別の最適化スキーム(SGD)を変更しますか?またはその他のオプション?

多くの感謝!

JC

答えて

2

あなたはそれがローカルの最小値を求め、それが原因で、アルゴリズムFOこのタイプの性質の正常である場合に向上停止することができ、このようなBack PropagationResilient Propagationとして勾配ベクトルベースのアルゴリズムを使用して、あなたにニューラルネットワークを訓練している場合。この場合、伝播アルゴリズムは、(グラディエント)ベクトルが何を指しているかを検索するために使用されます。

訓練中に別の戦略を追加して、検索の代わりに検索スペースを探索することができます。サンプルの場合、Genetic AlgorithmまたはSimulated Annealingアルゴリズム。これらのアプローチは、可能性の探索を提供し、全体的な最小値を見つけることができます。伝播アルゴリズムの200回の反復ごとに10回のイテレーションを実装し、ハイブリッド戦略を作成できます。サンプルでは(それはちょうど擬似コード):

int epochs = 0; 
do 
{ 
    train(); 

    if (epochs % 200 == 0) 
     traingExplorativeApproach(); 

    epochs++; 
} while (epochs < 10000); 

は私がclassificationregressions問題にMulti-Layer PerceptronsElman recurrent neural networkを使用して、このような戦略を開発してきましたし、両方のケースではハイブリッド戦略は、単一の伝播の訓練をより良い結果を提供してきました。

関連する問題