MathLabs

応用数学と計算数学

凸最適化

凸集上で凸関数を最小化する: なぜすべての局所最小が大域的最小になるのか、最適性を保証するKKT条件、そして難しい探索をより易しい探索に変える双対性について。

直観なぜ形が重要か:凸と非凸

常に下り坂へ進むことで地形の最も低い点を探すところを想像してほしい。地形がひとつのお椀のような形なら、この貪欲な戦略はどこから始めても必ず本当の最低点を見つける。いくつものくぼみ、尾根、鞍状の峠がある地形では、同じ戦略が最低点でも何でもないくぼみで止まってしまうことがある。凸最適化はまさにこの「ひとつのお椀」の場合を研究し、なぜそれがこれほど扱いやすいのかを正確に説明する。

上向きに開いた椀型の3D曲面(放物面)で、原点にただ1つの最低点があり、その点からどの方向にも曲面が上向きに湾曲している。
z=x2+y2z = x^2 + y^2:放物面。どの方向にも上に湾曲しているため、最も低い点はちょうど1つだけ存在する。
水平のある軸に沿って上に、それと直交する軸に沿って下に湾曲する3D鞍型曲面で、中央の平坦な点で交わる。その点は臨界点だが極小点ではない。
z=x2−y2z = x^2 - y^2:鞍面。一方の軸に沿って上に、もう一方の軸に沿って下に湾曲しているため、原点の平坦な点は極小でも極大でもない。

同じ罠の1次元版: 3次曲線には、全体で最も低い点ではない谷(局所最小)が存在しうる。なぜなら曲線はさらに遠くでも下降し続けるからだ。凸性はまさにこれを排除する性質である。

3次曲線 y = xの3乗 マイナス 3x は左下から上昇し、x = -1 付近で極大に達し、x = 1 付近で極小まで下がり、その後再び上昇する。原点には変曲点が示されている。
y=x3−3xy = x^3 - 3x。印のついた点は極大、極小、変曲点である — この極小は大域的最小ではない。なぜなら曲線は −∞-\infty に向かうからである、x→−∞x \to -\infty のとき。

大学凸集合と凸関数

定義: 凸集合

集合 C⊆RnC \subseteq \mathbb{R}^n が凸であるとは、任意の x,y∈Cx, y \in C と任意の θ∈[0,1]\theta \in [0,1] に対して点 θx+(1−θ)y\theta x + (1-\theta) y もまた CC に属すること、すなわち CC の任意の2点を結ぶ線分全体が CC に含まれることをいう。

定義: 凸関数

関数 f:C→Rf : C \to \mathbb{R} が凸集合 CC 上で凸であるとは、任意の x,y∈Cx, y \in C と θ∈[0,1]\theta \in [0,1] に対して f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)f(\theta x + (1-\theta) y) \le \theta f(x) + (1-\theta) f(y) が成り立つことをいう:ff のグラフは、その上の任意の2点を結ぶ線分の上側に来ることは決してない。

f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y),θ∈[0,1]f(\theta x + (1-\theta) y) \le \theta f(x) + (1-\theta) f(y), \qquad \theta \in [0,1]

ff が2回微分可能なとき、この条件はヘッセ行列 ∇2f(x)\nabla^2 f(x) が CC のすべての点で半正定値であることと同値である — これは多変数版の f′′≥0f'' \ge 0 にあたる。凸最適化問題とは、凸関数 ff を凸な実行可能集合 CC 上で最小化する問題である(例えば C={x:gi(x)≤0,hj(x)=0}C = \{x : g_i(x) \le 0, h_j(x) = 0\} で各 gig_i が凸、各 hjh_j がアフィンである場合)。

ff が凸集合 CC 上で凸であるとき、x⋆x^\star が ff の CC 上での局所最小ならば、x⋆x^\star は ff の CC 上での大域的最小である。

なぜ正しいのか?

x⋆x^\star が局所最小に過ぎず、ある y∈Cy \in C に対して f(y)<f(x⋆)f(y) < f(x^\star) であると仮定する。凸性により、ff は x⋆x^\star から yy への線分の、x⋆x^\star に任意に近い点でその下側になければならない: 小さい θ>0\theta > 0 に対して f(θy+(1−θ)x⋆)≤θf(y)+(1−θ)f(x⋆)<f(x⋆)f(\theta y + (1-\theta) x^\star) \le \theta f(y) + (1-\theta) f(x^\star) < f(x^\star) が成り立つ。これは x⋆x^\star が局所最小であることと矛盾する。なぜなら点 θy+(1−θ)x⋆\theta y + (1-\theta)x^\star は x⋆x^\star に任意に近づくからである。

証明

x⋆∈Cx^\star \in C を局所最小とし、半径 r>0r > 0 が存在して ∥z−x⋆∥≤r\|z - x^\star\| \le r を満たすすべての z∈Cz \in C に対して f(z)≥f(x⋆)f(z) \ge f(x^\star) が成り立つとする。背理法のため、ある点 y∈Cy \in C が存在して f(y)<f(x⋆)f(y) < f(x^\star) となると仮定する。

任意の θ∈(0,1)\theta \in (0, 1) に対し、集合と関数の凸性から zθ=θy+(1−θ)x⋆∈Cz_\theta = \theta y + (1 - \theta)x^\star \in C および f(zθ)≤θf(y)+(1−θ)f(x⋆)=f(x⋆)+θ(f(y)−f(x⋆))<f(x⋆)f(z_\theta) \le \theta f(y) + (1 - \theta)f(x^\star) = f(x^\star) + \theta(f(y) - f(x^\star)) < f(x^\star) が成り立つ。

∥zθ−x⋆∥=θ∥y−x⋆∥\|z_\theta - x^\star\| = \theta \|y - x^\star\| であるから、0<θ≤r∥y−x⋆∥0 < \theta \le \dfrac{r}{\|y - x^\star\|} を満たすように選べば ∥zθ−x⋆∥≤r\|z_\theta - x^\star\| \le r かつ f(zθ)<f(x⋆)f(z_\theta) < f(x^\star) となり、局所最小であることに矛盾する。

大学制約付き問題とKKT条件

制約のない微分可能な凸関数 ff に対しては、x⋆x^\star が大域的最小であることと ∇f(x⋆)=0\nabla f(x^\star) = 0 であることは同値である。制約があるとき — f(x)f(x) を、制約 gi(x)≤0g_i(x) \le 0(i=1,…,mi=1,\dots,m)および hj(x)=0h_j(x) = 0(j=1,…,pj=1,\dots,p)のもとで最小化するとき — 各不等式に非負の乗数 λi≥0\lambda_i \ge 0 を、各等式に自由な乗数 νj∈R\nu_j \in \mathbb{R} を付けてラグランジュ関数を導入する:

L(x,λ,ν)=f(x)+∑i=1mλi gi(x)+∑j=1pνj hj(x)\mathcal{L}(x,\lambda,\nu) = f(x) + \sum_{i=1}^m \lambda_i\, g_i(x) + \sum_{j=1}^p \nu_j\, h_j(x)

正則条件(例えばスレーター条件: すべての gi(x)<0g_i(x) < 0 かつ hj(x)=0h_j(x) = 0 を満たす点が存在すること)を満たす微分可能な凸問題において、点 x⋆x^\star が最適であることと、乗数 λ⋆,ν⋆\lambda^\star, \nu^\star が存在して次を満たすことは同値である: (1) 停留性 ∇xL(x⋆,λ⋆,ν⋆)=0\nabla_x \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = 0; (2) 主実行可能性 gi(x⋆)≤0g_i(x^\star) \le 0, hj(x⋆)=0h_j(x^\star) = 0; (3) 双対実行可能性 λi⋆≥0\lambda_i^\star \ge 0; (4) 相補スラック性 λi⋆gi(x⋆)=0\lambda_i^\star g_i(x^\star) = 0 がすべての ii で成り立つ。

なぜ正しいのか?

相補スラック性は、不等式制約 gi(x)≤0g_i(x) \le 0 が点 x⋆x^\star において非有効である(gi(x⋆)<0g_i(x^\star) < 0 なので境界は x⋆x^\star を押しておらず、その乗数は λi⋆=0\lambda_i^\star = 0 となる)か、または有効である(gi(x⋆)=0g_i(x^\star) = 0 なので境界の壁が力 λi⋆≥0\lambda_i^\star \ge 0 で押し返せる)かのどちらかであることを述べている。このとき停留性は、−∇f(x⋆)-\nabla f(x^\star) が有効な壁の外向き法線 ∇gi(x⋆)\nabla g_i(x^\star) の非負結合と釣り合うことを表す。

証明

まず、(x⋆,λ⋆,ν⋆)(x^\star, \lambda^\star, \nu^\star) がKKT条件を満たすとする。λi⋆≥0\lambda_i^\star \ge 0 であり制約関数は凸またはアフィンであるためラグランジュ関数 x↦L(x,λ⋆,ν⋆)x \mapsto \mathcal{L}(x, \lambda^\star, \nu^\star) は凸関数となり、停留条件 ∇xL(x⋆,λ⋆,ν⋆)=0\nabla_x \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = 0 からこの点はラグランジュ関数を全空間で最小化する。

