Плутанина щодо правила Армійо


13

У мене ця плутанина щодо правила Armijo використовується при пошуку рядків. Я читав пошук пошуку в рядку відстеження, але не зрозумів, про що йдеться в цьому правилі Армійо. Хтось може розробити, що таке правило Армійо? Вікіпедія, схоже, не пояснює. Спасибі


Що робити, якщо в рівнянні змінна x не вектор, а матриця? Як слід оновити правило Armijo?
Френк Пук

нічого не змінюється. ви повинні просто переробити матрицю у векторний (стовпець) x k . Xkxk
GoHokies

Ось де я застряг. Коли стає матрицею, значення зліва ( f ( x k + α p k ) ) все ще є скалярним. Але значення в правій частині немає - натомість це матриця ( f ( x k ) - скаляр, а β α f ( x k ) T p k - матриця.)xkf(xk+αpk)f(xk)βαf(xk)Tpk
Френк Пук,

вам потрібно буде працювати з вектором, а не з матрицею. тож ви переформатуєте свою матрицю контрольних змінних (я позначила це X k ) у вектор x k з N 2 елементами. Напрямок пошуку та градієнт також будуть векторами з N 2 елементами. таким чином і РЗС, і ЛГС умови Армійо є скалярами і їх можна порівняти. N×NXkxkN2N2
GoHokies

Відповіді:


19

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

Стан Армійо, по суті, говорить про те, що «хороша» довжина кроку така, що ви маєте «достатнє зменшення» у новій точці. Умова математично висловлюється як f ( x k + α p k ) f ( x k ) + β α f ( x k ) T p k, де p k - напрямок спуску при x k і β ( 0 , 1 ) . f

f(xk+αpk)f(xk)+βαf(xk)Tpk
pkxkβ(0,1)

Інтуїція, що стоїть за цим, полягає в тому, що значення функції в новій точці повинно знаходитися під зменшеною "дотичною лінією" на x k у напрямку p k . Дивіться книгу Nocedal & Wright "Числова оптимізація". У главі 3 є відмінний графічний опис достатнього зменшення стану армійо.f(xk+αpk)xkpk


1
βα

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

1
Пол: ваше пояснення неповне. Ця нерівність сама по собі не гарантує «достатнього» зменшення. Насправді ви можете мати альфа = 0 і все ще задовольняє написану нерівність. Важливою особливістю правила Armijo є обмеження розміру кроку від нуля, що робиться за допомогою іншої нерівності: f (gamma * x_new) -f (x_old)> beta * (gamma * x_new-x_old) ^ T * grad (f (x_old))

f(x)=x2xk=1pk=2αf(xk+αpk)α=1/2β>1/2f(xk+1/2pk)=0>12β=f(xk)+βαf(xk)pkβ

β>1/2β=104β

0

Через п’ять років це питання все ще актуальне.

Тут (стор. 16 і 17) ви можете знайти чудове пояснення, включаючи Алгоритм.

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