制約付き最適化(KKT条件)

制約付き最適化において重要な理論の一つが「KKT条件(Karush-Kuhn-Tucker条件)」です。これは、非線形制約付き最適化問題において最適解が満たすべき必要条件を与えるもので、特に機械学習や強化学習におけるラグランジュ最適化や凸最適化問題の分析に広く用いられます。


制約付き最適化問題の定式化

一般的な制約付き最適化問題は次の形で表されます:

minimizef(x)subject togi(x)0(i=1,...,m)hj(x)=0(j=1,...,p)\begin{aligned} \text{minimize} \quad & f(x) \\ \text{subject to} \quad & g_i(x) \leq 0 \quad (i = 1, …, m) \\ & h_j(x) = 0 \quad (j = 1, …, p) \end{aligned}

  • 目的関数f(x)f(x) は最小化したい関数

  • 不等式制約gi(x)0g_i(x) \leq 0

  • 等式制約hj(x)=0h_j(x) = 0


KKT条件とは何か?

KKT条件は、最適解 xx^* が満たすべき必要条件であり、以下の4つの条件で構成されます(通常、微分可能な関数を前提とします):

1. 勾配消失条件(Stationarity)

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

  • λi\lambda_i:不等式制約に対応するラグランジュ乗数

  • μj\mu_j:等式制約に対応するラグランジュ乗数

2. 可行性条件(Primal Feasibility)

gi(x)0,hj(x)=0g_i(x^*) \leq 0, \quad h_j(x^*) = 0

  • xx^* はすべての制約条件を満たしている必要がある。

3. 双対可行性条件(Dual Feasibility)

λi0for all i\lambda_i \geq 0 \quad \text{for all } i

  • 不等式制約に対するラグランジュ乗数は非負でなければならない。

4. 相補スラック性(Complementary Slackness)

λigi(x)=0for all i\lambda_i g_i(x^*) = 0 \quad \text{for all } i

  • ある制約 gi(x)g_i(x) が厳密に満たされていない(すなわち gi(x)<0g_i(x^*) < 0)場合、そのラグランジュ乗数 λi=0\lambda_i = 0 でなければならない。


KKT条件が成り立つ条件(正則性条件)

KKT条件が有効(すなわち必要条件になる)であるためには、いくつかの**正則性条件(constraint qualifications)**が満たされている必要があります。たとえば:

  • LICQ(Linearly Independent Constraint Qualification):等式制約とアクティブな不等式制約の勾配ベクトルが線形独立であること。

  • Slaterの条件(凸最適化において):ある点がすべての不等式制約を厳密に満たしている。


機械学習・強化学習における応用

  • **SVM(サポートベクターマシン)**の最適化:KKT条件を使ってサポートベクターを導出。

  • ラグランジュ緩和法:強化学習での制約付き報酬最大化問題など。

  • 双対問題の構築:KKT条件は原始問題と双対問題の関係性の解析にも使われる。


まとめ

KKT条件は、制約付き最適化問題における解の最適性の必要条件を与えるものであり、特に非線形かつ連続な最適化問題に対して重要なツールです。機械学習や強化学習における多くの最適化問題の解法や解析において、その理論的基盤として不可欠です。

生成日:2025/06/01