Разница в использовании нормализованного градиента и градиента

15

В общих настройках алгоритма градиентного спуска мы имеем где - текущая точка, - размер шага, а - градиент оценивается в . х п η г г д я е н т х п х пxn+1=xnηgradientxnxnηgradientxnxn

Я видел в каком-то алгоритме, люди используют нормализованный градиент вместо градиента . Я хотел знать, в чем разница в использовании нормализованного градиента и просто градиента .

ученик
источник
1
Могу я задать вопрос? Как я могу рассчитать нормализованный градиент, если я уже получил вектор градиента? Если вектор градиента числовой большой, мне нужно нормализовать градиент. Не могли бы вы привести несколько интуитивных примеров нормализации градиента? Спасибо!

Ответы:

12

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

Исходя из вышесказанного, вы, возможно, поняли, что нормализация градиента - это дополнительная контролирующая способность, которую вы получаете (полезна она или нет, зависит от вашего конкретного приложения). Что я имею в виду под вышесказанным:
1] Если вы хотите, чтобы ваш алгоритм перемещался с фиксированными размерами шагов на каждой итерации, то вы можете использовать нормализованный градиентный спуск с фиксированным . 2] Если вы хотите убедиться, что ваш алгоритм движется с размерами шагов, которые диктуются именно вами, то, опять же, вы можете использовать нормализованный градиентный спуск с вашей конкретной функцией для размера шага, закодированного в .ηη
η
3] Если вы хотите, чтобы величина градиента определяла размер шага, то вы будете использовать ненормализованный градиентный спуск. Есть несколько других вариантов, например, вы можете позволить величине градиента определять размер шага, но вы надеваете на него ограничение и так далее.

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

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

TenaliRaman
источник
Например, вы можете использовать промежуточный подход, когда вы нормализуетесь на основе первого градиента. Это все равно сделает относительный размер градиента важным с точки зрения размера шага.
Дашник
2

f(x)=xTxy(t)=x0/||x0||et, Таким образом, норма градиента уменьшается экспоненциально быстро по мере приближения к критической точке. В таких случаях часто лучше отскочить назад и вперед через несколько минут, чем подходить к нему очень медленно. В целом, как известно, методы первого порядка имеют очень медленную сходимость вокруг критических точек, поэтому вам не следует их использовать, если вы действительно заботитесь о точности. Если вы не можете вычислить гессиан вашей цели аналитически, вы все равно можете приблизить его (BFGS).

fairidox
источник