Чому метод Ньютона не широко застосовується в машинному навчанні?


132

Це те, що мене клопоче якийсь час, і я не зміг знайти задовільних відповідей в Інтернеті, тож ось:

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


24
Для нейронних мереж розділ deepplearningbook.org "8.6. Орієнтовні методи другого порядку" дає хороший огляд. Підводячи підсумок "Поза викликами, що створюються певними особливостями цільової функції, наприклад, сідловими точками, застосування методу Ньютона для тренування великих нейронних мереж обмежується значним обчислювальним навантаженням, яке вона накладає". Існують альтернативи, які намагаються отримати деякі переваги методу Ньютона при одночасному кроці обчислювальних перешкод, але у них є свої проблеми.
Franck Dernoncourt

1
дивіться відповідне запитання та коментарі, stats.stackexchange.com/questions/232305/…
Хайтао

1
Зауважте, що інші коментарі мають більш широку застосованість до машинного навчання, крім простого «глибокого навчання». Однак, хоча всі проблеми, пов'язані з МЛ, можуть бути "великими даними", не всі проблеми МЛ обов'язково "великі особливості" (тобто багато параметрів для настройки), хоча глибоке навчання незмінно є.
GeoMatt22

1
Варто зазначити, що в машинному навчанні поза глибоким навчанням L-BFGS (що, грубо кажучи, наближає метод Ньютона) є досить поширеним алгоритмом оптимізації.
Дугал

2
Метод Ньютона передбачає опуклість, сучасні проблеми МЛ (нейтральні мережі), швидше за все, не існують поблизу опуклості, хоча, правда, це місце відкритих досліджень. Отже, метод Ньютона, напевно, такий же поганий оцінювач, як і лінійний в будь-якому місці, але поблизу точки обчислення. Ви, ймовірно, отримаєте дуже мало для квадратичного збільшення обчислень. Незважаючи на це, на нещодавній конференції в Берклі ведучий продовжував демонструвати прогрес у використанні методів 2-го порядку, тому він жодним чином не загинув.
Девід Паркс

Відповіді:


95

Спуск градієнта максимізує функцію, використовуючи знання про її похідну. Метод Ньютона, алгоритм знаходження кореня, максимізує функцію, використовуючи знання своєї другої похідної. Це може бути швидше, коли друга похідна відома і легко обчислиться (алгоритм Ньютона-Рафсона використовується в логістичній регресії). Однак аналітичний вираз для другої похідної часто складний або нерозв'язний, вимагає багато обчислень. Числові методи обчислення другої похідної також вимагають багато обчислень - якщо для обчислення першої похідної потрібно значень, для другої похідної потрібно .N 2NN2


5
Варто зазначити, що (речі, засновані на) методі Гаусса-Ньютона , ймовірно, є більш поширеними. Це спеціалізація Ньютона на нелінійних найменших квадратах.
GeoMatt22

4
Я б не назвав Гаусса-Ньютона спеціалізацією Ньютона на нелінійних найменших квадратах. Я б назвав це згорбленим наближенням Ньютона для нелінійних найменших квадратів, в яких використовується більш неточне наближення Гессі, чим більше залишків у прилаштованих рівняннях, і відповідно, чим далі аргумент від оптимальності.
Марк Л. Стоун

1
@ MarkL.Stone Справедливий момент, я намагався не вдаватися до технічних питань :) Це правда, що методи стилю Гаусса-Ньютона намагаються "підробити" 2-е замовлення з лише інформацією 1-го замовлення. Особисто я ніколи не використовував методи Ньютона для оптимізації, просто методи Гаусса-Ньютона (або LM, або ~ подібні UKF) або DFO-SQP (наприклад, BOBYQA ). "Оптимальність" - це складне питання, яке я б сказав ... для проблеми ML, порівняно з інженерною проблемою оптимізації дизайну, надійність / інформативність "місцевого гессея" може бути сумнівною. Можливо, немісцевий DFO-SQP - це "стохастичний Ньютон"? (наприклад, "онлайн")
GeoMatt22

