Чому б не використати третю похідну для чисельної оптимізації?


29

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


11
Як тільки ви знайдете оптимум, навіщо шукати далі? Справді, що ви насправді намагаєтесь запитати? Яке ваше статистичне запитання?
whuber

2
У багатьох випадках обмеження розподілу оцінок, які вирішують оптимальні рівняння оцінювання або мінімізують об'єктивні функції, є спільно нормальними, тому їх можна повністю охарактеризувати першим та другим моментами.
АдамО

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

6
Я голосую, щоб закрити це питання поза темою, оскільки справа не в статистиці. Йдеться про чисельну оптимізацію
Аксакал

11
Ви не зробили наукового прориву. Галлей побив тебе приблизно на 3 1/4 століття. Галлей, Е., 1694, "Новий, точний і простий метод пошуку коренів будь-яких рівнянь взагалі, і це без будь-якого попереднього скорочення" Філос. Транс. Рой. Соц. Лондон, 18, 136–145. Треті похідні методи оптимізації існували і вивчалися протягом багатьох років, але не досягли великої популярності. Якщо вони реалізовані добре, їх найбільшою перевагою може бути збільшення надійності порівняно з добре реалізованим методом Ньютона. Це може бути перевагою для найнебезпечніших проблем.
Марк Л. Стоун

Відповіді:


31

Я трактую питання як "Чому метод Ньютона використовує лише першу та другу похідні, а не третю чи вищу похідні?"

Насправді, у багатьох випадках перехід до третьої похідної допомагає; Раніше я це робив зі спеціальними речами. Однак, загалом, перехід до вищих похідних додає обчислювальної складності - ви повинні знайти та обчислити всі ці похідні, а для багатоваріантних задач набагато більше третіх похідних, ніж є перші похідні! - що набагато перевищує заощадження в підрахунку кроків, які ви отримуєте, якщо такі є. Наприклад, якщо у мене є тривимірна проблема, у мене є 3 похідних першого, 6 похідних другого та 10 похідних третього, тому перехід до версії третього порядку більше ніж удвічі перевищує кількість оцінок, які я повинен зробити (з 9 до 19), не кажучи вже про підвищену складність обчислення напрямку / розміру кроку після того, як я зробив ці оцінки, але майже напевно не скоротить кількість кроків, які я повинен зробити вдвічі.

Тепер, у загальному випадку з змінними, колекція часткових похідних буде число , тож для проблеми з п'ятьма змінними загальна кількість третьої , четверта та п'ята часткові похідні дорівнюватимуть 231, що більше ніж у 10 разів збільшується над кількістю першої та другої часткових похідних (20). Вам доведеться мати проблему, яка дуже, дуже близька до полінома п’ятого порядку у змінних, щоб побачити достатньо велике зменшення кількості ітерацій, щоб компенсувати це додаткове обчислювальне навантаження.n t hknth(k+n1k1)


3
Чи можете ви пояснити, як ви використовуєте вищі похідні?
whuber

5
@whuber Те, про що йдеться в ОП, я маю визнати вкрай неясно, це метод Ньютона в оптимізації. Питання справді таке: "Чому метод Ньютона використовує лише першу та другу похідні, а не третю чи вищу похідні?". Це поза темою, а також незрозуміло, що він / вона просить, але я подумав, що я просто дам відповідь, а не проголосую, щоб закрити з тієї чи іншої причини.
jbowman

4
+1 Я думаю, що це хороша відповідь, але це можна було б покращити, показавши, що ви маєте на основі розширення Тейлора.
Меттью Друрі

8
Як один з моїх професорів - дуже успішний консультант - сказав нам один раз: "Щоразу, коли ти думаєш, що придумав, як створити кращу мишоловку, спробуй з'ясувати, чому 1000 людей, які придумали цю саме таку ідею до того, як ви не випустили його на ринок ". Вся суть використання Ньютона полягає у збереженні обчислень - інакше ми просто зробимо вичерпний пошук. Запевняю вас, додавання третьої похідної до тривимірної задачі дуже і дуже рідко буде платити за подвоєння обчислень на кожному кроці зі значно зменшеними ітераціями, якщо функція не буде ~ кубічною.
jbowman

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

22

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

До конвергенції є дві частини: вартість ітерації та кількість ітерацій

Тут майже кожна відповідь зосереджується на вартості ітерації та ігноруванні кількості ітерацій . Але обоє мають значення. Метод, який повторюється за 1 наносекунд, але для зближення повторень не принесе вам користі. І метод, який підірветься, теж не допоможе, незалежно від того, наскільки дешева його ітерація.1020

Давайте розберемося, що відбувається.

Отже: чому б не використовувати похідні другого порядку?

Частково тому, що (і це також стосується другого порядку, але докладніше про це трохи):

Методи вищого порядку, як правило, швидше сходяться лише біля оптимального .

З іншого боку, вони легше вибухають, коли знаходяться далі від оптимуму!

