Алгоритм Фрэнка – Вульфа

редактировать

Алгоритм Фрэнка – Вульфа является итеративным первым- порядок оптимизации алгоритм для ограниченной выпуклой оптимизации. Также известный как метод условного градиента, алгоритм уменьшенного градиента и алгоритм выпуклой комбинации, метод был первоначально предложен Маргаритой Франк и Филип Вулф в 1956. На каждой итерации алгоритм Франка – Вульфа рассматривает линейное приближение целевой функции и движется к минимизатору этой линейной функции (взятой в той же области).

Содержание
  • 1 Постановка задачи
  • 2 Алгоритм
  • 3 Свойства
  • 4 Нижние границы значения решения и первично-дуальный анализ
  • 5 Примечания
  • 6 Библиография
  • 7 Внешние ссылки
  • 8 См. Также
Описание проблемы

Предположим, что D {\ displaystyle {\ mathcal {D}}}{\ mathcal {D}} является компактным выпуклый набор в векторном пространстве и f: D → R {\ displaystyle f \ двоеточие {\ mathcal {D}} \ to \ mathbb {R}}f \ двоеточие {\ mathcal {D}} \ to {\ mathbb {R}} - это выпуклая, дифференцируемая вещественная функция. Алгоритм Фрэнка – Вульфа решает задачу оптимизации

Минимизировать f (x) {\ displaystyle f (\ mathbf {x})}f (\ mathbf {x})
при условии x ∈ D {\ displaystyle \ mathbf {x} \ in {\ mathcal {D}}}\ mathbf {x} \ in \ mathcal {D} .
Алгоритм
Шаг алгоритма Фрэнка – Вульфа
Инициализация: Пусть k ← 0 {\ displaystyle k \ leftarrow 0}k \ leftarrow 0 , и пусть x 0 {\ displaystyle \ mathbf {x} _ {0} \!}\ mathbf {x} _0 \! будет любой точкой в ​​D {\ displaystyle {\ mathcal {D }}}{\ mathcal {D}} .
Шаг 1. Подзадача определения направления: Найдите sk {\ displaystyle \ mathbf {s} _ {k}}\mathbf{s}_kрешение
Minimize s T ∇ е (xk) {\ displaystyle \ mathbf {s} ^ {T} \ nabla f (\ mathbf {x} _ {k})}\ mathbf {s} ^ T \ nabla f (\ mathbf { x} _k)
с учетом s ∈ D {\ displaystyle \ mathbf {s} \ in {\ mathcal {D}}}\ mathbf {s} \ in \ mathcal {D}
(Интерпретация: минимизировать линейное приближение задачи, заданное приближением Тейлора первого порядка f {\ displaystyle f}fоколо xk {\ displaystyle \ mathbf {x} _ {k} \!}\ mathbf {x} _k \! .)
Шаг 2. Определение размера шага: установите γ ← 2 k + 2 { \ displaystyle \ gamma \ leftarrow {\ frac {2} {k + 2}}}\ gamma \ leftarrow \ frac {2} {k + 2} или, альтернативно, найдите γ {\ displaystyle \ gamma}\ gamma , который минимизирует е (хк + γ (ск - хк)) {\ Displaystyle е (\ mathbf {x} _ {k} + \ gamma (\ mathbf {s} _ {k} - \ mathbf {x} _ {k})) }f (\ mathbf {x} _k + \ gamma (\ mathbf {s} _k - \ mathbf {x} _k)) с учетом 0 ≤ γ ≤ 1 {\ displaystyle 0 \ leq \ gamma \ leq 1}0 \ leq \ gamma \ leq 1 .
Шаг 3. Обновление: пусть xk + 1 ← xk + γ (sk - xk) {\ displaystyle \ mathbf {x} _ {k + 1} \ leftarrow \ mathbf {x} _ {k} + \ gamma (\ mathbf {s} _ {k} - \ mathbf {x} _ {k})}\ mathbf {x} _ {k + 1} \ leftarrow \ mathbf {x} _k + \ гамма (\ mathbf {s} _k- \ mathbf {x} _k) , пусть k ← k + 1 {\ displaystyle k \ leftarrow k + 1}k \ leftarrow k + 1 и перейдите к шагу 1.
Properties

В то время как конкурирующие методы, такие как градиентный спуск для оптимизации с ограничениями, требуют шага проекции обратно к допустимому набору на каждой итерации, алгоритму Франка – Вульфа требуется только решение линейная задача над одним и тем же набором на каждой итерации и автоматически остается в допустимом наборе.

Сходимость алгоритма Франка – Вульфа в целом сублинейна: ошибка целевой функции до оптимума составляет O (1 / k) {\ displaystyle O (1 / k)}O (1 / k) после k итераций, если градиент липшицево относительно некоторой нормы. Такая же скорость сходимости может быть показана, если подзадачи решаются только приблизительно.

Итерации алгоритма всегда можно представить как разреженную выпуклую комбинацию крайних точек допустимого множества, что помогло популярности алгоритма разреженной жадной оптимизации в задачах машинного обучения и обработки сигналов, а также, например, оптимизации потоков с минимальной стоимостью в транспортные сети.

Если допустимый набор задается набором линейных ограничений, то подзадача, которая должна быть решена на каждой итерации, становится линейной программой.

, тогда как скорость сходимости в наихудшем случае с O (1 / k) {\ displaystyle O (1 / k)}O (1 / k) не может быть улучшено в целом, более быстрая сходимость может быть получена для специальных классов задач, таких как некоторые сильно выпуклые задачи.

Нижние границы значения решения и первично-дуальный анализ

