В алгоритмі спуску градієнта алгоритм ведеться шляхом пошуку напрямку, уздовж якого можна знайти оптимальне рішення. Оптимальним напрямком виявляється градієнт. Однак, оскільки нас цікавить лише напрямок, а не обов'язково, як далеко ми рухаємось по цьому напрямку, нас зазвичай не цікавить величина градієнта. Тим самим нормалізований градієнт досить хороший для наших цілей, і ми дозволяємоηдиктують, як далеко ми хочемо рухатись у обчисленому напрямку. Однак якщо ви використовуєте ненормалізований градієнтний спуск, то в будь-якій точці відстань, яку ви рухаєте в оптимальному напрямку, диктується величиною градієнта (по суті, диктується поверхнею цільової функції, тобто точка на крутій поверхні матиме велика величина, тоді як точка на досить рівній поверхні матиме низьку величину).
З усього вищесказаного ви могли зрозуміти, що нормалізація градієнта - це додаткова контрольна сила, яку ви отримуєте (корисна вона чи ні, це щось, що відповідає вашій конкретній програмі). Що я маю на увазі під вищевикладеним, це:
1] Якщо ви хочете переконатися, що ваш алгоритм рухається у фіксованому розмірі кроків у кожній ітерації, то, можливо, ви хочете використовувати нормалізоване спуск градієнта з фіксованим .
2] Якщо ви хочете переконатися, що ваш алгоритм рухається в розмірах кроків, які точно продиктовані вами, то знову ж таки, ви можете скористатися нормалізованим градієнтом, що відповідає вашій конкретній функції для розміру кроку, закодованого в .η
η
3] Якщо ви хочете, щоб величина градієнта диктувала розмір кроку, тоді ви будете використовувати ненормалізований спуск градієнта. Є кілька інших варіантів, як ви можете дозволити величині градієнта визначати розмір кроку, але ви надягаєте на нього шапочку тощо.
Тепер розмір кроків очевидно впливає на швидкість конвергенції та стабільність. Який із вищезазначених розмірів кроків найкраще працює, залежить лише від вашої програми (тобто об'єктивної функції). У певних випадках можна проаналізувати залежність між швидкістю конвергенції, стабільністю та розміром кроку. Тоді ці відносини можуть натякати, чи хочете ви ходити з нормалізованим або ненормалізованим градієнтом.
Підводячи підсумок, немає різниці між нормалізованим і ненормалізованим градієнтним спуском (наскільки іде теорія за алгоритмом). Однак це має практичний вплив на швидкість конвергенції та стабільність. Вибір одного над іншим ґрунтується виключно на застосуванні / цілі.