この章の目標
- 等式制約の問題をラグランジュの未定乗数法で扱い、階数条件の役割を説明できる
- 不等式制約を含む問題の KKT 条件を書き、LICQ のもとで必要条件であることを証明できる。制約想定がないと成り立たない例を挙げられる
- 凸問題では KKT 条件が十分条件であることを証明し、KKT 条件から最適解を求められる
- ラグランジュ双対問題を作り、弱双対性と、スレーター条件のもとでの強双対性を証明できる
- 二次計画・ポートフォリオ・SVM・water-filling の最適解と双対問題を導き、乗数を感度として解釈できる
前提:第2章、第3章、01-calculus 第8章。例では 02-linear-algebra 第8章の正定値行列を使う。
予算の上限、設備の能力、規制、在庫が負にならないこと。実際の最適化問題には必ず制約がある。制約がなければ最適解では勾配が 0 になる(第1章)が、制約があると、最適解で勾配は 0 にならず、制約の「押し返す力」とつり合う。この力の大きさがラグランジュ乗数であり、それを並べた条件が KKT 条件(カルーシュ–キューン–タッカー条件, Karush–Kuhn–Tucker conditions)である。
第3章の線形計画法では、双対問題が最適性の証明書になり、双対変数がシャドウプライスを表した。本章ではこれを非線形の問題に広げる。乗数は「制約を少しゆるめたとき最適値がどれだけ改善するか」を表し、双対問題は最適値の下界を与える。凸問題では、スレーター条件のもとで下界と最適値が一致する。これはサポートベクターマシン(SVM)の理論、内点法(第6章)、整数計画の分枝限定法(第7章)の基礎でもある。
本章では次の形の問題を考える。
(P)minimizef(x)subject togi(x)≤0 (i=1,…,m),hj(x)=0 (j=1,…,p)
制約を満たす x を実行可能といい、(P) の最適値(下限)を p∗ と書く。記法は第3章と同じで、1 は成分がすべて 1 のベクトルである。
4.1 等式制約とラグランジュの未定乗数法
等式制約だけの場合は、01-calculus 第8章 定理 8.11(ラグランジュの未定乗数法)で扱った。本章の記号で書くと次のようになる:f,h1,…,hp が C1 級、x∗ が h=0 のもとでの f の極値点で、∇h1(x∗),…,∇hp(x∗) が一次独立ならば、
∇f(x∗)+j=1∑pνj∇hj(x∗)=0
となる ν∈Rp が存在する(01-calculus 第8章の乗数 λj が −νj にあたる)。勾配の一次独立性の条件は外せない。01-calculus 第8章(定理 8.11 の後の注意)では、尖点のある曲線 y2=x3 の上で x を最小化すると原点で乗数が存在しない例を見た。
例 4.1(最小分散ポートフォリオ)n 個の資産の収益率の共分散行列 Σ が正定値のとき、予算制約 1⊤w=1 のもとで分散 w⊤Σw を最小にする(空売りを許す)。ラグランジュの条件は 2Σw+ν1=0 で、w=−2νΣ−11 を予算制約に代入すると
w∗=1⊤Σ−11Σ−11,w∗⊤Σw∗=1⊤Σ−111
を得る。これが最小であることは直接確かめられる:1⊤w=1 なら d=w−w∗ は 1⊤d=0 を満たし、Σw∗ は 1 の定数倍なので w∗⊤Σd=0、よって w⊤Σw=w∗⊤Σw∗+d⊤Σd≥w∗⊤Σw∗。数値例として、期待収益率 μ=(4,7,10)(%)、標準偏差 10,15,20(%)、相関係数 ρ12=0.2, ρ13=0.1, ρ23=0.3 の 3 資産、すなわち
Σ=100302030225902090400(%2)
では、w∗=(233,70,38)/341≈(0.683,0.205,0.111)、分散 26160/341≈76.7(標準偏差約 8.76 %)、期待収益率 1802/341≈5.28 % である(sympy で厳密に計算した)。この 3 資産は 4.7 節でも使う。
4.2 不等式制約と KKT 条件
1 変数の問題「x≥0 のもとで f(x) を最小化」を考える。最適解 x∗ が x∗>0 なら f′(x∗)=0、x∗=0 なら右にしか動けないので f′(0)≥0 である。どちらも「f′(x∗)=λ, λ≥0, λx∗=0 となる λ がある」とまとめられる。これを一般化する。
定義 4.2(ラグランジュ関数・KKT 条件)λ∈Rm, ν∈Rp に対し
L(x,λ,ν)=f(x)+i=1∑mλigi(x)+j=1∑pνjhj(x)
をラグランジュ関数 (Lagrangian) という。実行可能な x∗ で gi(x∗)=0 となる i の集合 I(x∗) を有効制約の集合という。f,gi,hj が x∗ で微分可能なとき、次の 4 条件を KKT 条件といい、満たす λ,ν をラグランジュ乗数 (Lagrange multiplier) という。
- (停留性)∇f(x∗)+∑iλi∇gi(x∗)+∑jνj∇hj(x∗)=0
- (主実行可能性)gi(x∗)≤0, hj(x∗)=0
- (双対実行可能性)λi≥0
- (相補性)λigi(x∗)=0(i=1,…,m)
相補性により、有効でない制約(gi(x∗)<0)の乗数は 0 である。停留性は「−∇f(x∗) が、有効な不等式制約の外向きの法線 ∇gi の非負結合と、等式制約の法線の一次結合で書ける」ことを意味する。
定義 4.3(LICQ)∇gi(x∗)(i∈I(x∗))と ∇hj(x∗)(j=1,…,p)が一次独立であるとき、x∗ で一次独立制約想定 (linear independence constraint qualification, LICQ) が成り立つという。
定理 4.4(KKT 条件の必要性)開集合 U⊂Rn 上で f,gi,hj は C1 級とし、x∗∈U を (P) の局所最適解とする。x∗ で LICQ が成り立てば、KKT 条件を満たす λ,ν がただ一組存在する。
証明. I=I(x∗), k=∣I∣+p とし、∇gi(x∗)⊤(i∈I)と ∇hj(x∗)⊤ を行とする k×n 行列を G、対応する関数を並べた写像を c(z)=((gi(z))i∈I,(hj(z))j)∈Rk とする。LICQ より rankG=k である。
第 1 段(線形化した方向に沿う実行可能な曲線). d∈Rn が
∇gi(x∗)⊤d≤0(i∈I),∇hj(x∗)⊤d=0(j=1,…,p)(1)
を満たすとする。KerG の基底を列に並べた n×(n−k) 行列を Z とし、(t,z)∈R×U に対して
F(t,z)=(c(z)−tGdZ⊤(z−x∗−td))∈Rn
とおく(k=0 や k=n のときは該当する行がないと読む)。F(0,x∗)=0 で、F の z についての微分は、G の下に Z⊤ を並べた n 次正方行列である。これは正則である:Gv=0 かつ Z⊤v=0 なら、v∈KerG かつ v は KerG に直交するので v=0。陰関数定理(01-calculus 第8章 定理 8.7)より、C1 級の曲線 z(t)(∣t∣<ε)で z(0)=x∗, F(t,z(t))=0 となるものがある。t=0 で微分すると G(z′(0)−d)=0, Z⊤(z′(0)−d)=0 なので、同じ理由で z′(0)=d。また F=0 の上半分から、i∈I について gi(z(t))=t∇gi(x∗)⊤d≤0(t≥0)、hj(z(t))=0。i∈/I なら gi(x∗)<0 なので、連続性から小さい t で gi(z(t))<0。よって十分小さい t≥0 で z(t) は実行可能である。
第 2 段. x∗ は局所最適で z(t)→x∗ なので、小さい t>0 で f(z(t))≥f(x∗)。t で割って t→+0 とすると、連鎖律より ∇f(x∗)⊤z′(0)=∇f(x∗)⊤d≥0。すなわち (1) を満たすすべての d で ∇f(x∗)⊤d≥0 である。
第 3 段(ファルカスの補題). 列 ∇gi(x∗)(i∈I), ∇hj(x∗), −∇hj(x∗) を並べた行列を M とする。Mw=−∇f(x∗), w≥0 が解をもたないとすると、第3章のファルカスの補題(定理 3.22)より、M⊤y≥0, −∇f(x∗)⊤y<0 となる y がある。d=−y は ∇gi⊤d≤0(i∈I)、±∇hj⊤d≤0 すなわち ∇hj⊤d=0 を満たし、∇f(x∗)⊤d<0 となって第 2 段に反する。よって解 w≥0 があり、その成分を λi(i∈I)と νj+,νj− に分けて νj=νj+−νj−、i∈/I では λi=0 とおけば、KKT 条件の 4 つがすべて成り立つ。停留性に現れる勾配は LICQ により一次独立なので、乗数は一意である。□
命題 4.5(一次の制約)すべての gi,hj が一次関数(アフィン関数 a⊤x+β)ならば、制約想定なしに定理 4.4 の結論が成り立つ(ただし乗数の一意性を除く)。
証明. 第 1 段で z(t)=x∗+td とすればよい。実際 i∈I なら gi(x∗+td)=gi(x∗)+t∇gi⊤d=t∇gi⊤d≤0、同様に hj(x∗+td)=0 で、有効でない制約は連続性から保たれる。第 2・3 段はそのまま使える。□
線形計画問題はこの場合にあたり、KKT 条件は第3章の主実行可能性・双対実行可能性・相補性条件(定理 3.28)そのものである(4.4 節の例 4.12)。
例 4.6(制約想定がないと KKT 条件は成り立たない)
minimize−x1subject tog1(x)=x2−(1−x1)3≤0,g2(x)=−x2≤0
を考える。実行可能なら 0≤x2≤(1−x1)3 より x1≤1 なので、最適解は x∗=(1,0) である。そこでは両方の制約が有効で、∇g1(x∗)=(3(1−x1)2,1)=(0,1), ∇g2(x∗)=(0,−1) は一次従属であり、LICQ が成り立たない。停留性 (−1,0)+λ1(0,1)+λ2(0,−1)=0 は第 1 成分が −1=0 となって解をもたないので、KKT 条件を満たす乗数は存在しない。実行可能領域が x∗ で尖っているため、d=(1,0) は線形化した条件 (1) を満たすのに、その方向に進む実行可能な曲線がないのである。
LICQ より弱い制約想定(マンガサリアン–フロモヴィッツの制約想定など)のもとでも KKT 条件は必要条件になる(主張のみ。Bertsekas, Nonlinear Programming や Nocedal–Wright, Numerical Optimization を参照)。凸問題ではスレーター条件がその役割を果たす(系 4.16)。
注意
KKT 条件は、制約想定のもとでの必要条件にすぎない。(1) 凸でない問題では、KKT 条件を満たす点が鞍点や局所最大点であることがある(問題 4.4)。(2) 逆に、制約想定が成り立たない最適解では KKT 条件が成り立たないことがある(例 4.6)。KKT 点を数値的に求める手法が返した点が最適であると言えるのは、問題が凸であるとき(定理 4.7)か、別の議論で確かめたときだけである。
4.3 凸問題での十分性
定理 4.7(凸問題での KKT 条件の十分性)U⊂Rn を開凸集合、f,g1,…,gm を U 上の微分可能な凸関数、h1,…,hp を一次関数とする。x∗∈U と λ,ν が KKT 条件を満たせば、x∗ は (P) の(U の中での)大域最適解である。
証明. x∈U を実行可能とする。λ≥0, gi(x)≤0, hj(x)=0 より f(x)≥L(x,λ,ν)。x↦L(x,λ,ν) は凸関数の非負結合と一次関数の和なので凸で微分可能、停留性より ∇xL(x∗,λ,ν)=0。第2章の 1 次条件(定理 2.14)より L(x,λ,ν)≥L(x∗,λ,ν)+∇xL(x∗,λ,ν)⊤(x−x∗)=L(x∗,λ,ν) で、相補性と h(x∗)=0 より L(x∗,λ,ν)=f(x∗)。よって f(x)≥f(x∗)。□
したがって、制約が一次式の凸問題(たとえば凸二次計画)では、命題 4.5 と定理 4.7 により「最適解であること」と「KKT 条件を満たすこと」が同値になる。KKT 条件を解くには、どの制約が有効かを仮定して等式として解き、乗数の符号と実行可能性を確かめればよい。
例 4.8(二次計画)
minimize(x1−2)2+(x2−3)2subject tox1+x2≤2,x2≤1,−x1≤0
は、点 a=(2,3) に最も近い実行可能な点を求める問題である。有効制約の組を仮定して解くと、次のようになる(乗数は有効な制約のもの。計算機でも確かめた)。
| 有効制約 |
点 x |
乗数 |
判定 |
| なし |
(2,3) |
— |
第 1・2 制約を破る |
| 第 1 |
(1/2,3/2) |
λ1=3 |
第 2 制約を破る |
| 第 2 |
(2,1) |
λ2=4 |
第 1 制約を破る |
| 第 1, 2 |
(1,1) |
λ1=λ2=2 |
KKT 条件を満たす |
| 第 2, 3 |
(0,1) |
λ2=4, λ3=−4 |
λ3<0 |
(第 3 だけ・第 1, 3 の組の点は実行不能で、3 つを同時に等号にする点はない。)たとえば第 1, 2 制約を有効とすると、x=(1,1) で停留性 2(x−a)+λ1(1,1)+λ2(0,1)=0 が (−2,−4)+(λ1,λ1+λ2)=0 となり、λ1=λ2=2≥0。第 3 制約は x1=1>0 で有効でなく λ3=0。凸問題なので、定理 4.7 より x∗=(1,1) が最適で、最適値は 1+4=5 である。
ヒント
実務では
二次計画や一般の凸最適化のソルバー(有効制約法・内点法など)は、最適解と一緒にラグランジュ乗数を返し、KKT 条件の残差(停留性・実行可能性・相補性がどれだけ破れているか)と、4.4 節の双対ギャップ f(x)−q(λ,ν) を停止基準に使う。弱双対性により、双対ギャップは「いまの解の値が最適値からどれだけ離れうるか」の保証になる。乗数は 4.6 節の意味で「その制約の値段」なので、どの制約が効いているか(ボトルネック)を知る手がかりにもなる。
4.4 ラグランジュ双対問題と弱双対性
(P) の関数がすべて定義される集合を D とし、D の点で制約を満たすものを実行可能解とする。この節の結果は D が凸でなくても成り立つ。
定義 4.9(ラグランジュ双対)λ∈Rm, ν∈Rp に対し
q(λ,ν)=x∈DinfL(x,λ,ν)∈[−∞,∞)
を双対関数 (dual function) という。λ≥0 のもとで q(λ,ν) を最大化する問題を (P) のラグランジュ双対問題、その最適値(上限)を d∗ という。
命題 4.10 q は凹関数である((P) が凸でなくてもよい)。
証明. 各 x について (λ,ν)↦L(x,λ,ν) は一次関数である。0<θ<1 とすると(−∞ を含む計算は θ⋅(−∞)=−∞ と約束する)、infx の中で θL(x,λ,ν)+(1−θ)L(x,λ′,ν′)≥θq(λ,ν)+(1−θ)q(λ′,ν′) なので、q(θ(λ,ν)+(1−θ)(λ′,ν′))≥θq(λ,ν)+(1−θ)q(λ′,ν′)。□
双対問題は、元の問題が凸でなくても、凹関数の最大化という凸最適化問題である。
定理 4.11(弱双対性, weak duality)x が (P) の実行可能解、λ≥0 ならば q(λ,ν)≤f(x)。特に d∗≤p∗。
証明. q(λ,ν)≤L(x,λ,ν)=f(x)+∑iλigi(x)+∑jνjhj(x)≤f(x)(λi≥0, gi(x)≤0, hj(x)=0)。□
p∗−d∗≥0 を双対ギャップ (duality gap) という。
例 4.12(線形計画)標準形 minimize c⊤x subject to Ax=b, x≥0 で、g(x)=−x, h(x)=Ax−b, D=Rn とすると、L=(c−λ+A⊤ν)⊤x−b⊤ν。x についての下限は、c−λ+A⊤ν=0 なら −b⊤ν、そうでなければ −∞ である。よって双対問題は「λ=c+A⊤ν≥0 のもとで −b⊤ν を最大化」で、y=−ν とおくと第3章の双対問題「A⊤y≤c のもとで b⊤y を最大化」に一致する。
例 4.13(例 4.8 の双対)a=(2,3)、制約を Gx≤β と書く(G の行は (1,1), (0,1), (−1,0)、β=(2,1,0))。L=∥x−a∥2+λ⊤(Gx−β) は x について強凸な二次関数で、x=a−21G⊤λ で最小になるので
q(λ)=−41∥G⊤λ∥2+λ⊤(Ga−β),Ga−β=(3,2,−2)
λ=(2,2,0) では G⊤λ=(2,4) で q=−5+10=5 となり、主問題の最適値 5 に等しい。双対ギャップは 0 である。
命題 4.14(最適性の証明書)x∗ が (P) の実行可能解、λ∗≥0 で、f(x∗)=q(λ∗,ν∗) ならば、次が成り立つ。
- x∗ は (P) の最適解、(λ∗,ν∗) は双対問題の最適解で、p∗=d∗。
- λi∗gi(x∗)=0(i=1,…,m)。
- x∗ は D 上で L(⋅,λ∗,ν∗) を最小にする。
逆に、(P) が定理 4.7 の仮定を満たし(D=U)、x∗ と λ∗,ν∗ が KKT 条件を満たせば、f(x∗)=q(λ∗,ν∗) である。
証明. q(λ∗,ν∗)≤L(x∗,λ∗,ν∗)=f(x∗)+∑iλi∗gi(x∗)≤f(x∗)=q(λ∗,ν∗) なので、すべて等号である。2 番目の等号から ∑iλi∗gi(x∗)=0 で、各項が 0 以下だから各項が 0。1 番目の等号が 3 である。1 は弱双対性から従う。逆:L(⋅,λ∗,ν∗) は凸で x∗ で勾配が 0 なので、1 次条件(第2章 定理 2.14)より x∗ で最小になり、q(λ∗,ν∗)=L(x∗,λ∗,ν∗)=f(x∗)(相補性)。□
特に、制約が一次式で f が C1 級の凸関数の問題では、最適解が存在すれば KKT 条件を満たす乗数があり(命題 4.5)、それが双対問題の最適解で、双対ギャップは 0 である。凸でない問題では双対ギャップが正になりうる(問題 4.7)。
4.5 スレーター条件と強双対性
非線形の凸問題で双対ギャップが 0 になるための代表的な十分条件がスレーター条件である。以下、D⊂Rn は凸集合、f,gi:D→R は凸関数、等式制約は h(x)=Hx−η(H∈Rp×n, rankH=p。冗長な等式は除いておく)とする。
定理 4.15(スレーター条件のもとでの強双対性, strong duality)スレーター条件「D の内点 x~ で gi(x~)<0(すべての i)かつ Hx~=η となるものがある」が成り立ち、p∗ が有限であるとする。このとき λ∗≥0, ν∗ で q(λ∗,ν∗)=p∗ となるものが存在する。すなわち d∗=p∗ で、双対問題は最適解をもつ。
証明. Rm×Rp×R の 2 つの集合
A={(u,v,t)∣ある x∈D で g(x)≤u, Hx−η=v, f(x)≤t},B={(0,0,s)∣s<p∗}
を考える。A は凸である:点 x,x′ が (u,v,t),(u′,v′,t′) を与えれば、f,gi の凸性と h の一次性より θx+(1−θ)x′ は θ(u,v,t)+(1−θ)(u′,v′,t′) を与える。B も凸で、どちらも空でない。(0,0,s)∈A(s<p∗)なら f(x)≤s<p∗ となる実行可能解 x があることになるので、A∩B=∅。第2章の分離定理(定理 2.11 (1) で C1=B, C2=A とする)より、(λ~,ν~,κ)=0 で、すべての (u,v,t)∈A と s<p∗ について
κs≤λ~⊤u+ν~⊤v+κt
となるものがある。(u,v,t)∈A なら u の成分や t を大きくしても A に属するので、右辺が下に有界であることから λ~≥0, κ≥0。s→p∗ として x∈D に対応する点を代入すると
κp∗≤λ~⊤g(x)+ν~⊤(Hx−η)+κf(x)(x∈D)(2)
κ>0 なら、κ で割ると L(x,λ~/κ,ν~/κ)≥p∗(x∈D)、すなわち q(λ~/κ,ν~/κ)≥p∗ で、弱双対性と合わせて等号が成り立つ。κ=0 とすると矛盾が生じることを示す。(2) で x=x~ とすると λ~⊤g(x~)≥0 で、gi(x~)<0, λ~≥0 より λ~=0。すると ν~=0 で、(2) は ν~⊤(Hx−η)≥0(x∈D)となる。rankH=p より H⊤ν~=0 で、x~ は D の内点だから小さい ε>0 で x=x~−εH⊤ν~∈D。このとき ν~⊤(Hx−η)=−ε∥H⊤ν~∥2<0 となり矛盾する(等式制約がなければ λ~=0, κ=0 がすでに (λ~,κ)=0 に反する)。□
系 4.16(スレーター条件のもとでの KKT 条件の必要性)定理 4.15 の仮定に加えて D が開集合で f,gi が微分可能とする。x∗ が (P) の最適解ならば、KKT 条件を満たす λ∗,ν∗ が存在する。
証明. 定理 4.15 の (λ∗,ν∗) は q(λ∗,ν∗)=p∗=f(x∗) を満たすので、命題 4.14 より相補性が成り立ち、x∗ は開集合 D 上で L(⋅,λ∗,ν∗) の最小点である。よって ∇xL(x∗,λ∗,ν∗)=0(第1章の 1 次の必要条件、定理 1.17)。□
例 4.17(スレーター条件がないと双対ギャップが生じうる)D=R2 で
minimizeex2subject tog(x)=∥x∥−x1≤0
を考える。g は凸で、∥x∥≤x1 は x2=0, x1≥0 と同値なので p∗=1。一方、L=ex2+λ(∥x∥−x1)≥0 で、x=(t3,−t) とすると ∥x∥−x1=t6+t2+t3t2≤2t1 より L≤e−t+2tλ→0(t→∞)。よって q(λ)=0(λ≥0)、d∗=0<1=p∗。g(x)<0 となる点がないので、スレーター条件は成り立たない。
4.6 感度の解釈
第3章で、線形計画の双対変数は右辺を動かしたときの最適値の変化率(シャドウプライス)を表した(定理 3.30)。一般の問題でも同じことが言える。制約をゆるめた問題
p∗(u,v)=inf{f(x)∣x∈D, gi(x)≤ui, hj(x)=vj}
を考える(p∗(0,0)=p∗)。
定理 4.18(感度)d∗=p∗ が有限で、(λ∗,ν∗) が双対問題の最適解であるとする。
- すべての (u,v) について p∗(u,v)≥p∗−λ∗⊤u−ν∗⊤v。
- p∗(u,v) が (0,0) で ui について偏微分可能ならば λi∗=−∂ui∂p∗(0,0)。vj について偏微分可能ならば νj∗=−∂vj∂p∗(0,0)。
証明. 1:x がゆるめた問題の実行可能解なら p∗=q(λ∗,ν∗)≤L(x,λ∗,ν∗)≤f(x)+λ∗⊤u+ν∗⊤v(λ∗≥0, g(x)≤u, h(x)=v)。x について下限をとればよい(実行可能解がなければ p∗(u,v)=+∞ で自明)。2:1 で (u,v)=(tei,0) とすると p∗(tei,0)−p∗≥−λi∗t。t>0 と t<0 でそれぞれ t で割って t→0 とすると ∂ui∂p∗≥−λi∗ と ≤−λi∗。ν∗ も同様。□
λi∗ が大きい制約は、少しゆるめると最適値が大きく改善し、少し厳しくすると大きく悪化する。λi∗=0 の制約は(微分可能なら)1 次の範囲では最適値に影響しない。例 4.8 では λ∗=(2,2,0) で、実際、第 1 制約を x1+x2≤2+u とすると最適解は (1+u,1)、最適値は (u−1)2+4 で、u=0 での微分は −2=−λ1∗ である。線形計画では p∗ は区分的に一次で、退化すると微分可能でないことがある(第3章 3.8 節のシャドウプライスの注意)。そのときは 1 の不等式だけが成り立つ。
4.7 応用例
ポートフォリオ最適化
例 4.1 の 3 資産で、目標の期待収益率 r を達成しつつ分散を最小にする(第1章 例 1.4 の平均分散モデル)。まず空売りを許し、μ⊤w=r, 1⊤w=1 のもとで w⊤Σw を最小化する。ラグランジュの条件 2Σw=γμ+δ1 と 2 つの制約から γ,δ を求めると、A=1⊤Σ−11, B=1⊤Σ−1μ, C=μ⊤Σ−1μ, Δ=AC−B2 として
γ=Δ2(Ar−B),δ=Δ2(C−Br),σ2(r):=minw⊤Σw=21(γr+δ)=ΔAr2−2Br+C
となる(Δ>0 は Σ−1 の定める内積でのコーシー–シュワルツの不等式による。μ が 1 の定数倍でないことを仮定する)。最小性は例 4.1 と同じ議論か、定理 4.7 で確かめられる。この例では
σ2(r)=1441705r2−18020r+58660,w(r)=(4883−9619r, 16r−81, 9613r−4829)
で、たとえば r=8 % では w=(7/48,3/8,23/48)、分散 5905/36≈164.0(標準偏差約 12.8 %)である(sympy で厳密に計算した)。drdσ2=Δ2(Ar−B)=γ であり、乗数 γ は目標収益率を上げたときの最小分散の増加率を表す(定理 4.18 の 2 にあたる。r=8 では γ=2315/36≈64.3)。
w1(r)=4883−9619r は r>166/19≈8.74 で負になる。つまり高い収益率を狙うと資産 1 を空売りすることになる。空売りを禁じて w≥0 を加え、収益の制約を r−μ⊤w≤0 として r=9 で解く。資産 1 を使わない(w1=0 が有効)と仮定すると、w2+w3=1, 7w2+10w3=9 から w=(0,1/3,2/3)、分散 2185/9≈242.8 である。ラグランジュ関数 w⊤Σw+γ(r−μ⊤w)+δ(1⊤w−1)−λ⊤w の停留性 2Σw−γμ+δ1−λ=0 に 2Σw=(140/3,270,1780/3) を入れ、λ2=λ3=0 として解くと γ=970/9, δ=4360/9, λ1=100 を得る。γ≥0, λ≥0 で相補性も成り立つので KKT 点であり、凸問題だから最適である(定理 4.7)。λ1=100>0 は空売りの禁止が効いていることを、γ=970/9≈107.8 は r=9 での最小分散の増加率を表す(目標収益率を 0.1 % 上げると、最小分散は約 10.8 増える)。実際、同じ計算を r のまま行うと λ1=380r−3320 で、166/19≤r≤10 では最適解は w=(0,(10−r)/3,(r−7)/3)、最小分散は (445r2−7040r+29500)/9 であり、その r=9 での微分は 970/9 である(sympy と数値最適化で確かめた)。
ヒント
実務では
平均分散最適化は μ と Σ の推定値に敏感である。Σ の固有値に 0 に近いものがあると Σ−1 が大きく変動し、推定誤差のわずかな違いで極端な配分(大きな空売りなど)が出やすい。実際の運用では、空売り禁止や銘柄ごとの上限といった制約を加えて極端な配分を抑えることが多い。そのとき乗数 λi は「その制約がどれだけ分散を押し上げているか」を示すので、制約の見直しの判断材料になる。
サポートベクターマシンの双対問題
ラベル yi∈{1,−1} のついたデータ xi∈Rn(i=1,…,N。両方のラベルがあるとする)を超平面 w⊤x+b=0 で分ける。ハードマージン SVM は
minimize21∥w∥2subject toyi(w⊤xi+b)≥1(i=1,…,N)
である(各点と超平面の距離が 1/∥w∥ 以上になるので、∥w∥ の最小化は余裕(マージン)の最大化を意味する。詳しくは 24 機械学習の数理 第4章で扱う)。データが超平面で狭義に分離できれば(すべての i で yi(w⊤xi+b)>0 となる (w,b) があれば)、それを定数倍して実行可能解が得られ、さらに 2 倍すれば制約を真に満たすのでスレーター条件が成り立つ。また、正のラベルの点 xi と負のラベルの点 xj について 1−w⊤xi≤b≤−1−w⊤xj なので、21∥w∥2 が一定値以下の実行可能解は有界閉集合をなし、最適解が存在する(第1章のワイエルシュトラスの定理、定理 1.9)。
ラグランジュ関数は L=21∥w∥2+∑iαi(1−yi(w⊤xi+b))(α≥0)である。b についての下限は ∑iαiyi=0 でなければ −∞、w については w=∑iαiyixi で最小になる。代入すると双対問題は
maximizei=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyjxi⊤xjsubject toα≥0,i=1∑Nαiyi=0
となる。定理 4.15 より双対ギャップは 0 で双対問題は最適解 α∗ をもち、命題 4.14 より主問題の最適解 (w∗,b∗) は L(⋅,α∗) を最小にするので w∗=∑iαi∗yixi、相補性より αi∗>0 なら yi(w∗⊤xi+b∗)=1 である。このような xi をサポートベクトルという。分類器はサポートベクトルだけで決まり、双対問題はデータを内積 xi⊤xj だけを通して含む(カーネル法への入口)。
例 4.19 正のラベルの点 (2,2),(2,3),(3,3) と負のラベルの点 (0,0),(1,0),(0,1) では、(2,2) に α=4/9、(1,0) と (0,1) に α=2/9、他に 0 を与えると、∑iαiyi=4/9−2/9−2/9=0 で、w=94(2,2)−92(1,0)−92(0,1)=(2/3,2/3)、b=1−w⊤(2,2)=−5/3。各点の yi(w⊤xi+b) は順に 1,5/3,7/3,5/3,1,1 で、実行可能性と相補性が成り立つ。KKT 条件を満たすので最適であり(定理 4.7)、分離する直線は x1+x2=5/2、マージンは 1/∥w∥=3/(22)≈1.06。双対の値 ∑iαi−21∥w∥2=8/9−4/9=4/9 は主問題の値 21∥w∥2=4/9 に等しい(数値最適化でも確かめた)。
分離できないデータには、はみ出しを許す変数 ξi≥0 を入れたソフトマージン SVM「minimize 21∥w∥2+C∑iξi subject to yi(w⊤xi+b)≥1−ξi, ξi≥0」(C>0)を使う。ξi≥0 の乗数を βi とすると、ラグランジュ関数の ξi の係数 C−αi−βi が 0 でなければ下限は −∞ なので、双対問題は目的関数がハードマージンと同じで、制約が ∑iαiyi=0, 0≤αi≤C(βi=C−αi≥0)になる。この問題は常にスレーター条件を満たし(ξi を大きくとればよい)、ハードマージンと同じ議論(ξi も目的関数で抑えられる)で主問題の最適解も存在する。相補性 βiξi=0 と αi(1−ξi−yi(w⊤xi+b))=0 から、αi=0 の点はマージンの外側(yi(w⊤xi+b)≥1)、0<αi<C の点はちょうどマージン上、αi=C の点はマージンの内側にはみ出しうる点である。
水の注入(water-filling)
n 本の通信路(周波数帯など)に合計 P>0 の送信電力を配分する。通信路 i の雑音の大きさを ai>0、配分する電力を xi とすると、ガウス雑音の通信路で送れる情報量は log(1+xi/ai) に比例する。そこで
maximizei=1∑nlog(ai+xi)subject tox≥0,1⊤x=P
を考える(∑ilogai だけ違う)。最小化 f(x)=−∑ilog(ai+xi) に直すと、f は開凸集合 D={x∣xi>−ai} 上の狭義凸関数で、制約は一次式である。実行可能領域はコンパクトなので最適解が存在し、命題 4.5 と定理 4.7 より、最適解は KKT 条件の解と一致する。KKT 条件は、λ≥0, ν について
−ai+xi1−λi+ν=0,λixi=0,x≥0,1⊤x=P
である。ν=ai+xi1+λi>0 なので θ=1/ν とおく。xi>0 なら λi=0 で xi=θ−ai(θ>ai)、xi=0 なら λi=ν−1/ai≥0 すなわち θ≤ai。合わせると
xi=max(θ−ai, 0),i=1∑nmax(θ−ai, 0)=P
左辺の和は θ の連続関数で、θ≤miniai で 0、そこから先は狭義単調増加で ∞ に発散するので、条件を満たす θ はただ一つ定まる。逆にこの x は λi=ν−1/(ai+xi)≥0 とともに KKT 条件を満たす。底の高さが ai の容器に体積 P の水を注ぐと水位が θ になる、という図式から water-filling(注水定理)とよばれる。雑音の大きい通信路(ai≥θ)には電力を配らない。
例 4.20 a=(0.5,1,1.5,3), P=2 とする。3 本に配ると仮定すると 3θ−3=2 で θ=5/3 で、1.5<5/3<3 なので仮定と整合する。最適解は x=(7/6,2/3,1/6,0)、ν=3/5、λ4=3/5−1/3=4/15、最適値は 3log(5/3)+log3≈2.631 である。ν は等式制約 1⊤x−P=0 の乗数なので、定理 4.18(スレーター条件は xi=P/n で成り立つ)より、総電力を増やしたときの最適値の増加率は ν=1/θ=0.6 である(P の近くでは 3 本に配る形が変わらず θ=(P+3)/3 なので、最適値 3logθ+log3 を P で直接微分しても 1/θ を得る)。電力を受け取るどの通信路でも限界的な増加 1/(ai+xi) が 1/θ にそろっている。次のコードは水位を二分法で求める。
import numpy as np
def water_filling(a, P, iters=100):
lo, hi = a.min(), a.min() + P # 水位 theta はこの区間にある
for _ in range(iters):
theta = (lo + hi) / 2
if np.maximum(theta - a, 0).sum() > P:
hi = theta
else:
lo = theta
return np.maximum(theta - a, 0), theta
a = np.array([0.5, 1.0, 1.5, 3.0])
x, theta = water_filling(a, 2.0)
print(x.round(6), round(theta, 6), np.log(a + x).sum().round(6))
[1.166667 0.666667 0.166667 0. ] 1.666667 2.631089
(θ=miniai+P では最小の ai の項だけで和が P 以上になるので、水位はこの区間にある。総電力を少し変えて最適値の差分をとると、増加率が 0.6 になることも確かめられる。)
まとめ
- 等式制約の最適解では、勾配が一次独立なら ∇f+∑jνj∇hj=0(ラグランジュの未定乗数法)。
- 不等式制約を含む問題の最適解では、LICQ などの制約想定のもとで KKT 条件(停留性・主実行可能性・双対実行可能性 λ≥0・相補性 λigi=0)が成り立つ。証明は陰関数定理で実行可能な曲線を作り、ファルカスの補題を使う。制約が一次式なら制約想定は要らない。
- 制約想定がないと、最適解でも KKT 条件が成り立たないことがある。凸でない問題では、KKT 点が最適とは限らない。
- 凸問題(f,gi 凸、hj 一次)では KKT 条件は十分条件である。
- 双対関数 q(λ,ν)=infxL(x,λ,ν) は常に凹で、弱双対性 d∗≤p∗ が成り立つ。f(x∗)=q(λ∗,ν∗) は両方の最適性の証明書である。
- 凸問題でスレーター条件が成り立てば双対ギャップは 0 で、双対問題は最適解をもつ(分離定理による)。スレーター条件がないとギャップが生じうる。
- 最適な乗数は感度を表す:λi∗=−∂p∗/∂ui(微分可能なとき)。
- 応用:二次計画は有効制約を仮定して解ける。平均分散モデルの乗数は収益率と分散の交換比率、SVM の双対はサポートベクトルとカーネル法、water-filling の乗数は水位の逆数を与える。
演習問題
問題 4.1 ★ KKT 条件を使って、x1+x2≤2, x1≥0, x2≥0 のもとで (x1−1)2+(x2−2)2 を最小化せよ。
解答
点 (1,2) は x1+x2≤2 を破るので、第 1 制約だけが有効と仮定する。x1+x2=2 と停留性 2(x1−1)+λ1=0, 2(x2−2)+λ1=0 から x1−1=x2−2、よって x=(1/2,3/2), λ1=1≥0。x1,x2>0 なので非負制約は有効でなく、その乗数は 0。KKT 条件を満たし、凸問題なので(定理 4.7)最適解は (1/2,3/2)、最適値は 1/2 である。
問題 4.2 ★ x1+x2≥1 のもとで x12+x22 を最小化する問題の双対関数 q(λ) を求め、双対問題を解いて双対ギャップが 0 であることを確かめよ。また乗数の意味を定理 4.18 で説明せよ。
解答
g(x)=1−x1−x2 として L=x12+x22+λ(1−x1−x2)。xi=λ/2 で最小になり、q(λ)=λ−λ2/2。λ≥0 での最大は λ∗=1 で d∗=1/2。主問題の最適解は (1/2,1/2) で p∗=1/2(スレーター条件は x=(1,1) で成り立つ)。制約を x1+x2≥1−u とゆるめると p∗(u)=(1−u)2/2 で、dudp∗(0)=−1=−λ∗。右辺を 1 から少し上げると、最適値は 1 単位あたり約 λ∗=1 増える。
問題 4.3 ★★ (x1−1)2+x22≤1, (x1+1)2+x22≤1 のもとで x1+x2 を最小化する。(1) 最適解を求め、そこで LICQ もスレーター条件も成り立たず、KKT 条件を満たす乗数が存在しないことを示せ。(2) 双対関数を求め、d∗=p∗ だが双対問題の最大値は達成されないことを示せ。
解答
(1) 2 つの閉円板は原点だけを共有するので、実行可能解は x∗=(0,0) だけで p∗=0。∇g1(0)=(−2,0), ∇g2(0)=(2,0) は一次従属で LICQ は成り立たず、g1,g2<0 となる点もない。停留性 (1,1)+λ1(−2,0)+λ2(2,0)=0 の第 2 成分は 1=0 となり、乗数は存在しない。
(2) g1=x12−2x1+x22, g2=x12+2x1+x22 なので、s=λ1+λ2>0 のとき L=s(x12+x22)+(1+2λ2−2λ1)x1+x2 を平方完成して
q(λ)=−4s(1+2λ2−2λ1)2+1<0
(s=0 なら q=inf(x1+x2)=−∞)。λ1=λ2+1/2 として λ2→∞ とすると q=−1/(4s)→0 なので d∗=0=p∗ だが、q<0 なので最大値は達成されない。スレーター条件がないと、ギャップが 0 でも双対問題が最適解をもたないことがある。
問題 4.4 ★★ x12+x22≤1 のもとで x12−x22 を最小化する。ある分析者は「原点 (0,0) は λ=0 で KKT 条件を満たすので最適解である」と結論した。この結論は正しいか。KKT 点をすべて求めて答えよ。
解答
正しくない。停留性は 2x1+2λx1=0, −2x2+2λx2=0。λ≥0 より 1+λ>0 なので x1=0。x2=0 なら制約は有効でなく λ=0:原点(値 0)。x2=0 なら λ=1>0 で、相補性から x12+x22=1、すなわち (0,±1)(値 −1)。実行可能領域はコンパクトなので最小値が存在し、境界では ∇g=2x=0、内部では有効制約がないので、どの実行可能解でも LICQ が成り立つ。よって最小点は KKT 点のどれかで(定理 4.4)、値を比べると最小値は −1、最適解は (0,±1)。原点は f(0,t)=−t2<0 となる鞍点である。問題が凸でないので、KKT 条件は十分条件ではない。
問題 4.5 ★★(確率単体への射影)a∈Rn に対し、1⊤x=1, x≥0 のもとで 21∥x−a∥2 を最小にする x は、ある τ∈R について xi=max(ai−τ,0) と書けることを KKT 条件から示せ。a=(0.9,0.5,−0.2) のときの x と τ を求めよ。
解答
狭義凸関数を空でないコンパクト凸集合上で最小化するので最適解がただ一つあり、制約は一次式なので KKT 条件と同値である(命題 4.5、定理 4.7)。停留性は xi−ai−λi+τ=0(τ は等式制約の乗数)。xi>0 なら λi=0 で xi=ai−τ。xi=0 なら λi=τ−ai≥0、すなわち ai≤τ。合わせて xi=max(ai−τ,0)。τ は ∑imax(ai−τ,0)=1 で決まる(左辺は τ について連続で、正の範囲では狭義単調減少)。a=(0.9,0.5,−0.2) では、最初の 2 成分が正と仮定すると (0.9−τ)+(0.5−τ)=1 より τ=0.2。0.5−0.2>0, −0.2−0.2<0 と整合し、x=(0.7,0.3,0)、λ3=0.4(計算機でも確かめた)。water-filling と同じ形の解である。
問題 4.6 ★★ A を n 次実対称行列とし、∥x∥2=1 のもとで x⊤Ax を最小化する(凸でない問題である)。ラグランジュ双対問題の最適値が A の最小固有値 λmin に等しく、双対ギャップが 0 であることを示せ。A の行が (2,1), (1,2) のとき最適解を求めよ。
解答
h(x)=x⊤x−1 として L=x⊤(A+νI)x−ν。A+νI が半正定値なら x=0 で下限 −ν をとり、負の固有値をもてばその固有ベクトルの方向で −∞ になる。A+νI の固有値は A の固有値 +ν なので、q(ν)=−ν(ν≥−λmin)、−∞(それ以外)。よって d∗=λmin。一方 p∗=min∥x∥=1x⊤Ax=λmin(02-linear-algebra 第8章 命題 8.29)なので、ギャップは 0 である。凸でない問題でもギャップが 0 になることはある。例の A の固有値は 1,3 で、最適解は固有値 1 の単位固有ベクトル ±(1,−1)/2、最適値は 1。
問題 4.7 ★★(ラグランジュ緩和)x∈{0,1}2、2x1+2x2≤3 のもとで −x1−x2 を最小化する。不等式制約だけを双対化し(D={0,1}2)、双対関数と d∗ を求めて、双対ギャップが正であることを示せ。
解答
実行可能解は (0,0),(1,0),(0,1) で p∗=−1。L=(2λ−1)(x1+x2)−3λ を D 上で最小にすると、2λ−1≥0 なら x=(0,0) で −3λ、2λ−1<0 なら x=(1,1) で λ−2。よって q(λ)=λ−2(0≤λ≤1/2)、−3λ(λ≥1/2)で、最大値は d∗=q(1/2)=−3/2。双対ギャップは 1/2>0 である。D が凸でないので定理 4.15 は使えない。それでも d∗ は p∗ の下界として、整数計画の分枝限定法(第7章)で使われる(この例では x∈[0,1]2 にゆるめた線形計画の最適値 −3/2 と一致する)。
問題 4.8 ★★ ある二次計画の実装は、有効制約の組を一つずつ試し、等式として解いた点が実行可能なら、それを最適解として返す(乗数の符号は調べない)。例 4.8 で、この実装が第 2, 3 制約の組を最初に試すとどうなるか。どこが危ないかを説明せよ。
解答
例 4.8 の表のとおり、第 2, 3 制約を等式とした点は x=(0,1) で、x1+x2=1≤2 なので実行可能である。この実装は値 (0−2)2+(1−3)2=8 の点を返すが、最適値は 5(x=(1,1))である。この点の乗数は λ3=−4<0 で、双対実行可能性を破っている。負の乗数は、その制約を等号に保つのをやめて内側に入ると目的関数が下がることを意味する。実際 x=(t,1)(0<t≤1)は実行可能で、f=(t−2)2+4 は t=0 で傾き −4 で減少している。つまり x1≥0 を有効にしておく理由がない。KKT 条件の 4 つ(とくに λ≥0)をすべて確かめてはじめて、凸問題での最適性が保証される(定理 4.7)。