Условия Каруша–Куна–Таккера

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Версия 1.0)
(Математический аппарат и Теория: формулы)
Строка 45: Строка 45:
Для того чтобы условия ККТ являлись необходимыми, требуется выполнение условий регулярности ограничений (Constraint Qualifications, CQ). Наиболее известным в выпуклой оптимизации является '''[[условие Слейтера]]''': если задача выпуклая и существует хотя бы одна точка, строго удовлетворяющая всем нелинейным ограничениям-неравенствам (<tex>g_i(x) < 0</tex>), то условия регулярности выполнены. В случае [[Выпуклая оптимизация|строго выпуклых задач]] условия ККТ становятся не только необходимыми, но и достаточными для глобального оптимума. Геометрически выполнение ККТ означает, что антиградиент целевой функции <tex>-
Для того чтобы условия ККТ являлись необходимыми, требуется выполнение условий регулярности ограничений (Constraint Qualifications, CQ). Наиболее известным в выпуклой оптимизации является '''[[условие Слейтера]]''': если задача выпуклая и существует хотя бы одна точка, строго удовлетворяющая всем нелинейным ограничениям-неравенствам (<tex>g_i(x) < 0</tex>), то условия регулярности выполнены. В случае [[Выпуклая оптимизация|строго выпуклых задач]] условия ККТ становятся не только необходимыми, но и достаточными для глобального оптимума. Геометрически выполнение ККТ означает, что антиградиент целевой функции <tex>-
-
abla f(x^*)</tex> принадлежит конусу, натянутому на градиенты активных ограничений <tex>
+
\nabla f(x^*)</tex> принадлежит конусу, натянутому на градиенты активных ограничений <tex>
-
abla g_i(x^*)</tex> и <tex>
+
\nabla g_i(x^*)</tex> и <tex>
-
abla h_j(x^*)</tex>.
+
\nabla h_j(x^*)</tex>.
== Применение в машинном обучении ==
== Применение в машинном обучении ==

Версия 17:23, 17 июня 2026

Статья написана с использованием LLM Gemini 3.1 Pro и проверена участником Artem Abdulmanov 21:03, 17 июня 2026 (MSD)

Промпт приводится полностью в Обсуждение:Условия Каруша–Куна–Таккера


Содержание

Введение

Условие Каруша — Куна — Таккера (Karush–Kuhn–Tucker condition, KKT) — это фундаментальное понятие в математической оптимизации, представляющее собой необходимые, а в ряде случаев и достаточные условия первого порядка для оптимальности решения в задачах нелинейного программирования. Эти условия обобщают классический метод множителей Лагранжа на случай, когда в задаче присутствуют не только ограничения в виде равенств, но и ограничения в виде неравенств. Условия ККТ лежат в основе подавляющего большинства современных алгоритмов численной оптимизации и теории двойственности, являясь важнейшим инструментом в арсенале ML-инженера и исследователя данных.

Мотивировка и историческая справка

Классический метод множителей Лагранжа элегантно решает задачи оптимизации с ограничениями-равенствами, перенося поиск экстремума из ограниченного пространства в безусловный поиск стационарных точек обобщённой функции. Однако на практике, особенно в машинном обучении и исследовании операций, ограничения чаще имеют односторонний характер (например, вероятности должны быть неотрицательны, а отступы в классификации — превышать определённый порог). При наличии ограничений-неравенств граница допустимого множества становится сложной: в оптимальной точке некоторые ограничения могут выполняться как строгие равенства (активные ограничения), а другие — с запасом (неактивные ограничения). Метод Лагранжа не способен самостоятельно различать эти состояния.

Исторически эти условия были впервые выведены Уильямом Карушем в его неопубликованной магистерской диссертации в 1939 году[1]. Однако работа осталась незамеченной математическим сообществом. Лишь в 1951 году Гарольд Кун и Альберт Таккер независимо переоткрыли и формализовали эти условия на симпозиуме в Беркли[1]. Именно их публикация стала отправной точкой для бурного развития теории выпуклой оптимизации, а сам математический аппарат получил название в честь всех троих исследователей.

Математический аппарат и Теория

Рассмотрим общую задачу математического программирования. Требуется найти локальный минимум функции f(x) в пространстве x \in \mathbb{R}^n:

\min_{x} f(x)

при соблюдении следующих ограничений:

  • g_i(x) \le 0 для i = 1, \dots, m (ограничения-неравенства)
  • h_j(x) = 0 для j = 1, \dots, p (ограничения-равенства)

Предполагается, что функции f(x), g_i(x) и h_j(x) непрерывно дифференцируемы. Для этой задачи вводится обобщённая функция Лагранжа (Лагранжиан):

