2017-02-20 5 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

Смежные вопросы