FerroPanda
@FerroPanda

Обучение нейронной сети — как интерпретировать результат?

Тренирую сеть. Есть такие вот результаты. Понятно, что всё плохо, но не понятно как, на сколько и почему.
Пробовал разное количество слоёв, нейронов в слое. Даже дропаут пробовал, хотя переобучением тут не пахнет. Цифры от указанных ниже не отличаются (плюс минус один процент).

Epoch 1/100
200000/200000 [=======] - 7s 37us/step - loss: 1.0738 - acc: 0.4021 - val_loss: 1.0683 - val_acc: 0.4061
Epoch 51/100
200000/200000 [=======] - 7s 33us/step - loss: 1.0289 - acc: 0.4711 - val_loss: 1.0816 - val_acc: 0.3950
Epoch 100/100
200000/200000 [=======] - 6s 32us/step - loss: 0.9823 - acc: 0.5193 - val_loss: 1.1003 - val_acc: 0.3998

На учебных примерах обычно точность на первых эпохах взлетает до 70-90%, а у меня получается сразу 40%, а дальше телепается как слива в проруби. Чего сети не хватает? Какие возможны варианты?

И бонусный вопрос. Часто говорят, что сеть нужно долго обучать, иногда неделю и больше. С чем это как правило связано - с объёмом выборки или с количеством эпох?
Есть какое-то типовое количество эпох, после которых понятно, что не взлетит? Например, если рандомом подбирать гиперпараметры сети, то после скольки эпох можно уже делать выводы?
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
@ivodopyanov
NLP, python, numpy, tensorflow
Раз есть оверфиттинг - попробуйте дропаут на побольше выкрутить. Между стандартными Dense-слоями 0.5 - традиционное значение. Видел статьи, где дропаут делали аж 0.8-0.9 как раз потому что данных мало было.
Еще попробуйте в качестве оптимизатора Adam.

Сети, которые обучают неделями, - это всякие монструозные конструкции, где штук 20 слоев по 500 нейронов в каждом. И десятки миллионов примеров для обучения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы