У меня путаница с правилом Армихо, который используется при поиске строк. Я перечитывал поиск по линии отслеживания, но не понял, о чем это правило Армихо. Кто-нибудь может уточнить, что такое правило Армихо? Википедия не очень хорошо объясняет. Благодарность
optimization
user34790
источник
источник
Ответы:
Как только вы получите направление спуска для вашей целевой функции f ( x ) , вам нужно выбрать «хорошую» длину шага. Вы не хотите делать слишком большой шаг, чтобы функция в новой точке была больше, чем ваша текущая точка. В то же время, вы не хотите, чтобы ваш шаг был слишком маленьким, так что для того, чтобы сходиться, требуется вечность.p f(x)
Условие Армихо в основном предполагает, что «хорошая» длина шага такова, что у вас есть «достаточное уменьшение» в новой точке. Условие математически определяется как f ( x k + α p k ) ≤ f ( x k ) + β α ∇ f ( x k ) T p k, где p k - направление спуска в точке x k и β ∈ ( 0 , 1 ) .f
Интуиция за этим заключается в том, что значение функции в новой точке должно находиться под уменьшенной «касательной линией» в точке x k в направлении p k . См. Книгу Nocedal & Wright "Численная оптимизация". В главе 3 приведено отличное графическое описание условия достаточного уменьшения armijo.f(xk+αpk) xk pk
источник
Пять лет спустя этот вопрос остается в силе.
Здесь (страницы 16 и 17) вы можете найти отличное объяснение, в том числе алгоритм.
источник