(Звичайно, це не завжди відповідає дійсності; наприклад, квадратика сходиться за 1 крок методом Ньютона. Але для довільних функцій у реальному світі, які не мають приємних властивостей, це, як правило, вірно.)

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

То чому б зупинятися на другому порядку, коли ти біля кореня?

Тому що "квадратична" конвергенційна поведінка насправді "досить хороша"!

Щоб зрозуміти чому, спочатку ви повинні зрозуміти, що означає «квадратична конвергенція» .

Математично квадратична конвергенція означає, що, якщо - ваша помилка при ітерації , то в кінцевому підсумку справедливо для деякої постійної :ϵkkc

|ϵk+1|c |ϵk|2

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

Чому? Це легко зрозуміти на прикладі: для і вас є , тощо, що смішно швидко . (Це суперекспоненціально !)c=1|ϵ1|=0.1|ϵ2|0.01|ϵ3|0.0001

Чому б не зупинитися на 1-му порядку, а не на другому?

Насправді люди часто роблять це, коли похідні другого порядку стають занадто дорогими. Але лінійна конвергенція може бути дуже повільною. наприклад, якщо у вас є тоді вам знадобиться, можливо, 10 000 000 ітерацій з лінійною конвергенцією, щоб отримати , але лише 23 ітерації з квадратичною конвергенцією. Тож ви можете зрозуміти, чому існує різка різниця між лінійною та квадратичною конвергенцією. Це не стосується, наприклад, конвергенції другого та третього порядку (див. Наступний параграф).ϵk=0.9999999|ϵ|<0.5

У цей момент, якщо ви знаєте будь-яку інформатику, ви розумієте, що при зближенні 2-го порядку проблема вже вирішена . Якщо ви не бачите , чому, ось чому: немає нічого практичніше отримати від потроїти кількість цифр кожної ітерації замість подвоєння його, що він збирається купити вас? Зрештою, в комп'ютері навіть doubleточне число має 52 біти точності, що становить приблизно 16 десяткових цифр. Можливо, це зменшить кількість кроків, які вам потрібні, з 16 до 3 ... що звучить чудово, поки ви не зрозумієте, що це доводиться ціною необхідності обчислювати треті похідні при кожній ітерації, саме тут прокляття розмірностісильно тебе вдаряє. За мірну проблему ви щойно заплатили коефіцієнт щоб отримати коефіцієнт , який є німим. А в реальному світі проблеми мають принаймні сотні вимірів (а то й тисяч, а то й мільйонів), а не лише ! Таким чином, ви отримуєте коефіцієнт, можливо, 20, виплачуючи коефіцієнт, наприклад, 20 000 ... навряд чи мудрий компроміс.6656

Але ще раз: пам’ятайте прокляття розмірності - це половина історії .

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

Висновок

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


Чудова відповідь, але я думаю, що теорема Авеля-Руффіні - це червона оселедець. Перш за все, ми говоримо про багатоваріантні проблеми, тому обчислення нулів одновимірних многочленів - це максимум легка підпроблема з обмеженим інтересом. І, що ще важливіше, не має значення, чи існує закрита формула рішення чи ні: на практиці, наскільки я знаю, люди не використовують закриті формули навіть для поліномів ступеня 4. Вони просто занадто довгі, складні і нестабільні. Нулі многочленів обчислюються чисельно на практиці (використовуючи QR на супутній матриці).
Федеріко Полоні

@FedericoPoloni: Так, ті ж думки прийшли мені в голову, коли я вирішив поставити його. Спочатку у мене не було цього ... Я думав, що, можливо, я повинен це вкласти як просто ще один приклад того, чому можуть бути вищі ступені несподівані проблеми. Але я здогадуюсь, я вийму його ще раз, якщо це не допоможе, дякую за коментар.
Мехрдад

@FedericoPoloni: PS, поки ми розглядаємо тему чисельних обчислень, ви можете виявити цікаві функції Sturm (якщо ви про них уже не чули).
Мехрдад

7

Навіть обчислення гессіанців - це зовсім небагато роботи:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

Тепер подивіться, як виглядає третя похідна: Це тривимірна матриця. Ось як виглядають його елементи:

H/x=[Hx1Hx2Hxn]
(H/x)ijk=3fxixjxk

Похідною шостою буде шестивимірна матриця:

6fxixjxkxlxmxn

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

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


4

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

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

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


2

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


3
Ні, квадратика не обов'язково опукла або увігнута (подумайте про ). x2y2
Дірк

@Dirk дорівнює чому? x2y2
Ovi

1
Це квадратична функція, але ні опукла, ні увігнута.
Дірк

@Dirk так, ти маєш рацію, я мав би додати позитивний напіввизначений застереження. Я додам це до своєї відповіді.
Лукас Робертс

1

Дозвольте мені бути єдиним, хто захищає методи 3-го порядку для конвергенції SGD, але, безумовно, не у всьому просторі, для чого знадобляться коефіцієнти вже маючи модель 2-го порядку в цьому напрямку.dim3/6

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

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

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