gi(x)≤0g_i(x) \le 0 と hj(x)=0h_j(x) = 0 を満たす任意の実行可能点 xx に対し、相補スラック性 λi⋆gi(x⋆)=0\lambda_i^\star g_i(x^\star) = 0 より f(x⋆)=L(x⋆,λ⋆,ν⋆)≤L(x,λ⋆,ν⋆)=f(x)+∑i=1mλi⋆gi(x)+∑j=1pνj⋆hj(x)≤f(x)f(x^\star) = \mathcal{L}(x^\star, \lambda^\star, \nu^\star) \le \mathcal{L}(x, \lambda^\star, \nu^\star) = f(x) + \sum_{i=1}^m \lambda_i^\star g_i(x) + \sum_{j=1}^p \nu_j^\star h_j(x) \le f(x) が成り立ち、大域的最適性が示される。

逆にスレーター条件のもとでは、強双対性により双対最適乗数が存在して f(x⋆)=g(λ⋆,ν⋆)=inf⁡xL(x,λ⋆,ν⋆)≤L(x⋆,λ⋆,ν⋆)=f(x⋆)+∑i=1mλi⋆gi(x⋆)≤f(x⋆)f(x^\star) = g(\lambda^\star, \nu^\star) = \inf_x \mathcal{L}(x, \lambda^\star, \nu^\star) \le \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = f(x^\star) + \sum_{i=1}^m \lambda_i^\star g_i(x^\star) \le f(x^\star) が成り立つ。この不等式列はすべて等号でなければならず、それにより停留条件と相補スラック性が導かれる。

例: 直線上で原点に最も近い点

f(x,y)=x2+y2f(x,y) = x^2 + y^2 を、制約 x+y=1x + y = 1 のもとで最小化せよ。

解答

ff(放物面)と等式 h(x,y)=x+y−1=0h(x,y) = x + y - 1 = 0(アフィン)はいずれも凸問題を定める。ラグランジュ関数は L(x,y,ν)=x2+y2+ν(x+y−1)\mathcal{L}(x,y,\nu) = x^2 + y^2 + \nu(x + y - 1) である。停留条件から 2x+ν=02x + \nu = 0 および 2y+ν=02y + \nu = 0 が得られ、したがって x=yx = y となる。これを x+y=1x + y = 1 に代入すると x⋆=y⋆=12x^\star = y^\star = \tfrac{1}{2} となり、最小値は f(x⋆,y⋆)=12f(x^\star, y^\star) = \tfrac{1}{2} である。問題が凸であるため、このKKT点は自動的に大域的最小となる。

例: 相補スラック性による有効な不等式制約の解法

不等式制約 g(x)=x−1≤0g(x) = x - 1 \le 0 のもとで f(x)=(x−3)2f(x) = (x - 3)^2 を最小化せよ。

解答

ラグランジュ関数 L(x,λ)=(x−3)2+λ(x−1)\mathcal{L}(x, \lambda) = (x - 3)^2 + \lambda(x - 1) を作る。目的関数は狭義凸で制約はアフィンであるため、KKT条件(停留性 ∂L∂x=2(x−3)+λ=0\dfrac{\partial \mathcal{L}}{\partial x} = 2(x - 3) + \lambda = 0、主実行可能性 x−1≤0x - 1 \le 0、双対実行可能性 λ≥0\lambda \ge 0、相補スラック性 λ(x−1)=0\lambda(x - 1) = 0)が必要十分条件となる。

相補スラック性から2つの場合を調べる:もし λ=0\lambda = 0 ならば停留条件より x=3x = 3 となるが、これは x−1≤0x - 1 \le 0 に反する。

したがって制約は有効でなければならず、x⋆=1x^\star = 1 および λ⋆=2(3−1)=4>0\lambda^\star = 2(3 - 1) = 4 > 0 が得られ、これは λ≥0\lambda \ge 0 を満たす。唯一の大域的最小解は x⋆=1x^\star = 1 であり、最適値は f(1)=4f(1) = 4 である。

発展双対性と凸性を超える大域的最適化

L(x,λ,ν)\mathcal{L}(x,\lambda,\nu) を xx に関して(制約なしで!)最小化することで、ラグランジュ双対関数 g(λ,ν)=inf⁡xL(x,λ,ν)g(\lambda,\nu) = \inf_x \mathcal{L}(x,\lambda,\nu) が定義される。gg は (λ,ν)(\lambda,\nu) のアフィン関数の各点下限であるため、元の問題が凸でなくても gg は常に凹関数である。任意の λ≥0\lambda \ge 0 と任意の実行可能点 xx に対し、各項は λigi(x)≤0\lambda_i g_i(x) \le 0 および νjhj(x)=0\nu_j h_j(x) = 0 を満たすので、g(λ,ν)≤f(x)g(\lambda,\nu) \le f(x) となる。g(λ,ν)g(\lambda,\nu) を λ≥0\lambda \ge 0 のもとで最大化する問題は双対問題と呼ばれ、その最適値 d⋆d^\star は常に弱双対性 d⋆≤p⋆d^\star \le p^\star(主問題の最適値)を満たす。d⋆=p⋆d^\star = p^\star のとき強双対性が成り立つといい、双対ギャップ p⋆−d⋆p^\star - d^\star はゼロになる。