Поскольку f {\ displaystyle f}fравно выпуклый, fo r любые две точки x, y ∈ D {\ displaystyle \ mathbf {x}, \ mathbf {y} \ in {\ mathcal {D}}}{\ displaystyle \ mathbf {x}, \ mathbf {y} \ in {\ mathcal {D}}} имеем:

f ( Y) ≥ е (Икс) + (Y - Икс) T ∇ е (Икс) {\ Displaystyle F (\ mathbf {y}) \ GEQ F (\ mathbf {x}) + (\ mathbf {y} - \ mathbf {x}) ^ {T} \ nabla f (\ mathbf {x})}f (\ mathbf {y}) \ geq f (\ mathbf {x}) + (\ mathbf {y} - \ mathbf {x}) ^ T \ nabla f (\ mathbf {x})

Это также верно для (неизвестного) оптимального решения x ∗ {\ displaystyle \ mathbf {x} ^ {*}}\ mathbf {x} ^ * . То есть f (x ∗) ≥ f (x) + (x ∗ - x) T ∇ f (x) {\ displaystyle f (\ mathbf {x} ^ {*}) \ geq f (\ mathbf {x}) + (\ mathbf {x} ^ {*} - \ mathbf {x}) ^ {T} \ nabla f (\ mathbf {x})}{\ displaystyle f (\ mathbf {x} ^ {*}) \ geq f (\ mathbf {x}) + (\ mathbf {x} ^ {*} - \ mathbf {x}) ^ {T} \ nabla f (\ mathbf {x})} . Наилучшая нижняя граница относительно заданной точки x {\ displaystyle \ mathbf {x}}\ mathbf {x} дается как

f (x ∗) ≥ f (x) + (x ∗ - x) T ∇ f (x) ≥ min y ∈ D {f (x) + (y - x) T ∇ f (x)} = f (x) - x T ∇ f (x) + min y ∈ D y T ∇ е (Икс) {\ Displaystyle {\ begin {align} f (\ mathbf {x} ^ {*}) \ geq f (\ mathbf {x}) + (\ mathbf {x} ^ {*} - \ mathbf {x}) ^ {T} \ nabla f (\ mathbf {x}) \\ \ geq \ min _ {\ mathbf {y} \ in D} \ left \ {f (\ mathbf {x}) + (\ mathbf {y} - \ mathbf {x}) ^ {T} \ nabla f (\ mathbf {x}) \ right \} \\ = f (\ mathbf {x}) - \ mathbf {x} ^ {T} \ nabla f (\ mathbf {x}) + \ min _ {\ mathbf {y} \ in D} \ mathbf {y} ^ {T} \ nabla f (\ mathbf {x}) \ end { выровненный}}}{\ Displaystyle {\ begin {выравнивается} е (\ mathbf {x} ^ {*}) \ geq f (\ mathbf {x}) + (\ mathbf {x} ^ {*} - \ mathbf {x}) ^ {T} \ nabla f (\ mathbf {x}) \\ \ geq \ min _ {\ mathbf {y} \ in D} \ left \ {f (\ mathbf {x}) + (\ mathbf {y} - \ mathbf {x}) ^ {T} \ nabla f ( \ mathbf {x}) \ right \} \\ = f (\ mathbf {x}) - \ mathbf {x} ^ {T} \ nabla f (\ mathbf {x}) + \ min _ {\ mathbf { y} \ in D} \ mathbf {y} ^ {T} \ nabla f (\ mathbf {x}) \ end {align}}}

Последняя задача оптимизации решается на каждой итерации алгоритма Фрэнка – Вульфа, поэтому решение sk {\ displaystyle \ mathbf {s} _ {k}}\mathbf{s}_kиз подзадача пеленгации k {\ displaystyle k}k -й итерации может использоваться для определения возрастающих нижних границ lk {\ displaystyle l_ {k}}l_k во время еа ch итерация путем установки l 0 = - ∞ {\ displaystyle l_ {0} = - \ infty}l_0 = - \ infty и

lk: = max (lk - 1, f (xk) + (sk - хк) T ∇ е (хк)) {\ displaystyle l_ {k}: = \ max (l_ {k-1}, f (\ mathbf {x} _ {k}) + (\ mathbf {s} _ { k} - \ mathbf {x} _ {k}) ^ {T} \ nabla f (\ mathbf {x} _ {k}))}l_k: = \ max (l_ {k - 1}, f (\ mathbf {x} _k) + (\ mathbf {s} _k - \ mathbf {x} _k) ^ T \ nabla f (\ mathbf {x} _k))

Такие нижние границы неизвестного оптимального значения важны на практике, потому что они может использоваться в качестве критерия остановки и давать эффективный сертификат качества аппроксимации на каждой итерации, поскольку всегда lk ≤ f (x ∗) ≤ f (xk) {\ displaystyle l_ {k} \ leq f (\ mathbf {x} ^ {*}) \ leq f (\ mathbf {x} _ {k})}l_k \ leq f (\ mathbf {x} ^ *) \ leq f (\ mathbf {x} _k) .

Было показано, что этот соответствующий разрыв двойственности, то есть разница между е (xk) {\ displaystyle f (\ mathbf {x} _ {k})}f (\ mathbf {x} _k) и нижняя граница lk {\ displaystyle l_ {k}}l_k , убывает с той же скоростью сходимости, т.е. f (xk) - lk = O (1 / k). {\ displaystyle f (\ mathbf {x} _ {k}) - l_ {k} = O (1 / k).}f (\ mathbf {x} _k) - l_k = O (1 / k).

Примечания
Библиография
Внешние ссылки
См. также
Последняя правка сделана 2021-05-21 03:18:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте