Оптимизация

Лагранж и ККТ

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

Шаг 71 из 117 · ~30 мин

Почему нужно новое условие

Из урока 020: в минимуме градиент равен нулю — но только для внутренней точки. На границе это неверно. Минимум x2x^2 на отрезке [1,2][1,2] достигается в x=1x = 1, где f=20f' = 2 \ne 0: уйти вниз хочется, но нельзя.

Правильная формулировка: в оптимуме градиент не обязан быть нулём, он обязан быть полностью погашен ограничениями.

Равенства: метод Лагранжа

Для задачи minf(x)\min f(x) при g(x)=0g(x) = 0 вводим

L(x,λ)=f(x)+λg(x),xL=0,g(x)=0\htmlData{k=lag}{\mathcal{L}(x, \lambda) = f(x) + \htmlData{k=mult}{\lambda}\, g(x)}, \qquad \nabla_x \mathcal{L} = 0, \quad g(x) = 0

Геометрический смысл первого условия: f=λg\nabla f = -\lambda \nabla g, то есть градиенты параллельны. Иначе существовала бы компонента градиента вдоль поверхности ограничения, и по ней можно было бы спуститься, не нарушая условия.

Проверим на примере: min12(x2+y2)\min \frac12(x^2+y^2) при x+y=cx + y = c. Условия дают x=y=c/2x = y = c/2 и λ=c/2\lambda = c/2. Для c=2c = 2: точка (1,1)(1,1), значение 11, множитель 11.

f(x, y)
1
градиент
1, 1
норма градиента
1.41

Линии уровня — окружности, градиент радиален. Ограничение x + y = 2 — прямая. В точке (1, 1) градиент цели (1, 1) параллелен нормали к прямой (1, 1), и множитель равен 1. Пройдите вдоль прямой в любую сторону: значение растёт.

Второй ландшафт стоит посмотреть: штрафной метод — самый простой способ учесть ограничение, и у него есть цена. При конечном коэффициенте минимум не лежит на ограничении точно, а при большом коэффициенте задача становится плохо обусловленной — ровно та проблема, которой посвящён урок 050.

Неравенства: условия ККТ

Для minf(x)\min f(x) при g(x)0g(x) \le 0 добавляются два новых требования.

f+λg=0,g(x)0,λ0знак,λg(x)=0комплементарность\nabla f + \lambda \nabla g = 0, \qquad g(x) \le 0, \qquad \underbrace{\lambda \ge 0}_{\text{знак}}, \qquad \underbrace{\lambda \, g(x) = 0}_{\text{комплементарность}}

Два последних условия — вся суть, и оба содержательны.

Знак множителя. Для равенства λ\lambda мог быть любым; для неравенства он обязан быть неотрицательным. Причина: ограничение давит только с одной стороны. Если бы λ<0\lambda < 0, условие «толкало» бы решение внутрь допустимой области, где оно и так свободно.

Комплементарность λg(x)=0\lambda g(x) = 0 означает: в оптимуме либо ограничение активно (g=0g = 0), либо его множитель нулевой (λ=0\lambda = 0). Иначе говоря — неактивные ограничения не влияют ни на что.

Проверим на min12(x2+y2)\min \frac12(x^2+y^2) при x+ycx + y \ge c:

ccрешениеλ\lambdaактивно?
1-1(0,0)(0,0)00нет
00(0,0)(0,0)00на границе
22(1,1)(1,1)11да
55(2.5,2.5)(2.5, 2.5)2.52.5да

При c0c \le 0 безусловный оптимум (0,0)(0,0) уже удовлетворяет ограничению, значит ограничение неактивно и λ=0\lambda = 0. Произведение λ(зазор)\lambda \cdot (\text{зазор}) равно нулю в каждой строке — в первой потому, что нулевой множитель, в остальных потому, что нулевой зазор.

Множитель — это цена

Самая полезная интерпретация: λ\lambda показывает, насколько изменится оптимальное значение при ослаблении ограничения на единицу.

