Я предполагаю, что может быть некоторая разница между тем, как методы строчного поиска и области доверия управляют масштабированием, но я действительно не вижу этого на практике, пока мы знаем о масштабировании. И, чтобы было ясно, в книге Носедаля и Райта говорилось об аффинном масштабировании. Нелинейное масштабирование несколько сложнее измерить.
Чтобы понять почему, скажем, мы хотим минимизировать , но мы хотим масштабировать переменные с помощью некоторого неособого самосопряженного оператора . Определите как масштабированную целевую функцию. Тогда
реальная разница в алгоритмах, что происходит с расширением масштабов . В методе Ньютона мы решаем
или
Предполагая, что Гессиан невырожден, у нас есть
A ∈ L ( X ) J : X → R ) δ xе: X→ RA∈L(X)J:X→R A∇2J(x
J(x)=∇J(x)=∇2J(x)=f(Ax)A∇f(Ax)A∇2f(Ax)A
A∇2J(x)δx=−∇J(x)
A∇2f(Ax)Aδx=−A∇f(Ax)
Aδx=−∇2f(Ax)−1∇f(Ax)
По сути, масштабирование отменяется и исчезает, поэтому оно не влияет на направление. Вот почему мы говорим, что метод Ньютона является инвариантом аффинного масштаба.
Хорошо, теперь давайте скажем, что у нас нет гессиана. Действительно, в конце концов, методы доверительной области полагаться на решение системы
для некоторого вида Гессе приближения . В большинстве случаев мы будем использовать усеченную CG Steihaug-Toint, потому что она работает хорошо. Если мы снова включим наше масштабирование, у нас будет
Если мы бросаем CG в этой системе, это в основном означает, что у нас есть один инструмент для работы с масштабированием и это Гессиан или его приближение
Hδx=−∇J(x)
HHδx=−A∇f(Ax)
AH, Теоретически, мы могли бы изменить форму зоны доверия, но все, что на самом деле означает, - это отрезать наш шаг раньше или позже. Это влияет на шаг, но мне всегда было больно контролировать.
В методе поиска строки мы можем рассматривать нашу итерацию как применение некоторой магической функции к нашему градиенту. Следовательно, для масштабированного направления:
Может быть, вычисляет шаг Ньютона. Возможно это вычисляет шаг BFGS. Без разницы. Конечно, у нас есть некоторые ограничения, такие как чтобы получить направление спуска, но это подчеркивает, что здесь есть большая гибкость. Это означает , что у нас есть большее количество инструментов , имеющихся в нашем распоряжении для обработки масштабирования .ϕ
δx=ϕ(−A∇f(Ax))
ϕϕϕA
Теперь, что это за инструменты, и должны ли мы их использовать? Лично я думаю, что ответ - нет. Если вы действительно не знаете свое приложение и не имеете специализированного алгоритма для поиска решения, неточные методы Ньютона работают очень, очень хорошо. Под неточным Ньютоном я подразумеваю решение системы
неточно с использованием CG. Это в точности использует Steihaug-Toint в настройке области доверия (стр. 171 в Nocedal и Wright) или Newton-CG для поиска строки (стр. 169 в Nocedal и Wright). Они работают почти одинаково, и им нет дела до аффинного масштабирования. Они также не требуют хранения гессиана, требуются только произведения вектора гессиана. Действительно, эти алгоритмы должны быть рабочими лошадками для большинства задач, и им нет дела до аффинного масштабирования.
∇2J(x)δx=−∇J(x)
Что касается предварительного условия для проблемы области доверия, я не думаю, что есть простой способ сказать apriori, собираетесь ли вы увеличить общее количество итераций оптимизации или нет. Действительно, в конце концов, методы оптимизации работают в двух режимах. В первом режиме мы слишком далеки от радиуса сходимости метода Ньютона, поэтому мы глобализируемся и просто заставляем итерации гарантировать, что цель снижается. Траст-регион - это один из способов. Строка-поиск это другое. Во втором режиме мы находимся в радиусе сходимости метода Ньютона, поэтому мы стараемся не связываться с ним и позволить методу Ньютона делать свою работу. Фактически, мы можем видеть это в доказательствах сходимости таких вещей, как методы области доверия. Например, посмотрите на теорему 4.9 (стр.93 в «Носедал и Райт»). В явном виде они заявляют, как область доверия становится неактивной. В этом контексте какая польза от предварительного кондиционера? Конечно, когда мы находимся в радиусе сходимости метода Ньютона, мы делаем гораздо меньше работы, и число итераций CG уменьшается. Что происходит, когда мы за пределами этого радиуса? Это отчасти зависит. Если мы вычислим полный шаг по Ньютону, тогда мы получим меньше работы. Если мы отрежем наш шаг раньше из-за усечения из усеченной CG, то наше направление будет в подпространстве Крылова
{−P∇J(x),−(PH)(P∇J(x)),…,−(PH)k(P∇J(x))}
где - предобусловливатель и - наше гессенское приближение. Является ли это лучшим подпространством для поиска направления, чем
Сложно сказать. Может быть. Возможно, нет. Теория просто говорит нам, что мы сходимся за конечное число шагов.
PH{−∇J(x),−(H)(∇J(x)),…,−(H)k(∇J(x))}?
Это не означает, что нет смысла в определении хорошего предварительного кондиционера. Однако я не уверен, как кто-то определяет предварительный кондиционер, чтобы помочь в оптимизации для точек вне радиуса сходимости метода Ньютона. Как правило, мы проектируем предварительное условие для кластеризации собственных значений гессенского приближения, которое является ощутимой, измеримой целью.
tldr; С практической точки зрения, для метода линейного поиска существует больше способов генерации итерации, чем для метода области доверия, поэтому возможно, что есть удивительный способ обработки аффинного масштабирования. Однако, просто используйте неточный метод Ньютона, и это не имеет значения. Предобусловливатель влияет на производительность алгоритма вдали от радиуса сходимости метода Ньютона, но количественно определить, как это сделать, сложно, так что просто спроектируйте предобработчик для кластеризации собственных значений приближения Гессиана.