\mathcal{L}(x, \lambda, \mu) = f(x) + \sum_{i=1}^{m} \lambda_i g_i(x) + \sum_{j=1}^{p} \mu_j h_j(x)

где \lambda_i и \mu_j — двойственные переменные (множители Лагранжа).

Если точка x^* является локальным оптимумом и для неё выполняются условия регулярности ограничений, то существуют такие константы \lambda^* и \mu^*, что для точки (x^*, \lambda^*, \mu^*) выполняется система из четырёх групп условий ККТ:

1. Стационарность (Stationarity): Градиент Лагранжиана по прямым переменным равен нулю. Это означает, что антиградиент целевой функции уравновешивается линейной комбинацией градиентов ограничений.

\nabla f(x^*) + \sum_{i=1}^{m} \lambda_i^* \nabla g_i(x^*) + \sum_{j=1}^{p} \mu_j^* \nabla h_j(x^*) = 0

2. Допустимость по прямым переменным (Primal Feasibility): Оптимальная точка должна лежать внутри допустимого множества.

g_i(x^*) \le 0, \quad i = 1, \dots, m
h_j(x^*) = 0, \quad j = 1, \dots, p

3. Допустимость по двойственным переменным (Dual Feasibility): Множители Лагранжа для ограничений-неравенств не могут быть отрицательными. Это связано с тем, что движение внутрь допустимой области (где g_i(x) < 0) не должно уменьшать значение целевой функции.

\lambda_i^* \ge 0, \quad i = 1, \dots, m

4. Дополняющая нежёсткость (Complementary Slackness): Произведение множителя Лагранжа на значение функции ограничения-неравенства равно нулю. Если ограничение неактивно (g_i(x^*) < 0), то его множитель обязан быть нулевым (\lambda_i^* = 0). Если же \lambda_i^* > 0, то ограничение обязано быть активным (g_i(x^*) = 0).

\lambda_i^* g_i(x^*) = 0, \quad i = 1, \dots, m

Для того чтобы условия ККТ являлись необходимыми, требуется выполнение условий регулярности ограничений (Constraint Qualifications, CQ). Наиболее известным в выпуклой оптимизации является условие Слейтера: если задача выпуклая и существует хотя бы одна точка, строго удовлетворяющая всем нелинейным ограничениям-неравенствам (g_i(x) < 0), то условия регулярности выполнены. В случае строго выпуклых задач условия ККТ становятся не только необходимыми, но и достаточными для глобального оптимума. Геометрически выполнение ККТ означает, что антиградиент целевой функции -
\nabla f(x^*) принадлежит конусу, натянутому на градиенты активных ограничений 
\nabla g_i(x^*) и 
\nabla h_j(x^*).

Применение в машинном обучении

Условия ККТ являются теоретическим ядром множества алгоритмов машинного обучения, где вводится регуляризация или строгие геометрические отступы.

Один из самых ярких примеров — Метод опорных векторов (SVM). При построении оптимальной разделяющей гиперплоскости решается квадратичная задача оптимизации с ограничениями-неравенствами (отступы объектов от гиперплоскости должны быть больше или равны единице). Переход к двойственной задаче через Лагранжиан позволяет применять kernel trick (ядерный переход).

Именно благодаря условию дополняющей нежёсткости алгоритм получает свойство разреженности. Для всех объектов обучающей выборки, которые лежат строго за пределами разделяющей полосы (ограничения неактивны, запас больше нуля), соответствующие множители Лагранжа \lambda_i^* обнуляются. Ненулевые \lambda_i^* получают только те объекты, которые лежат в точности на границе полосы или нарушают её — они и называются опорными векторами.

Кроме того, выполнение условий ККТ неразрывно связано с понятиями слабой и сильной двойственности. Если условия ККТ выполнены, зазор двойственности (разность между решениями прямой и двойственной задачи, Duality Gap) равен нулю. В численных методах машинного обучения метрика зазора двойственности часто используется как надёжный критерий остановки (stopping criterion) для градиентных оптимизаторов.

Практика оптимизации на Python

При программной реализации условной оптимизации важно не только найти оптимум, но и уметь численно валидировать выполнение условий ККТ. Рассмотрим пример минимизации нелинейной функции с одним ограничением-неравенством с использованием метода Sequential Least Squares Programming (SLSQP).

import numpy as np
from scipy.optimize import minimize
 
# Целевая функция: f(x) = x_0^2 + x_1^2
def f(x):
    return x[0]**2 + x[1]**2
 
# Градиент целевой функции
def grad_f(x):
    return np.array([2*x[0], 2*x[1]])
 