主線形計画問題 min⁡{c⊤x:Ax=b,  x≥0}\min\{c^\top x : Ax = b,\; x \ge 0\} が最適解 x⋆x^\star を持つならば、その双対問題 max⁡{b⊤y:A⊤y≤c}\max\{b^\top y : A^\top y \le c\} も最適解 y⋆y^\star を持ち、両者の最適値は一致する: c⊤x⋆=b⊤y⋆c^\top x^\star = b^\top y^\star。

なぜ正しいのか?

線形計画問題は多面体の実行可能集合を持つ凸問題である。多面体制約では内点の仮定は不要であり、分離超平面定理(ファルカシュの補題)によって双対ギャップがゼロとなる双対乗数 y⋆y^\star の存在が保証される。一般の凸計画問題では、スレーター条件が満たされれば強双対性が成り立つ。

証明

Ax=bAx = b、x≥0x \ge 0 を満たす任意の主実行可能ベクトルと A⊤y≤cA^\top y \le c を満たす任意の双対実行可能ベクトルに対し、内積をとることで弱双対性 b⊤y=(Ax)⊤y=x⊤(A⊤y)≤x⊤c=c⊤xb^\top y = (Ax)^\top y = x^\top(A^\top y) \le x^\top c = c^\top x が得られる。

乗数 s≥0s \ge 0 を用いてラグランジュ関数 L(x,y,s)=c⊤x+y⊤(b−Ax)−s⊤x=b⊤y+(c−A⊤y−s)⊤x\mathcal{L}(x, y, s) = c^\top x + y^\top(b - Ax) - s^\top x = b^\top y + (c - A^\top y - s)^\top x を作る。制約のない主変数について下限をとると、c−A⊤y−s=0c - A^\top y - s = 0 のときに限り有限な双対値が得られ、双対制約と双対目的関数 g(y,s)=b⊤yg(y, s) = b^\top y が導かれる。

x⋆x^\star が最適値 p⋆=c⊤x⋆p^\star = c^\top x^\star をもつ主最適解であるとき、ファルカシュの補題(多面錐に対する超平面分離)により A⊤y⋆≤cA^\top y^\star \le c かつ b⊤y⋆≥p⋆b^\top y^\star \ge p^\star を満たすベクトル y⋆y^\star の存在が保証される。これと弱双対性を合わせれば b⊤y⋆=c⊤x⋆b^\top y^\star = c^\top x^\star が従う。

Rn\mathbb{R}^n における滑らかな凸最適化の3つのアルゴリズム族
手法の族1ステップの情報1ステップの計算量精度 ε\varepsilon までの反復数
勾配法 / 加速勾配法(ネステロフ)1次(∇f\nabla f)O(n)O(n)O(1/ε)O(1/\varepsilon) または O(1/ε)O(1/\sqrt{\varepsilon})
ニュートン法2次(∇f,∇2f\nabla f, \nabla^2 f)O(n3)O(n^3)(連立一次方程式)局所的に O(log⁡log⁡(1/ε))O(\log\log(1/\varepsilon))
内点法(バリア法)−∑ln⁡(−gi)-\sum \ln(-g_i) の2次情報ニュートン1ステップあたり O(n3)O(n^3)O(m log⁡(1/ε))O(\sqrt{m}\,\log(1/\varepsilon))

R\mathbb{R} 全体で凸である関数はどれか?

凸最適化問題において、局所最小である点は

KKT条件における相補スラック性 λi⋆gi(x⋆)=0\lambda_i^\star g_i(x^\star) = 0 の意味は

実行可能かつ有界な最適解を持つ線形計画問題に対して、強双対性が示すのは

参考文献

  1. Stephen Boyd, Lieven Vandenberghe (2004). Convex Optimization
  2. Yurii Nesterov (2004). Introductory Lectures on Convex Optimization: A Basic Course
  3. Harold W. Kuhn, Albert W. Tucker (1951). Nonlinear Programming · DOI:10.1006/hmat.2000.2289
  4. Sébastien Bubeck (2015). Convex Optimization: Algorithms and Complexity · arXiv:1405.4980