1
По-друге, підходи до DFO-SQP мають тенденцію бути нелокальними в просторі параметрів , а не партіями даних. UKF може бути ближче до смаку до «стохастическому Ньютон» , як це онлайн ж / обмеженому обсяг пам'яті ... але ефективно передбачає позитивно певний Гесс (тобто Gaussian прибл.).
GeoMatt22

1
Насправді це вводить в оману, оскільки існують методи другого порядку, такі як CG, для яких не потрібні обчислення гессіана. k ітерації CG коштуватимуть лише kN. Це правильно, що CG теоретично відповідає Newton тільки при k = N, але насправді вам не потрібно стільки ітерацій.
користувач25322

40

Більше людей повинні використовувати метод Ньютона в машинному навчанні *. Я говорю це як хтось із досвідом чисельної оптимізації, який заплутався в машинному навчанні протягом останніх двох років.

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

  • Використання дослідницької лінії з умовами Вулфа або використання або довіра регіонів запобігає зближенню до сідлових точок. Правильна реалізація спуску градієнта також повинна робити це. У статті, на яку посилається у відповіді Cam.Davidson.Pilon, вказується на проблеми з "методом Ньютона" за наявності сідлових точок, але виправлення, яке вони відстоюють, є також методом Ньютона.

  • Використання методу Ньютона не вимагає побудови цілого (щільного) гессіана; Ви можете застосувати інверсію Гессіана до вектора за допомогою ітеративних методів, які використовують лише матричні векторні продукти (наприклад, методи Крилова, як кон'югатний градієнт). Дивіться, наприклад, метод регіону довіри CG-Steihaug.

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

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

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

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

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


2
Я думаю, що ми з нами насильницькою згодою, а не з усіма іншими.
Марк Л. Стоун

1
Це як порівняння того, чи виробляють Великобританія чи США кращі дослідники-математики, порівнюючи математичні здібності 26-річних наркозалежних людей, які вийшли з середньої школи, а не за допомогою порівняння вищого рівня випускників математики, які виходять із кращих шкіл кожної країни. Папір не підписується, скріплюється печаткою і не доставляється, і я маю на увазі, що ніхто її не змінює і не відкликає зараз. Нездійсненна.
Марк Л. Стоун

3
@ MarkL.Stone Здається, тут відбулася розмова, і її видалили, поки я не був. У будь-якому випадку, я думаю, ти маєш рацію, що ми згодні між собою і ні з ким. Я думаю, цього можна очікувати, виходячи з нашого походження, порівняно з іншими людьми тут. Як ви, напевно, очікуєте, я не думаю, що дуже багато пов'язаного паперу. З іншого боку, я вважаю, що метод Ріманського маніфестатора Ньютона , коли людина стріляє геодезичною траєкторією в напрямку пошуку Ньютона, - це техніка, яка багато обіцяє для дуже важких проблем.
Нік Алгер

2
Як би ви мали справу з великим навчальним набором? Якщо у вас є, наприклад, 1 мільйон навчальних зразків, то для простої оцінки поточної мети оптимізації потрібно перевірити 1 мільйон зразків. І це потрібно робити кілька разів під час пошуку рядків. Тож до того моменту, як ви зробили 1 крок Ньютона, Stohastic Gradient Descent зробив кілька мільйонів оновлень.
nikie

2
Нік та @ MarkL.Stone: Ви говорите про принципово такий підхід ? Це те, що було коротко популярним у глибокому навчанні, особливо для періодичних мереж, але з тих пір не прихильне, я вважаю, тому що це просто не емпірично працювало набагато краще, ніж адаптаційні методи градієнта. Якщо вони просто роблять щось не так, і ви виправляєте все, що це є, і показуєте, що це загалом перевершує поточний стандартний варіант SGD Адама, ви могли б зробити великий вплив: у документі Адама за два роки було 1345 цитат ....
Dougal

33

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

Дійсно, відношення кількості точок сідла до локальних мінімумів експоненціально зростає з розмірністю N.

Хоча динаміка спуску градієнта відштовхується від точки сідла до нижчої помилки, слідуючи напрямкам негативної кривизни, ... метод Ньютона не ставиться до точок сідла належним чином; Як стверджується нижче, сідловинні точки стають привабливими в динаміці Ньютона.


3
Чи можете ви додати трохи пояснень, чому це так? Теоретично метод Ньютона проводить зважений градієнтний спуск з "оптимальними" вагами для кожного з власних векторів.
nbubis

4
Те, що ця стаття говорить про методи Ньютона, які хочуть "сходитися" до точок сідла, справедливо лише для сміттєвих реалізацій методу Ньютона.
Марк Л. Стоун

У статті переосмислюється проблема з точки зору власних значень та власних векторів, і це використовується, щоб показати, що спуск градієнта відходить від точки сідла: він рухається до точки сідла в напрямку негативних е-векторів, але відсувається в напрямку позитивні е-вектори, тому в кінцевому підсумку залишає точку сідла. У Ньютона, з іншого боку, немає такої гарантії.
Елізабет Санторела

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

26

Поєднання двох причин:

  • Метод Ньютона притягується до сідлових точок;
  • Точки сідла поширені в машинному навчанні або фактично в будь-якій багатовимірній оптимізації.

Подивіться на функцію

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

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

xn+1=xn[Hf(xn)]1f(xn)

Давайте отримаємо гессіан :

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

Інвертуйте його:

[Hf]1=[1/2001/2]

градієнт:

f=[2x2y]

Отримайте остаточне рівняння:

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

Отже, ви бачите, як метод Ньютона привів вас до точки сідла при .x=0,y=0

Навпаки, метод градієнтного спуску не призведе до точки сідла. Градієнт дорівнює нулю в точці сідла, але крихітний крок виведе оптимізацію, як ви можете бачити з градієнта вище - його градієнт на y-змінній від'ємний.


1
Завдяки вам я насправді зрозумів, як працює цей метод від А до Я, тому дуже дякую за цей зрозумілий приклад!
greenoldman

Яка тут була б улюблена точка?
Бен

14

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

По-перше: Метод Ньютона займає тривалий час за ітерацією та займає багато пам’яті. Як вказує jwimberley, метод Ньютона вимагає обчислити другу похідну , яка є , де - кількість ознак, а обчислення градієнта, - лише . Але наступним кроком є , що є для обчислення. Тож як обчислити гессена дорого, перевернути його або вирішити найменші квадрати часто ще гірше. (Якщо у вас є рідкісні функції, асимптотика виглядає краще, але інші методи також працюють краще, тому розрідження не робить Ньютона відносно привабливішим.)O ( N 2 ) N g O ( N ) H - 1 g O ( N 3 )HO(N2)NgO(N)H1gO(N3)

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

  • Через витрати на інвертування гессіана, `` квазі-ньютонські '' методи, такі як BFGS, наближають обернений гессіан , дивлячись на те, як змінився градієнт за останні кілька кроків.H1

  • BFGS як і раніше дуже затягує пам'ять у великих розмірних налаштуваннях, оскільки вимагає зберігання всього наближеного зворотного Гессіана. Обмежена пам'ять BFGS (L-BFGS) обчислює напрямок наступного кроку як приблизний зворотний гессійський раз, ніж градієнт, але для цього потрібно лише зберігати останні кілька оновлень градієнта; він явно не зберігає приблизний зворотний гессіан.O(N2)

  • Якщо ви взагалі не хочете мати справу з наближенням другого похідного, градієнтне зниження є привабливим, оскільки воно використовує лише інформацію першого порядку. Спуск градієнта неявно наближає обернену Гессіану як швидкість навчання, кратну до матриці ідентичності. Я особисто рідко використовую спуск градієнта: L-BFGS так само легко реалізується, оскільки він вимагає лише вказати цільову функцію та градієнт; він має кращий зворотний наближення Гессі, ніж градієнтний спуск; і тому, що градієнтний спуск вимагає налаштування рівня навчання.

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


(+1) Варто зазначити, що L-BFGS має той самий порядок складності, що і градієнтне спускання щодо кількості параметрів. Це не стосується BFGS. Тож не лише обмежена частина пам'яті L-BFGS робить її привабливою.
Кліф АВ

12

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

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

У крайньому випадку дуже добре функціонуючої функції, особливо ідеально квадратичної функції, явний переможець є метод Ньютона. Якщо він ідеально квадратичний, метод Ньютона сходиться в одній ітерації.

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

Між спусками градієнта і методом Ньютона існують такі методи, як алгоритм Левенберга – Маркарда (LMA), хоча імена я дещо плутаю. Суть полягає у використанні більш усвідомленого пошуку на основі градієнта, коли речі хаотичні та заплутані, а потім перейти до більш усвідомленого пошуку методом Ньютона, коли речі стають більш лінійними та надійними.


3
Хлопчик, ти повинен використовувати жахливі реалізації Ньютона та Квазі-Ньютона. Якщо ви використовуєте або нефізичну гессіанську позицію, то або використовуйте довірчі регіони або виконайте пошук рядків за напрямками (іми) негативної кривизни. Якщо це так, вони БІЛЬШЕ надійні, ніж найкрутіші спуски (тобто спуск по градієнту з пошуком лінії або регіоном довіри). Коротше кажучи, спуск по градієнту набагато менш надійний, ніж правильно реалізований метод Квазі-Ньютона, який менш надійний, ніж правильно реалізований метод Ньютона. Однак час обчислення та вимоги до пам’яті за ітерацію - це різна річ.
Марк Л. Стоун

4
Я думаю, ви маєте на увазі ідеально квадратичну функцію. Тобто метод Ньютона сходиться в єдиній ітерації з квадратичною цільовою функцією, яка має лінійний градієнт.
Елізабет Санторела

1
@ElizabethSantorella: Так, ти маєш рацію! Я оновив відповідь.
Нат

2
Перевага добре реалізованого і захищеного методу Ньютона перед найкрутішим спуском збільшує більш неприємну, більш погану умову і більш незапуклу функцію. Якщо ви зведете до мінімуму найкращу квадратичну функцію, яка має квадратичний термін , тобто матриця Гессіана = Ідентичність, то найкрутіший спуск є просто чудовим і такий же, як метод Ньютона. 1/2xTx
Марк Л. Стоун

1
Я зробив свою справу. якщо ви хочете думати про найкрутіший спуск, градієнтний спуск чудовий, особливо на погано поведених функціях, це ваша справа. Вибийте себе.
Марк Л. Стоун

7

Для великих розмірів гессіан, як правило, дорого зберігати, а вирішення для напрямку може бути дорогим. Також важче паралелізувати.Hd=g

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

Часто домагаються покращення, а не точного рішення, і в цьому випадку додаткові витрати на методи Ньютона чи Ньютона не виправдані.

Існують різні способи поліпшення вищезазначених, наприклад, методи змінної метрики чи області довіри.

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


0

Існує багато труднощів щодо використання методу Ньютона для SGD, особливо:

  • йому потрібна матриця Гессіана - як її оцінити, наприклад, із шумних градієнтів з достатньою точністю за розумні витрати?

  • Повний Гессіан занадто дорогий - нам, швидше, потрібно якесь його обмеження, наприклад, до підпростору (який підпростір?),

  • H1λ=0

  • Метод Ньютона безпосередньо притягує до точки закриття з нульовим градієнтом ... що зазвичай тут є сідлом. Як їх відбити? Напр., Без осілого Ньютона обертаються негативні напрямки кривизни, але для цього потрібні контрольні знаки власних значень,

  • було б добре зробити це в Інтернеті - замість того, щоб робити багато обчислень за одну точку, спробуйте розділити її на багато невеликих кроків, використовуючи більше місцевої інформації.

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

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