Чи завжди спуск градієнта до оптимального?


21

Мені цікаво, чи є сценарій, коли спуск градієнта не зближується до мінімуму.

Я усвідомлюю, що спуск градієнта не завжди гарантується для сходу до глобального оптимуму. Я також усвідомлюю, що це може відрізнятися від оптимального, якщо, скажімо, розмір кроку занадто великий. Однак мені здається, що якщо воно буде відходити від якогось оптимального, то воно врешті перейде до іншого оптимуму.

Отже, схил градієнта гарантував би зближення до локального або глобального оптимуму. Це так? Якщо ні, чи можете ви надати приблизний контрприклад?


1
Сподіваюся, що це посилання допоможе в майбутньому .. datascience.stackexchange.com/a/28417/35644
Aditya

1
Дивіться цю відповідь на 3 конкретні та прості приклади, включаючи докази, зображення та код, який створює анімацію градієнтного спуску
Орен Мільман

Відповіді:


28

Спуск градієнта - це алгоритм, який розроблений для пошуку оптимальних точок, але ці оптимальні точки не обов'язково є глобальними. І так, якщо трапляється, що він розходиться з місцевим розташуванням, він може сходити до іншої оптимальної точки, але його ймовірність не надто велика. Причина полягає в тому, що розмір кроку може бути занадто великим, що підштовхує його до зниження однієї оптимальної точки, а ймовірність його коливання набагато більше, ніж конвергенція.

Щодо градієнтного спуску є дві основні перспективи, епоха машинного навчання та епоха глибокого навчання. Під час епохи машинного навчання вважалося, що градієнтний спуск знайде локальний / глобальний оптимум, але в епоху глибокого навчання, де розмірність вхідних особливостей занадто велика, на практиці показано, що ймовірність того, що всі функції будуть розташовані там, має оптимальне значення в одній точці не надто багато, і, швидше за все, бачити оптимальні місця у функціях витрат, більшість часу спостерігаються точки сідла. Це одна з причин того, що навчання з великою кількістю даних та навчальних епох викликає, що моделі глибокого навчання перевершують інші алгоритми. Тож якщо ви тренуєте свою модель, вона знайде об’їзд або знайде шлях для спуску вниз і не застрягне в місцях сідла, але ви повинні мати відповідні розміри кроків.

Для більшої інтуїції пропоную вам звернутися тут і тут .


3
Саме так. Ці проблеми завжди виникають в теорії, але рідко в реальній практиці. З такою кількістю вимірів це не проблема. Ви матимете локальні мінімуми в одній змінній, а не в іншій. Крім того, міні-серійний або стохастичний градієнтний спуск гарантує також уникнення будь-яких місцевих мінімумів.
Рікардо Крус

3
@RicardoCruz так, я згоден, сер
ЗМІ

12

Окрім згаданих вами моментів (конвергенція до неглобальних мінімумів та великі розміри кроків, можливо, що призводять до неконвергентних алгоритмів), "діапазони перегину" можуть бути також проблемою.

Розглянемо наступний тип функції "крісло-перекладач".

введіть тут опис зображення

Очевидно, це можна побудувати так, що в середині є діапазон, де градієнт - вектор 0. У цьому діапазоні алгоритм можна дотримуватися нескінченно. Точки перегину, як правило, не вважаються місцевими крайнощами.


4

Кон'югат градієнта не гарантується для досягнення глобального оптимуму або локального оптимуму! Є точки, де градієнт дуже малий, що не є оптими (точки перегину, точки сідла). Спуск градієнта може сходитися до точки для функції .x=0f(x)=x3


3

[Примітка 5 квітня 2019 р. На arXiv оновлено нову версію статті з багатьма новими результатами. Ми також вводимо зворотні версії Momentum та NAG, і доводимо збіжність за тими самими припущеннями, що і для Backtracking Gradient Descent.

Вихідні коди доступні на GitHub за посиланням: https://github.com/hank-nguyen/MBT-optimizer

Ми вдосконалили алгоритми застосування до DNN та отримали кращу продуктивність, ніж найсучасніші алгоритми, такі як MMT, NAG, Adam, Adamax, Adagrad, ...

Найбільш особливою особливістю наших алгоритмів є те, що вони є автоматичними, вам не потрібно робити ручну точну настройку темпів навчання як звичайну практику. Наша автоматична тонка настройка відрізняється за своєю суттю від Адама, Адамакса, Адаграда, ... тощо. Більше деталей - у статті.

]

На основі дуже останніх результатів: У моїй спільній роботі в цьому документі https://arxiv.org/abs/1808.05160

Ми показали, що зворотний градієнт спуску при застосуванні до довільної функції С ^ 1 , що має лише чисельну кількість критичних точок, завжди буде або сходитися до критичної точки, або розходиться до нескінченності. Ця умова виконується для загальної функції, наприклад для всіх функцій Морзе. Ми також показали, що в деякому сенсі граничною точкою дуже рідко є точка сідла. Отже, якщо всі ваші критичні точки є невиродженими, то в певному сенсі граничні бали - це всі мінімуми. [Будь ласка, дивіться також посилання в цитованому документі для відомих результатів у випадку стандартного градієнтного спуску.]f

Виходячи з вищесказаного, ми запропонували новий метод глибокого навчання, який знаходиться нарівні з сучасними сучасними методами і не потребує ручної точної настройки показників навчання. (Коротше кажучи , ідея полягає в тому, що ви виконуєте зворотний градієнт спуску певний проміжок часу, поки не побачите, що темпи навчання, які змінюються з кожною ітерацією, стабілізуються. Ми очікуємо цієї стабілізації, зокрема в критичну точку, яка є C ^ 2 і не вироджується через результат зближення, про який я згадував вище. У цей момент ви переходите на стандартний метод градієнтного спуску. Будь ласка, дивіться цитований документ для більш детальної інформації. Цей метод також може бути застосований до інших оптимальних алгоритмів .)

PS Що стосується вашого первинного запитання про стандартний метод спуску градієнта, наскільки мені відомо лише в тому випадку, коли похідна карта є глобально Ліпшицем і швидкість навчання досить мала, що стандартний метод спуску градієнта доводиться збігатися. [Якщо ці умови не виконуються, є прості зустрічні приклади, які показують, що результат конвергенції неможливий, див. Цитований документ для деяких.] У роботі, цитованій вище, ми стверджували, що в перспективі метод спуску градієнта зворотного відстеження стане стандартний метод спуску градієнта, який дає пояснення, чому стандартний метод спуску градієнта зазвичай добре працює на практиці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.