λ=fc\lambda^* = \frac{\partial f^*}{\partial c}

Проверим по таблице выше: при c=2c = 2 оптимум равен 11, при c=5c = 5 равен 6.256.25. Производная f(c)=c2/4f^*(c) = c^2/4 равна c/2c/2, то есть 11 при c=2c=2 и 2.52.5 при c=5c=5 — в точности множители из таблицы.

Отсюда экономическое название «теневая цена»: λ\lambda — сколько вы готовы заплатить за ослабление ограничения. Ноль означает «ограничение бесплатно», большое значение — «оно вам дорого стоит».

Двойственность, коротко

Определим двойственную функцию d(λ)=minxL(x,λ)d(\lambda) = \min_x \mathcal{L}(x, \lambda). Она обладает двумя свойствами:

  • всегда даёт нижнюю границу на оптимум прямой задачи (слабая двойственность), потому что минимум по xx без ограничений не больше минимума при ограничениях;
  • всегда вогнута, даже если прямая задача невыпукла — минимум семейства линейных по λ\lambda функций вогнут.

Для выпуклых задач при мягких условиях граница точна (сильная двойственность), и тогда можно решать любую из двух задач. Это не только теория: двойственная формулировка SVM — то, что делает «ядерный трюк» возможным, потому что в ней данные входят только через скалярные произведения.

Где это встречается в машинном обучении

местоограничение
SVMотступы 1\ge 1; двойственная задача даёт ядра
максимальная энтропиянормировка и заданные моменты → откуда экспоненциальное семейство
trust region, PPOшаг или KL ограничены (уроки ветки B)
проекционные методыпараметры остаются в допустимом множестве
L1-регуляризацияэквивалентна ограничению w1t\|w\|_1 \le t

Последняя строка — важный частный случай. Задача «минимизировать лосс при w1t\|w\|_1 \le t» и задача «минимизировать лосс +λw1+ \lambda\|w\|_1» эквивалентны при подходящем соответствии tλt \leftrightarrow \lambda, и λ\lambda здесь — тот самый множитель Лагранжа. То есть всякая регуляризация с коэффициентом — это ограничение, записанное через свою теневую цену. Ровно так же, как в блоке 3 всякий регуляризатор оказался prior.

Источники

  • Boyd, Vandenberghe — Convex Optimization, гл. 5 — Двойственность, ККТ, интерпретация множителей
  • Nocedal, Wright — Numerical Optimization, гл. 12 — Условия оптимальности с ограничениями

Проверки

0 из 2
  1. Условия ККТ

    Отметьте все верные утверждения об оптимизации с ограничениями.

  2. Решить задачу с неравенством по ККТ

    Задача: минимизировать 12(x2+y2)\tfrac12(x^2 + y^2) при ограничении x+ycx + y \ge c.

    Реализуйте kkt_solve(c) — верните [x, y, lam, f_star].

    Рассуждение целиком помещается в два случая:

    • безусловный оптимум — точка (0,0)(0,0), где x+y=0x + y = 0. Если он уже допустим (то есть c0c \le 0), ограничение неактивно: решение (0,0)(0,0), а множитель по комплементарности равен нулю;
    • иначе ограничение активно, то есть x+y=cx + y = c. По симметрии задачи x=y=c/2x = y = c/2, и из условия стационарности f=λg\nabla f = \lambda \nabla g следует λ=c/2\lambda = c/2.

    f_star — оптимальное значение цели.

    Три условия ККТ, которые ваш ответ обязан удовлетворять при любом c: допустимость (x+ycx + y \ge c), знак (λ0\lambda \ge 0) и комплементарность (λ(x+yc)=0\lambda \cdot (x + y - c) = 0). Последнее — лучшая проверка: произведение обязано быть нулевым, причём в разных случаях по разным причинам.

    функция kkt_solve

    Загрузка редактора…

    Ctrl/⌘ + Enter