2017-02-20 6 views
2


モデルのトレーニングはいつ中止する必要がありますか?私は深いCNNを実装し、このログを持っていました

Iter 2300, Minibatch Loss 2535.55078125, Batch Accuracy 0.800000011920929 
Test accuracy = 0.7236111164093018 
Iter 2400, Minibatch Loss 2402.5517578125, Batch Accuracy 0.699999988079071 
Test accuracy = 0.8097222182485794 
Iter 2500, Minibatch Loss 1642.6527099609375, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.8311110999849107 
Iter 2600, Minibatch Loss 4008.334716796875, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.8463888929949868 
Iter 2700, Minibatch Loss 2555.335205078125, Batch Accuracy 0.800000011920929 
Test accuracy = 0.8077777789698706 
Iter 2800, Minibatch Loss 1188.008056640625, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.8074999981456332 
Iter 2900, Minibatch Loss 426.5060119628906, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.7513888908757105 
Iter 3000, Minibatch Loss 5560.1845703125, Batch Accuracy 0.699999988079071 
Test accuracy = 0.8733333349227907 
Iter 3100, Minibatch Loss 3904.02490234375, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.817222214407391 
Iter 3110, Minibatch Loss 9638.71875, Batch Accuracy 0.8333333134651184 
Test accuracy = 0.8238888879617057 

私の質問は:トレーニングは何らかの理由で終了されるか、試験精度が最高であるとき、私は停止することができたとき、私は待つべき?そこには0.8733333349227907です。

答えて

4

またはのテスト精度がに低下し始めると、テストの精度が向上しなくなることがあります。これはと呼ばれ、早期停止はであり、実装は簡単です。 XGBoost,Kerasなど多くのライブラリには、オプションとしてこの機能があります。https://keras.io/callbacks/#earlystopping

中間値をプロットすると、トレーニングプロセスの重要な洞察が得られます。 http://cs231n.github.io/neural-networks-3/#accuracyをご覧ください。

enter image description here

関連する問題