Для опуклих проблем градієнт стохастичного градієнтного спуску (SGD) завжди вказує на глобальне екстремальне значення?


25

З огляду на опуклу функцію витрат, використовуючи SGD для оптимізації, ми будемо мати градієнт (вектор) в певний момент під час процесу оптимізації.

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

Перше - це локальне поняття, друге - глобальне поняття.

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

Напрямок градієнта повинен бути напрямком, в якому функція швидше збільшується / зменшується в цій точці, правда?


6
Ви коли-небудь ходили прямо під гору з гірського хребта, лише опинившись у долині, яка продовжується під гору в іншому напрямку? Завдання полягає в тому, щоб уявити собі таку ситуацію з опуклою топографією: придумайте край ножа там, де хребет найкрутіший у верхній частині.
whuber

4
Ні, тому що це стохастичний градієнтний спуск, а не градієнтний спуск. Вся суть SGD полягає в тому, що ви викидаєте частину інформації про градієнт взамін на підвищення ефективності обчислень - але очевидно, викидаючи частину інформації про градієнт, ви більше не будете мати напрямок вихідного градієнта. Це вже ігнорує питання про те, чи є регулярні точки градієнта в напрямку оптимального спуску, але точка в тому, що навіть якщо це робився звичайний градієнт, немає причин очікувати стохастичного градієнтного спуску для цього.
Chill2Macht

3
@Tyler, чому саме ваше питання стосується стохастичного градієнтного спуску. Ви уявляєте якось щось інше порівняно зі стандартним схилом по градієнту?
Секст Емпірік

2
Градієнт завжди буде вказувати на оптимум в тому сенсі, що кут між градієнтом і вектором до оптимального буде мати кут менше , а ходіння в напрямку градієнта буде нескінченно малою величиною наблизитись до оптимуму. π2
Відновіть Моніку

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

Відповіді:


36

Кажуть, зображення вартує більше тисячі слів. У наступному прикладі (люб’язно надано MS Paint, зручний інструмент для аматорських та професійних статистиків) ви можете побачити опуклу функціональну поверхню та точку, де напрямок самого крутого спуску чітко відрізняється від напрямку до оптимального.

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

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


27
І сьогоднішній зустрічний приклад - це ... авокадо!
JDL

11
Ви бачите, що під час різання авокадо вам слід різати в найкрутішому напрямку спуску, щоб уникнути насіння та можливої ​​травми .
Ян Кукацька

28
  • Методи градієнтного спуску використовують нахил поверхні.
  • Це не обов'язково (або навіть, швидше за все, не) спрямовується безпосередньо на крайню точку.

Інтуїтивний погляд - це уявити шлях спуску, який є вигнутою стежкою. Дивіться, наприклад, приклади нижче.

Як аналогія: Уявіть, що я зав'язав вам очі і поклав вас кудись на гору із завданням повернутися до крайньої (низької) точки. На горі, якщо ви маєте лише місцеву інформацію, то ви не знаєте, в якому напрямку буде дно озера.

Якщо ви можете припустити опуклість

  • Тоді ви знаєте, що існує лише одна крайня точка.
  • Тоді ви знаєте, що ви неодмінно досягнете крайньої точки, поки рухаєтесь вниз.
  • І тоді ви також знаєте, що кут між найбільш стрімким напрямом спуску та оптимальним напрямком завжди максимумπ/2 , про що в коментарях згадувала Секрет Соломонофа.

опуклий

Без опуклості

  • Кут може перевищуватиπ/2 . На зображенні нижче це підкреслюється малюванням стрілки напрямку спуску для певної точки, де остаточне рішення знаходиться за лінією, перпендикулярною до напрямку спуску.

    У опуклої проблеми це неможливо. Ви можете пов'язати це з ізолініями для функції витрат, що має кривизну, все в тому ж напрямку, коли проблема опукла.

невипуклий

У стохастичному градієнтному узвозі

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

єдиний бал

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

стохастичний градієнтний спуск



Наведені вище зображення є для 4 точок даних, згенерованих функцією:

yi=e0.4xie0.8xi+ϵi

x = 0      2      4      6           
y = 0.006  0.249  0.153  0.098

що призводить до:

  • проблема невипуклої оптимізації, коли ми мінімізуємо (нелінійну) функцію витрат

    S(a,b)=i=1(yi(eaxiebxi))2
    S(a,b)=[i=12xieaxi(yieaxiebxi)i=12xiebxi(yieaxiebxi)]

  • проблема опуклої оптимізації (як і будь-які лінійні найменші квадрати), коли ми мінімізуємо

    S(a,b)=i=1(yi(ae0.4xibe0.8xi))2
    S(a,b)=[i=12e0.4xi(yiae0.4xibe0.8xi)i=12e0.8xi(yiae0.4xibe0.8xi)]

  • проблема опуклої оптимізації (але не з єдиним мінімумом), коли ми мінімізуємо для деяких конкретних який має градієнт це має кілька мінімумів (тобто кілька і для яких )i

    S(a,b)=(yi(ae0.4bxibe0.8xi))2
    S(a,b)=[2e0.4xi(yiae0.4xibe0.8xi)2e0.8xi(yiae0.4xibe0.8xi)]
    abS=0


Автор StackExchangeStrike



17

Найбільш крутий спуск може бути неефективним, навіть якщо цільова функція сильно опукла.

Звичайний градієнтний спуск

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

Розглянемо . Це опукло, тому що є квадратичною з позитивними коефіцієнтами. Перевіривши, ми можемо побачити, що він має глобальний мінімум при . Він має градієнт f(x)=x12+25x22x=[0,0]

