ラグランジュ未定乗数法とKKT条件 — 制約の境界にある最適解
第2回では、偏微分で山の頂上を探した。制約のない滑らかな関数なら、内部の極大点で通常は勾配がゼロになる。
しかし、進める場所が制限されたらどうだろう?
例えば「円周の上しか歩いてはいけない」場合、円周上で最も高い地点でも、山そのものの勾配はゼロとは限らない。
今回はその違いを、ラグランジュ未定乗数法とKKT条件で理解する。
1. 制約があると「勾配ゼロ」が使えない
次の問題を考えよう。
最大化:制約条件:f(x,y)=x+yx2+y2=1
目的関数は単なる平面 z=x+y。ところが、動ける場所は xy 平面上の半径1の円周だけだ。
∇f=(1,1)
この勾配はどこでもゼロではない。それでも円周上には、最大値をとる点が存在する。
直線を動かして、円周に触れたまま取れる最大の k を探しましょう。円の内側は今回の制約には含まれません。
- 青の破線:x + y = k
- 黒い矢印:∇f = (1, 1)
- 茶色の太い破線矢印:∇g = (2x, 2y)
ℹ円周と2点で交わっています
円周上の f の値域は −√2〜√2 です。スライダーと「最大の接点」ボタンで、交わる位置と接する位置を比べてください。
選択点の f = 1.414、∇g = (1.414, 1.414)。2つの勾配は平行です。λ = 1/√2。平行になる候補には最大点と最小点があります。
矢印は同じ倍率で描画しています。黒い矢印と茶色の矢印が重なるときは、方向が揃っていることを表します。直線の k と円周上の選択点は独立に操作できます。
2. なぜ勾配が平行になるのか
制約条件を
g(x,y)=x2+y2−1=0
と書こう。∇g は、円周に対する法線方向を向く。
一方、∇f は目的関数を最も急速に増やす方向だ。
最適な接点では、円周に沿って少し動いても f を増やせない。つまり、目的関数の勾配に、円周に沿った成分(接線方向の成分)がない。
したがって、接点では
∇f=λ∇g
が成り立つ。λ は勾配の大きさの違いを吸収する実数で、ラグランジュ乗数と呼ぶ。
この関係が、ラグランジュ未定乗数法の核心である。
※ 制約曲線が滑らかで ∇g=0 といった正則性を仮定している。どんな制約式でも無条件に使えるわけではない。
3. ラグランジュ未定乗数法で解いてみる
ラグランジュ関数を
L(x,y,λ)=x+y−λ(x2+y2−1)
と置く。
x,y,λ について微分すると、
⎩⎨⎧∂x∂L=1−2λx=0∂y∂L=1−2λy=0∂λ∂L=−(x2+y2−1)=0
最初の2式から x=y と分かる。これを円の式に代入すると、
2x2=1⟹(x,y)=(21,21),(−21,−21)
候補は2点。それぞれの目的関数の値は 2 と −2 だ。
したがって、
fmax=2,(x,y)=(21,21)
偏微分で「勾配がゼロの点」を探したのに対して、今回は「2つの勾配が平行な点」を探したという違いがある。
4. 不等式の制約では何が変わる?
ここまでは g(x,y)=0 という等式制約だった。
実際の最適化には、x+y≤3 のような不等式制約もよく現れる。
次の問題を考える。
最大化:制約条件:f(x,y)=10−(x−2)2−(y−2)2x+y≤3x≥0,y≥0
制約がなければ、山の頂上は (2,2) で最大値は 10。しかし、(2,2) は 2+2=4>3 なので実行可能領域の外だ。
実行可能領域は、(0,0),(3,0),(0,3) を頂点とする三角形。その中で最も高い点を探す必要がある。
記事の制約は b = 3。上限 b を緩めたり厳しくしたりして、領域外の山頂と制約付き最適解の位置を比べましょう。
- 緑の三角形:実行可能領域
- 黒い円:高さ k の等高線
- 緑の点:最適解
- 黒い矢印:最適解での ∇f
ℹ制約付き最大値 9.500 / λ = 1.0
この高さの等高線は実行可能領域と交わります。最適解は斜めの境界上。勾配はゼロではなく、λ(1,1) と釣り合います。
現在の最適解でのKKT条件(α = β = 0)| 条件 | 確認 |
|---|
| 実行可能性 | x + y − b = 0.00 ≤ 0、x,y > 0 ✓ |
|---|
| 乗数の非負性 | λ = 1.0 ≥ 0、α = β = 0 ✓ |
|---|
| 停留条件 | ∇f − λ(1,1) = (0,0) ✓ |
|---|
| 相補性 | λ(x+y−b) = 0、αx = βy = 0 ✓ |
|---|
判定は図の標本点ではなく、最適解 x = y = min(2, b/2) と最大値の式に基づきます。この凹関数と凸な領域ではKKT条件が大域的最適性を保証します。b < 4 では、斜めの境界の法線 ∇g₁ = (1,1) と ∇f が同じ向きです。
5. KKT条件の4つのルール
不等式制約に対する代表的な考え方が、KKT条件(Karush–Kuhn–Tucker条件)だ。
ここでは、最大化問題で制約を gi(x,y)≤0 と書き、
L=f−i∑λigi,λi≥0
という符号の約束を使う。
KKT条件は主に4つで構成される。
| 条件 | 意味 |
|---|
| 実行可能性 gi(x,y)≤0 | 制約を破っていない |
| 乗数の非負性 λi≥0 | 不等式の乗数の符号をそろえる |
| 停留条件 ∇f−∑iλi∇gi=0 | 境界の法線方向との釣り合い |
| 相補性条件 λigi(x,y)=0 | 制約に余裕があれば、その乗数はゼロ |
最後の相補性条件が特に重要だ。
- 制約に余裕がある(gi<0)なら、λi=0。
- 乗数が正(λi>0)なら、その制約は境界で等号(gi=0)になる。
- 境界で等号でも、乗数がゼロの場合はあり得る。
この「今、本当に効いている制約はどれか」を区別する仕組みが、不等式制約を扱う鍵になる。
KKT条件は、適切な正則性条件の下で最適解が満たす必要条件。常に十分条件になるわけではない。今回のように目的関数が凹で、実行可能領域が凸な最大化問題では、KKTを満たせば大域的最適解といえる。
6. KKT条件で実際に解く
制約をすべて gi≤0 の形にそろえる。
g1=x+y−3≤0,g2=−x≤0,g3=−y≤0
対応する乗数を λ,α,β≥0 とすると、
L=10−(x−2)2−(y−2)2−λ(x+y−3)+αx+βy
停留条件は、
{−2(x−2)−λ+α=0−2(y−2)−λ+β=0
相補性条件は、
λ(x+y−3)=0,αx=0,βy=0
ここでは、最適解が斜めの辺 x+y=3 の内部、つまり x>0,y>0 にあると予想して解いてみよう。
このとき α=β=0 で、x+y=3。停留条件は
−2(x−2)=λ,−2(y−2)=λ
となるため、x=y。よって、
x=y=23
さらに λ=1≥0 と分かるので、KKTの符号条件も満たす。目的関数の値は、
f(23,23)=10−(−21)2−(−21)2=219=9.5
実際に x,y>0 なので、最初の予想とも矛盾しない。目的関数は厳密に凹で、制約領域は凸だから、この解がただ1つの大域的最大解である。
この点での勾配を比較すると、
∇f(23,23)=(1,1),∇g1=(1,1)
つまり、目的関数の勾配と、有効な制約境界の法線が釣り合っている。等式制約のラグランジュ未定乗数法で見た幾何学が、ここでも登場した。
7. 3つの解法はどうつながるのか
| 題材 | 幾何学的な見方 | 代表的な解法 |
|---|
| 線形目的関数+線形制約 | 直線を動かして多角形に最後に触れる点を探す | 頂点の比較・線形計画法 |
| 滑らかな関数+制約なし | 曲面の上で勾配がゼロになる候補を探す | 偏微分・ヘッセ行列 |
| 滑らかな関数+制約あり | 動ける方向を考え、境界の法線との釣り合いを調べる | ラグランジュ未定乗数法・KKT条件 |
最適化を通して一貫しているのは、「今いる点から、値をさらに改善できる方向が残っているか?」 という問いだ。
制約がなければ、すべての方向へ動ける。制約があれば、動ける方向が絞られる。その違いが、偏微分からKKT条件への発展につながっている。
まとめ
- 制約なしの滑らかな最適化では、内部の最適解で ∇f=0 が基本になる。
- 等式制約では、正則な最適点で ∇f=λ∇g が成り立つ。
- 不等式制約では、境界で効いている条件と、余裕のある条件を区別する必要がある。
- KKT条件の相補性条件が、その区別を数式にしている。
- 局所的な候補が大域的な答えなのかは、凸性・凹性なども確認する。
高校数学の「直線を動かす」という素朴な発想は、実は大学数学の最適化理論までつながっている。
連載を通して見てきた図形は違っていても、 「これ以上よくなる方向がない場所を探す」 という目的は、最初から最後まで同じなのだ。