Momentum используется для уменьшения колебаний веса в последовательных итерациях:
Е(ш)шη
где - функция ошибки, - вектор весов, - скорость обучения.
Снижение веса штрафует изменения веса:
Вопрос в том, имеет ли смысл комбинировать оба трюка во время обратного распространения и какой эффект это даст?
neural-networks
optimization
regularization
gradient-descent
Олег Широких
источник
источник
Ответы:
Да, очень часто используются оба трюка. Они решают разные проблемы и могут хорошо работать вместе.
Один из способов думать об этом состоит в том, что снижение веса изменяет оптимизируемую функцию , а импульс изменяет путь, по которому вы выбираете оптимальное .
Снижение веса, сужая ваши коэффициенты к нулю, гарантирует, что вы найдете локальный оптимум с параметрами небольшой величины. Это обычно имеет решающее значение для избежания переоснащения (хотя другие виды ограничений на веса также могут работать). Дополнительным преимуществом является то, что она также может упростить оптимизацию модели, сделав целевую функцию более выпуклой.
Как только у вас есть целевая функция, вы должны решить, как двигаться по ней. Крутой спуск по градиенту - самый простой подход, но вы правы, что колебания могут быть большой проблемой. Добавление импульса помогает решить эту проблему. Если вы работаете с пакетными обновлениями (что обычно плохо для нейронных сетей), то шаги типа Ньютона - это еще один вариант. Новые "горячие" подходы основаны на ускоренном градиенте Нестерова и так называемой оптимизации "без Гессиана".
Но независимо от того, какое из этих правил обновления вы используете (импульс, ньютон и т. Д.), Вы все равно работаете с той же целевой функцией, которая определяется вашей функцией ошибки (например, квадратичная ошибка) и другими ограничениями (например, затухание веса) , Главный вопрос при выборе того, какой из них использовать, заключается в том, как быстро вы доберетесь до хорошего набора весов.
источник