RNNモデルがあります。約10Kの反復後、損失は減少しなくなりますが、損失はそれほど大きくはありません。最適化がローカルの最小値にトラップされていることを常に意味しますか?損失が減少しなくなったときにRNNモデルをトレーニングするための一般的なルール
一般的に、この問題に対処するにはどうすればよいですか?トレーニングデータを追加しますか?別の最適化スキーム(SGD)を変更しますか?またはその他のオプション?
多くの感謝!
JC
RNNモデルがあります。約10Kの反復後、損失は減少しなくなりますが、損失はそれほど大きくはありません。最適化がローカルの最小値にトラップされていることを常に意味しますか?損失が減少しなくなったときにRNNモデルをトレーニングするための一般的なルール
一般的に、この問題に対処するにはどうすればよいですか?トレーニングデータを追加しますか?別の最適化スキーム(SGD)を変更しますか?またはその他のオプション?
多くの感謝!
JC
あなたはそれがローカルの最小値を求め、それが原因で、アルゴリズムFOこのタイプの性質の正常である場合に向上停止することができ、このようなBack Propagation
やResilient Propagation
として勾配ベクトルベースのアルゴリズムを使用して、あなたにニューラルネットワークを訓練している場合。この場合、伝播アルゴリズムは、(グラディエント)ベクトルが何を指しているかを検索するために使用されます。
訓練中に別の戦略を追加して、検索の代わりに検索スペースを探索することができます。サンプルの場合、Genetic Algorithm
またはSimulated Annealing
アルゴリズム。これらのアプローチは、可能性の探索を提供し、全体的な最小値を見つけることができます。伝播アルゴリズムの200回の反復ごとに10回のイテレーションを実装し、ハイブリッド戦略を作成できます。サンプルでは(それはちょうど擬似コード):
int epochs = 0;
do
{
train();
if (epochs % 200 == 0)
traingExplorativeApproach();
epochs++;
} while (epochs < 10000);
は私がclassification
とregressions
問題にMulti-Layer Perceptrons
とElman recurrent neural network
を使用して、このような戦略を開発してきましたし、両方のケースではハイブリッド戦略は、単一の伝播の訓練をより良い結果を提供してきました。