Как мы анализируем график потерь против эпох? - PullRequest
0 голосов
/ 03 сентября 2018

Я тренирую языковую модель, и каждый раз, когда я тренируюсь, составляется график потерь против эпох. Я прилагаю два образца из него.

image 1

image 2

Очевидно, что второй показывает лучшую производительность. Но из этих графиков, когда мы принимаем решение прекратить тренировку (ранняя остановка)?

Можем ли мы понять переоснащение и занижение по этим графикам или мне нужно построить дополнительные кривые обучения?

Какие дополнительные выводы можно сделать из этих графиков?

1 Ответ

0 голосов
/ 03 сентября 2018

Первый вывод, очевидно, заключается в том, что первая модель работает хуже, чем вторая, и это, как правило, верно, , если вы используете те же данные для проверки . В случае, когда вы тренируете модель с разными расщеплениями, это не обязательно так.

Кроме того, чтобы ответить на ваш вопрос относительно переоснащения / недостаточного оснащения: Типичный график переоснащения выглядит следующим образом:
Learning curve

Итак, в вашем случае вы просто достигаете сходимости , но на самом деле не перегоняет ! (Это отличная новость!) С другой стороны, вы можете спросить себя, сможете ли вы достичь еще лучших результатов. Я предполагаю, что вы снижаете скорость обучения, что позволяет вам справляться с какой-либо формой плато. Если это так, попробуйте сначала снизить скорость обучения, и посмотрите, сможете ли вы еще больше сократить свои потери.
Более того, если вы все еще видите очень длинное плато, вы можете также остановиться раньше, так как вы фактически не получаете никаких улучшений. В зависимости от вашей платформы, есть реализации этого (например, Keras имеет обратные вызовы для ранней остановки , которая обычно связана с ошибкой проверки / тестирования). Если ваша ошибка проверки увеличивается, подобно изображению, вам следует рассмотреть возможность использования самой низкой ошибки проверки в качестве точки для ранней остановки. Один из способов, которым я люблю это делать, - периодически проверять модель, но только в случае улучшения ошибки проверки.
Еще один вывод, который вы можете сделать, - это скорость обучения в целом: если она слишком большая, ваш график, скорее всего, будет очень «скачкообразным / неровным», в то время как очень низкая скорость обучения приведет к незначительному снижению ошибки и не так сильно по экспоненте. распадающееся поведение.
Вы можете увидеть слабую форму этого, сравнивая крутизну спада в первые несколько эпох в двух ваших примерах, где первая (с более низкой скоростью обучения) сходится дольше.

Наконец, если ваши ошибки в обучении и тестировании очень далеки (как в первом случае), вы можете спросить себя, действительно ли вы точно описываете или моделируете проблему; в некоторых случаях вы можете понять, что существует некоторая проблема в распределении (данных), которую вы могли упустить из виду. Хотя второй график намного лучше, но я сомневаюсь, что это так и есть в вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...