Что вызывает внезапное падение ошибок обучения / тестирования при обучении нейронной сети?


18

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

ResNet тестовая ошибка

Это изображение взято из Kaiming He's Github, но подобные графики появляются во многих статьях.


Одна связанная статья: Smith et al. 2018 год: не снижайте
amoeba

Ответы:


7

Они изменили скорость обучения. Обратите внимание, что падение происходит ровно в 30 и 60 эпох, очевидно, кто-то устанавливает его вручную.


В разделе 3.4, это объясняет, что скорость обучения делится на 10, когда ошибка плато
xiawi

2

Подумайте о «ландшафте оптимизации». Например, если у вас была сеть только с двумя весами, вы могли бы построить все комбинации этих двух весов на поверхности, где высота в каждой точке представляет величину ошибки, которую возвращает ваша функция стоимости, если вы используете это (x, y ) координировать как ваши два веса. Вы пытаетесь перейти к самой низкой точке на этой поверхности, чтобы получить самый низкий уровень ошибки.
Иногда проблема заключается в том, что поверхность может стать довольно сумасшедшей, особенно в сетях с миллионами параметров вместо двух. Вы можете застрять в седловых точках, где прогресс замедляется, а затем внезапно перекидывается назад в нисходящий холм.
Вот анимация, чтобы помочь визуализировать это. Как вы можете видеть, более простые алгоритмы градиентного спуска застревают в этих позициях намного легче.
введите описание изображения здесь

Для этого могут быть и другие причины, но об этом вы чаще всего слышите. Вполне возможно, что в сети может быть группа юнитов, получающих насыщенные активации (или в случае relu - юнит, который активируется только очень небольшим количеством тренировочных входов), и когда один юнит выходит из насыщения, он запускает цепную реакцию, которая выводит остальное из насыщения, и веса внезапно получают ускорение градиентного потока? Я не рассматривал ничего подобного, но мне было бы интересно, если у кого-то есть другие причины, чтобы добавить.


1
-1. Это не отвечает на вопрос, или, по крайней мере, не ясно, как это происходит, и почему то, что вы написали, имеет значение. Зачем уменьшать скорость обучения, чтобы выйти из седла?
амеба

Даже не ясно, что анимация в любом случае правильная, так как SGD - по определению - видит каждую поверхность оптимизации с каждой итерацией. На этом графике поверхность оптимизации зафиксирована, поэтому мне непонятно, как можно проиллюстрировать SGD здесь в любом случае. «Точка» SGD ведет себя больше как градиентный спуск с полным циклом, в котором поверхность оптимизации фиксируется на протяжении всего процесса обучения.
Джош
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.