Я знаю, что случайный градиентный спуск имеет случайное поведение, но я не знаю почему.
Есть ли объяснение этому?
Я знаю, что случайный градиентный спуск имеет случайное поведение, но я не знаю почему.
Есть ли объяснение этому?
Ответы:
Алгоритм стохастического градиента (SG) ведет себя как алгоритм имитации отжига (SA), где скорость обучения SG связана с температурой SA. Случайность или шум, вносимые SG, позволяют вырваться из локальных минимумов, чтобы достичь лучшего минимума. Конечно, это зависит от того, насколько быстро вы уменьшите скорость обучения. Прочтите раздел 4.2 « Стохастического обучения градиентам в нейронных сетях» (pdf) , где это объясняется более подробно.
При стохастическом градиентном спуске параметры оцениваются для каждого наблюдения, в отличие от всей выборки при регулярном градиентном спуске (периодический градиентный спуск). Это то, что придает ему много случайности. Путь стохастического градиентного спуска блуждает по большему количеству мест и, таким образом, с большей вероятностью «выпрыгнет» из локального минимума и найдет глобальный минимум (Примечание *). Однако стохастический градиентный спуск все еще может застрять в локальном минимуме.
Примечание: обычно поддерживают постоянную скорость обучения, в этом случае стохастический градиентный спуск не сходится; это просто бродит вокруг одной и той же точки. Однако, если скорость обучения уменьшается со временем, скажем, она обратно связана с числом итераций, то стохастический градиентный спуск сходится.
Как уже упоминалось в предыдущих ответах, стохастический градиентный спуск имеет гораздо более шумную поверхность ошибки, так как каждый образец оценивается итеративно. В то время как вы делаете шаг к глобальному минимуму спуска градиента партии в каждую эпоху (проходите через обучающий набор), отдельные шаги вашего градиента спуска стохастического градиента не всегда должны указывать на глобальный минимум в зависимости от оцениваемой выборки.
Чтобы визуализировать это с помощью двумерного примера, вот несколько рисунков и рисунков из класса машинного обучения Эндрю Нга.
Первый градиентный спуск:
Во-вторых, стохастический градиентный спуск:
Красный кружок на нижнем рисунке должен иллюстрировать, что стохастический градиентный спуск будет «обновляться» где-то в области вокруг глобального минимума, если вы используете постоянную скорость обучения.
Итак, вот несколько практических советов, если вы используете стохастический градиентный спуск:
1) перемешивать тренировочный набор перед каждой эпохой (или итерацией в «стандартном» варианте)
2) использовать адаптивную скорость обучения, чтобы «отжечь» ближе к глобальному минимуму
for
перебираю перетасованный набор