Путаница в правлении Армихо

13

У меня путаница с правилом Армихо, который используется при поиске строк. Я перечитывал поиск по линии отслеживания, но не понял, о чем это правило Армихо. Кто-нибудь может уточнить, что такое правило Армихо? Википедия не очень хорошо объясняет. Благодарность

user34790
источник
Что если в уравнении переменная x является не вектором, а матрицей? Как обновлять правило Армихо?
Франк Пук
ничего не меняется. Вы должны просто преобразовать свою матрицу в вектор (столбец) 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 элементами. таким образом, как RHS, так и LHS условия Armijo являются скалярами и их можно сравнивать. 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 приведено отличное графическое описание условия достаточного уменьшения armijo.f(xk+αpk)xkpk

Пол
источник
1
Вместо того, чтобы думать об этом как о касательной линии, вы также можете думать об этом как о расширении Тейлора первого порядка. В этом случае просто гарантирует, что такой размер шага α существует. βα
cjordan1
Причина, по которой это имеет значение, то есть, почему необходим «хороший» шаг, заключается в том, что многие схемы оптимизации будут сходиться медленнее, как говорит Пол, или могут вообще не сходиться. Таким образом, поиск строк - которые бывают нескольких разновидностей, Armijo - просто самый популярный - может использоваться для придания алгоритмам более надежных свойств сходимости.
cjordan1
1
Пол: ваше объяснение неполное. Одно это неравенство не гарантирует «достаточного» уменьшения. На самом деле, вы можете иметь альфа = 0 и все же удовлетворять неравенству, которое вы написали. Важной особенностью правила Армихо является ограничение размера шага от нуля, что достигается другим неравенством: 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) вы можете найти отличное объяснение, в том числе алгоритм.

Боян Хрнкас
источник