Нейронные сети: импульс изменения веса и снижение веса


42

Momentum используется для уменьшения колебаний веса в последовательных итерациях:α

Е(ш)шη

Δωя(T+1)знак равно-ηЕвеся+αΔωя(T),
где - функция ошибки, - вектор весов, - скорость обучения.Е(вес)весη

Снижение веса штрафует изменения веса:λ

Δωя(T+1)знак равно-ηЕвеся-ληωя

Вопрос в том, имеет ли смысл комбинировать оба трюка во время обратного распространения и какой эффект это даст?

Δωя(T+1)знак равно-ηЕвеся+αΔωя(T)-ληωя

1
Вы хотите сказать ωi (t + 1) = ωi - η E / ∂wi + αΔωi (t) вместо Δωi (t + 1) = ωi - η∂E / ∂wi + αΔωi (t)?
hakunamatata

Ответы:


48

Да, очень часто используются оба трюка. Они решают разные проблемы и могут хорошо работать вместе.

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

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

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

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


«это также может упростить оптимизацию модели, сделав целевую функцию более выпуклой», - не могли бы вы объяснить, как меньшие веса делают это возможным?
Алекс

sяN(Икс)aИкс2a

Хороший ответ, спасибо. А как насчет Adam Optimizer? Это работает лучше, чем сочетание снижения веса и импульса?
А. Пиро

Адам как импульс, но не как снижение веса; это влияет на то, как вы перемещаетесь по целевой функции, но не по самой целевой функции.
Дэвид Дж. Харрис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.