# Ограничение-неравенство: g(x) = 1 - x_0 - x_1 <= 0 (т.е. x_0 + x_1 >= 1)
# Важно: scipy.optimize требует формат g(x) >= 0. 
# Поэтому для scipy мы возвращаем -g_kkt(x)
def g_kkt(x):
    return 1.0 - x[0] - x[1]
 
def constraint_scipy(x):
    return -g_kkt(x) # x_0 + x_1 - 1 >= 0
 
def grad_g_kkt(x):
    return np.array([-1.0, -1.0])
 
# Решение задачи оптимизации
cons = {'type': 'ineq', 'fun': constraint_scipy}
x0 = np.array([0.0, 0.0])
res = minimize(f, x0, jac=grad_f, constraints=cons, method='SLSQP')
x_opt = res.x
 
# Численная проверка условий ККТ
# В scipy извлечь множители Лагранжа напрямую из объекта результата сложно, 
# восстановим множитель lambda аналитически из условия стационарности.
grad_f_opt = grad_f(x_opt)
grad_g_opt = grad_g_kkt(x_opt)
 
# Из: grad_f + lambda * grad_g_kkt = 0
lambda_opt = -grad_f_opt[0] / grad_g_opt[0] if np.isclose(g_kkt(x_opt), 0, atol=1e-4) else 0.0
 
eps = 1e-5
# 1. Стационарность (Stationarity)
stationarity = np.allclose(grad_f_opt + lambda_opt * grad_g_opt, 0, atol=eps)
 
# 2. Допустимость (Primal Feasibility)
primal_feas = g_kkt(x_opt) <= eps
 
# 3. Двойственная допустимость (Dual Feasibility)
dual_feas = lambda_opt >= -eps
 
# 4. Дополняющая нежёсткость (Complementary Slackness)
comp_slack = np.abs(lambda_opt * g_kkt(x_opt)) <= eps
 
print(f"Оптимальная точка: {x_opt}")
print(f"Множитель Лагранжа (lambda): {lambda_opt:.4f}")
print(f"Стационарность: {stationarity}")
print(f"Допустимость по прямым переменным: {primal_feas}")
print(f"Допустимость по двойственным переменным: {dual_feas}")
print(f"Дополняющая нежёсткость: {comp_slack}")

Свойства алгоритмов и рекомендации

Применение условий ККТ на практике требует понимания нюансов численного поиска седловых точек Лагранжиана. Если регулярность ограничений (например, условие Слейтера) нарушена, множители Лагранжа могут устремиться к бесконечности, что приведёт к расходимости численного алгоритма (NaN/Inf в градиентах).

Вычислительная сложность перехода к двойственной задаче квадратично или кубически зависит от размера обучающей выборки (формирование матрицы Грама в SVM). Для решения этой проблемы был разработан алгоритм SMO (Sequential Minimal Optimization), который на каждом шаге аналитически решает подзадачу ККТ всего для двух переменных, избегая необходимости держать в памяти гигантские матрицы.

Типичной ошибкой ML-инженеров является игнорирование свойства выпуклости. Если целевая функция или ограничения не являются выпуклыми (например, при обучении глубоких нейронных сетей с ограничениями), условия ККТ гарантируют лишь сходимость к локальной седловой точке Лагранжиана, но не к глобальному минимуму.

Современные подходы и модификации

На переднем крае исследований в машинном обучении принципы ККТ находят применение в задачах с миллиардами параметров:

  • Обучение с подкреплением с ограничениями (Constrained RL): Алгоритмы вроде Trust Region Policy Optimization (TRPO) и Constrained Policy Optimization (CPO) используют аппроксимацию условий ККТ для обновления весов политики так, чтобы максимизировать ожидаемую награду, не нарушая строгих ограничений на расхождение Кульбака-Лейблера или физические лимиты робота.
  • Методы внутренней точки (Interior-point methods): Современные крупномасштабные солверы решают сглаженную систему уравнений ККТ, заменяя жесткое условие дополняющей нежёсткости на логарифмические барьеры. Это позволяет эффективно оптимизировать сложные архитектуры нейронных сетей с ограничениями.
  • ADMM (Alternating Direction Method of Multipliers): Метод расщепления переменных позволяет распределить вычисление условий ККТ на кластеры серверов, что стало стандартом де-факто для распределённого обучения моделей на петабайтах данных.

См. также

Примечания


Литература

  • Boyd S., Vandenberghe L. Convex Optimization. — Cambridge: Cambridge University Press, 2004.
  • Kuhn H. W., Tucker A. W. Nonlinear Programming // Proceedings of the Second Berkeley Symposium on Mathematical Statistics and Probability. — 1951. — С. 481-492.
  • Karush W. Minima of Functions of Several Variables with Inequalities as Side Conditions // Master's thesis, Department of Mathematics, University of Chicago. — 1939. — С. 1-35.