У меня есть целевая функция зависит от значения , где это решение для PDE. Я оптимизируюпо градиентному спуску на исходное состояние ФДЭ:, То есть я обновляюа затем придется интегрировать PDE, чтобы вычислить мой остаток. Это означает, что если бы мне пришлось искать строку для шага градиентного спуска (назовите его), для каждого потенциального значения Мне пришлось бы заново интегрировать PDE.
В моем случае это было бы слишком дорого. Есть ли другой вариант для шага адаптивного градиентного спуска?
Я не просто ищу математически принципиальные схемы (хотя, конечно, лучше, если что-то существует), но был бы рад всему, что в целом лучше, чем статический размер шага.
Спасибо!
optimization
pde
conjugate-gradient
NLi10Me
источник
источник
Ответы:
Я начну с общего замечания: информация первого порядка (т. Е. Использование только градиентов, которые кодируют наклон) может дать вам только информацию о направлении: она может сказать вам, что значение функции уменьшается в направлении поиска, но не в течение какого времени , Чтобы решить, как далеко идти вдоль направления поиска, вам нужна дополнительная информация (градиентный спуск с постоянной длиной шага может не сработать даже для выпуклых квадратичных задач). Для этого у вас есть два варианта:
Если, как вы пишете, у вас нет доступа ко вторым производным, и оценка функции объектива стоит очень дорого, ваша единственная надежда - пойти на компромисс: используйте достаточно приблизительную информацию второго порядка, чтобы получить подходящую длину шага кандидата, такую что строка поиск нужен толькоO(1) оценки (т. е. не более (небольшая) постоянная кратность усилий, необходимых для оценки градиента).
Одной из возможностей является использование длины шага Барзилай - Борвейна (см., Например, Флетчер: О методе Барзилай-Борвейна . Оптимизация и управление с приложениями, 235–256, Appl. Optim., 96, Springer, New York, 2005 ). Идея состоит в том, чтобы использовать конечно-разностную аппроксимацию кривизны вдоль направления поиска, чтобы получить оценку размера шага. В частности, выберитеα0>0 произвольный набор g0:=∇f(x0) а затем для k=0,... :
Можно показать, что этот выбор сходится (на практике очень быстро) для квадратичных функций, но сходимость не является монотонной (т. Е. Значение функцииf(xk+1) может быть больше чем f(xk) , но только время от времени; см. график на стр. 10 в статье Флетчера). Для неквадратичных функций вам необходимо объединить это с поиском строк, который необходимо изменить, чтобы справиться с немонотонностью. Одна возможность выбораσk∈(0,α−1k) (например, путем возврата), так что
Альтернативный (и, на мой взгляд, гораздо лучший) подход будет использовать это приближение конечных разностей уже при расчете направления поиска; это называется квазиньютоновским методом . Идея состоит в том, чтобы постепенно построить аппроксимацию гессиана , используя различия градиентов. Например, вы можете взять (единичная матрица) и для решить и установить с помощью как указано выше, и . (Это называется Broyden update∇2f(xk) H0=Id k=0,…
К счастью, в этом контексте существует альтернативный подход, который использует каждую функцию оценки. Идея состоит в том, что для симметричной и положительно определенной (что гарантировано для обновления BFGS) решение эквивалентно минимизации квадратичной модели В методе области доверия вы должны сделать это с дополнительным ограничением, которое , где - это правильно выбранный радиус доверительной области (который играет роль длины шага ). Ключевая идея заключается в том, чтобы теперь адаптивно выбирать этот радиус на основе вычисленного шага. В частности, вы смотрите на соотношениеHk (1)
источник