f(x)=[2x150x2]

З коефіцієнтом навчання та початковою здогадкою ми оновлюємо градієнтα=0.035x(0)=[0.5,0.5],

x(1)=x(0)αf(x(0))

що демонструє цей диво коливальний прогрес до мінімуму.

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

Дійсно, кут утворений між і лише поступово розпадається на 0. Що це означає полягає в тому, що напрямок оновлення іноді невірний - максимум, неправильний майже на 68 градусів, - хоча алгоритм конвергується і працює правильно.θ(x(i),x)(x(i),x(i+1))

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

Кожен крок бурно коливається, оскільки функція набагато крутіша у напрямку ніж у напрямку . Через цей факт ми можемо зробити висновок, що градієнт не завжди або навіть зазвичай вказує на мінімум. Це загальна властивість градієнтного спуску, коли власні значення гессіанської знаходяться на різних масштабах. Прогрес повільний у напрямках, що відповідають власним векторам з найменшими відповідними власними значеннями, і найшвидший у напрямках з найбільшими власними значеннями. Саме ця властивість у поєднанні з вибором швидкості навчання визначає, наскільки швидко прогресує градієнтний спуск.х 1x2x12f(x)

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

Стохастичний градієнтний спуск

SGD володіє тими ж властивостями, за винятком того, що оновлення шумні, це означає, що контурна поверхня виглядає різною від однієї ітерації до іншої, і тому градієнти також відрізняються. Це означає, що кут між напрямком градієнтного кроку та оптимальним також матиме шум - просто уявіть однакові ділянки з деяким тремтінням.

Більше інформації:


Ця відповідь запозичує цей приклад та рисунок із проектування нейронних мереж (2-е видання) Глава 9 Мартіна Т. Хагана, Говарда Б. Демута, Марка Хадсона Біла, Орландо Де Йесуса.


13

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


3

Інші відповіді підкреслюють деякі набридливі проблеми швидкості конвергенції для GD / SGD, але ваш коментар "SGD може врешті-решт зблизитися ..." не завжди є правильним (ігноруючи педантичні зауваження щодо використання слова "можна", оскільки, здається, ви мали на увазі "буде").

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

(x0,y0)=(1,0)
α
f(x,α)=α2αx.

Якщо MSE є нашою функцією витрат, це спрощує функцію опукла функція. Припустимо, ми вибираємо свою швидкість навчання погано, щоб наше правило оновлення було таким:Тепер наша функція витрат має мінімум при , але якщо ми почнемо буквально з будь-якого іншого місця, крім то SGD просто відскакує між циклом між початковою точкою та і ніколи не конвергується .

(f(x0,α)y0)2=α2α,
β
αn+1=αnβ(2αn1)=αn(2αn1)=1αn.
α=12p=12p1p

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

SGD також може наближатись / отримувати цикли будь-якої кінцевої довжини, розходитись до , коливатися у напрямку (вибачте від позначення), і має багато інших патологічних поведінок.± ±

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


1
+1 для цього спостереження. Але це є дещо поганим вибором і також буде поганим у випадку регулярного спуску по градієнту. Це хороший коментар, однак він насправді не стосується питання, вказує, чи найкрутіший шлях спуску до рішення чи ні, він натомість стосується питання занадто великих розмірів кроків, що може призвести до неоднорідного оновлення. β=1
Секст Емпірік

1
Зауважте, що доказ конвергенції SGD передбачає зменшення розміру кроку ...
Ян Кукацька,

@MartijnWeterings Добре спостереження. Я думаю, мій приклад насправді вказує на правильний напрямок. Чи варто оновити його двовимірним прикладом, який ніколи не вказує правильного напрямку та не розходяться?
Ганс Масгрейв

@MartijnWeterings Погоджено, - це поганий вибір. Для будь-якого хоча існує функція патологічних витрат, для якої не вдається. Один із найпростіших з них походить відβ > 0 β f ( x , α ) = β=1β>0βf(x,α)=α2αxβ.
Ганс Масгрейв

@JanKukacka Це звичайна модифікація SGD, яка страждає від подібної вади. Замість того, щоб функція витрат була параболою, ви вибираєте так, що функція витрат - це симетрична опукла функція, яка швидко зростає в обох напрямках від мінімальної для протидії швидкості охолодження . Я бачив докази конвергенції SGD лише з вірогідністю 1 і покладаються на такі погано підібрані функції витрат, що існують з ймовірністю 0 із типовими мірками щодо простору функцій витрат. βfβ
Ганс Масгрейв

2

Можливо, відповіді на це питання потребують швидкого оновлення. Схоже, що SGD дає глобальний мінімум і в непуклому випадку (опуклий - це лише окремий випадок):

SGD переходить до глобального мінімуму в глибокому навчанні за допомогою Star-Convex Path, анонімні автори , стаття під подвійним сліпим оглядом на ICLR 2019

https://openreview.net/pdf?id=BylIciRcYQ

Автори встановлюють конвергенцію SGD до глобального мінімуму при проблемах оптимізації без випуклості, які часто зустрічаються при навчанні нейронної мережі. Аргумент використовує такі дві важливі властивості: 1) втрата тренувань може досягти нульового значення (приблизно); 2) SGD йде по зірково-опуклому шляху. У такому контексті, хоча SGD вже давно розглядається як рандомізований алгоритм, у статті видно, що він конвергується внутрішньо детермінованим чином до глобального мінімуму.

Це потрібно приймати разом із зерном солі. Стаття ще переглядається.

Поняття зірко-опуклої доріжки дає підказку щодо того, куди буде градієнт вказувати на кожній ітерації.

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