この章の目標
- 生産計画・輸送・ポートフォリオ・最小二乗・ロジスティック回帰・最短路を、決定変数・目的関数・制約の形に定式化できる
- 最適値と最適解を区別し、最適値が有限でも最適解が存在しない例を挙げられる
- ワイエルシュトラスの定理と強圧性から最小点の存在を証明し、連続性・閉集合・強圧性の仮定が外れると何が起こるかを説明できる
- 局所最適と大域最適を区別し、制約なし問題の 1 次・2 次の必要条件と 2 次の十分条件を証明して使える(半正定値と正定値の違いを含めて)
- 凸性が「局所最適なら大域最適」を保証することを知り、問題が凸かどうかを見分けられる
前提:01-calculus 第7章(勾配・ヘッセ行列・テイラーの定理・コンパクト集合)、02-linear-algebra 第8章(正定値性)。例 1.5・例 1.22 では 02-linear-algebra 第7章 の最小二乗法を使う。コンパクト性の一般論は 03-topology 第5章 にある。
利益を最大にするには、2 種類の製品をそれぞれ何個作ればよいか。輸送費を最小にするには、どの倉庫からどの店舗へどれだけ運べばよいか。「この顧客は買うか」を予測するモデルの係数は、どう決めればよいか。見かけは違うが、これらはすべて「制約 x∈X のもとで、目的関数 f(x) を最小(または最大)にする x を求めよ」という形に書ける。このような問題を最適化問題 (optimization problem) という。
数学が答えるべき問いは、(1) 最良の選択は存在するか、(2) 候補が最良であることをどう確かめるか、(3) どう計算するか、の三つである。本章では定式化と (1)・(2) の基本を扱う。(3) は第3章・第5章〜第7章、(2) を強める双対性は第3章・第4章で扱う。一般には、近くのどの点よりもよい点(局所最適解)が全体で最良(大域最適解)とは限らない。この溝を埋める性質が凸性で、第2章以降の中心になる。
ベクトルは縦ベクトルとし、転置を A⊤ で表す(02-linear-algebra の tA と同じ)。⟨x,y⟩=x⊤y は標準内積、∥x∥ はユークリッドノルムで、x≥0 は各成分が 0 以上であることを表す。
1.1 最適化問題の形
定義 1.1(最適化問題)集合 X⊂Rn と関数 f:X→R について、f を X 上で最小にする問題を
minimizef(x)subject tox∈X
と書く。x を決定変数 (decision variable)、f を目的関数 (objective function)、X を実行可能領域 (feasible region)、X の元を実行可能解 (feasible solution) という。p∗=infx∈Xf(x)∈[−∞,+∞] を最適値 (optimal value) といい(X=∅ なら p∗=+∞ とする)、f(x∗)=p∗ となる x∗∈X を最適解 (optimal solution) または大域最小点という。最適解の全体を argminx∈Xf(x) と書く。X=∅ のとき実行不能 (infeasible)、p∗=−∞ のとき非有界 (unbounded) であるという。
subject to(s.t.)は「という条件のもとで」の意味である。X は多くの場合、不等式制約 gi(x)≤0 と等式制約 hj(x)=0 で与えられる。X=Rn(または開集合)のとき制約なし問題 (unconstrained problem) という。最大化は −f の最小化として扱う。最適値は常に定まるが、最適解は存在するとは限らない(X=R, f(x)=ex なら p∗=0 だが、ex=0 となる x はない)。
1.2 定式化の例
定式化とは、現実の問題から「何を決めるか(決定変数)」「何をよくしたいか(目的関数)」「何を守るべきか(制約)」を取り出して式にすることである。
例 1.2(生産計画)製品 A, B の 1 個あたりの利益は 4 万円、3 万円である。A を 1 個作るには機械 2 時間・作業員 1 時間、B には機械 1 時間・作業員 3 時間が必要で、1 日に使えるのは機械 10 時間、作業員 15 時間までとする。1 日の生産量を x1,x2(分割できる量とみなす)とすると
maximize4x1+3x2subject to2x1+x2≤10,x1+3x2≤15,x1,x2≥0
である。目的関数も制約も一次式なので線形計画問題 (linear programming problem, LP) という。実行可能領域は頂点 (0,0), (5,0), (3,4), (0,5) の四角形で、頂点での値は 0,20,24,15 である。(3,4) が最適であることは、次のように確かめられる:任意の実行可能解について
4x1+3x2=59(2x1+x2)+52(x1+3x2)≤59⋅10+52⋅15=24
で、(3,4) で等号が成り立つ。係数 9/5, 2/5 は「機械・作業員の時間を 1 時間増やすと、(変化が小さい範囲で)最大利益がいくら増えるか」を表す。このような最適性の証明書を体系的に作るのが第3章の双対問題であり、係数はシャドウプライスと呼ばれる。
例 1.3(輸送問題)倉庫 i=1,…,m の在庫を si、店舗 j=1,…,n の需要を dj、倉庫 i から店舗 j への 1 単位あたりの輸送費を cij とする。輸送量 xij を決定変数として
minimizei,j∑cijxijsubject toj∑xij≤si,i∑xij=dj,xij≥0
これも線形計画問題である。制約を足し合わせると ∑jdj=∑i,jxij≤∑isi なので、全需要が全在庫を超えると実行不能になる。
例 1.4(ポートフォリオ選択)n 個の資産の収益率を確率変数 R1,…,Rn、期待値を μi=E[Ri]、共分散行列を Σ=(Cov(Ri,Rj))i,j とする。資金の配分の割合を w∈Rn とすると、ポートフォリオの収益率 w⊤R の期待値は μ⊤w、分散は ∑i,jwiwjCov(Ri,Rj)=w⊤Σw である。目標の期待収益率 r を確保しつつ分散を最小にする問題
minimizew⊤Σwsubject toμ⊤w≥r,w1+⋯+wn=1,w≥0
を平均分散モデル (mean-variance model) という(マーコウィッツ, 1952 年)。目的関数が二次式で制約が一次式の問題を二次計画問題 (quadratic programming problem) という。w≥0 は空売りの禁止で、外すと答えが変わる(問題 1.6)。分散は負にならないので Σ は半正定値であり、第2章で見るように、このことがこの問題を「解きやすく」している。
例 1.5(最小二乗法)データ (ai,bi)(ai∈Rn, bi∈R, i=1,…,m)に線形モデル b≈a⊤x をあてはめる。ai⊤ を第 i 行とする行列を A とすると、問題は制約なし問題
minimizef(x)=∥Ax−b∥2=i=1∑m(ai⊤x−bi)2(x∈Rn)
である。02-linear-algebra 第7章 の定理 7.19 では、解が正規方程式 A⊤Ax=A⊤b の解であることを射影の幾何で示した。例 1.22 で最適性条件の立場から見直す。
例 1.6(ロジスティック回帰)特徴量 ai∈Rn とラベル yi∈{0,1}(購入したかどうか、など)の組が m 個ある。シグモイド関数 σ(t)=1/(1+e−t) により「y=1 となる確率は σ(a⊤x)」というモデルを立て、パラメータ x を最尤法で決める。負の対数尤度 −∑i(yilogσ(ai⊤x)+(1−yi)log(1−σ(ai⊤x))) は、logσ(t)=t−log(1+et), log(1−σ(t))=−log(1+et) を使って整理すると
ℓ(x)=i=1∑m(log(1+eai⊤x)−yiai⊤x)
となり、これを x∈Rn で最小化する。解の公式はなく、第5章・第6章の反復法で解く。
例 1.7(最短路問題)道路網を有向グラフ G=(V,E) で表し、道路 e の所要時間を ce≥0 とする。地点 s から t(=s)への経路で所要時間の和が最小のものを求める問題を最短路問題 (shortest path problem) という。道路 e を使うとき xe=1、使わないとき xe=0 とし、v から出る道路・v に入る道路の集合を δ+(v), δ−(v) とすると
minimizee∈E∑cexesubject toe∈δ+(v)∑xe−e∈δ−(v)∑xe=⎩⎨⎧1−10(v=s)(v=t)(それ以外),xe∈{0,1}
と書ける(実行可能解は経路に閉路が付いたものでもありうるが、ce≥0 なので閉路を除いても費用は増えない)。変数が 0 か 1 に限られる問題を 0-1 整数計画問題という。実行可能解は有限個なので最小値は存在する(空でなければ)が、経路の数は指数関数的に増えうるので全部は調べられない。第7章でダイクストラ法を扱う。
ヒント
実務では
最適化の仕事の大半は定式化にある。よくある失敗は、(1) 制約の書き忘れ(ソルバーが「非有界」と報告したら、まず制約の欠落を疑う)、(2) 「できれば守りたい」条件を厳格な制約にして実行不能になる(違反量に罰則を掛けて目的関数に入れる「ソフト制約」にできる)、(3) 整数であるべき変数(トラックの台数など)を連続変数で解いて四捨五入する(実行不能や大きな損失になりうる。第7章)、(4) 単位の不統一で係数の桁が大きく違い、数値計算が不安定になる(第2章の条件数)、である。
1.3 最小値の存在
最適解が存在しない問題に反復法を適用すると、答えらしきものが出力されても意味をもたない。
例 1.8(最適解が存在しない例)
- X=R, f(x)=ex。x→−∞ で値が下限 0 に近づくが、達成されない。
- X=(0,1], f(x)=x。値を下限 0 に近づける点列は X の外の点 0 に収束する(X が閉でない)。
- X=[0,1] で、f(0)=1、0<x≤1 では f(x)=x。下限 0 は達成されない(f が 0 で連続でない)。
- X=R2, f(x,y)=(xy−1)2+x2。f=0 なら x=0 かつ xy=1 で矛盾するので f>0 だが、f(t,1/t)=t2→0(t→0)なので下限 0 は達成されない。
定理 1.9(ワイエルシュトラスの定理, Weierstrass theorem)K⊂Rn を空でないコンパクト集合(有界閉集合)、f:K→R を連続関数とする。このとき f は K 上で最小値と最大値をとる。
証明. 最小値について示す(最大値は −f に適用する)。m=infKf∈[−∞,∞) とし、f(xk)→m となる xk∈K をとる(m=−∞ なら f(xk)<−k とする)。K はコンパクトなので(01-calculus 第7章 定義 7.4・定理 7.5)、部分列 xkj が K の点 x∗ に収束する。f の連続性より f(x∗)=limjf(xkj)=m。特に m は有限で、x∗ で最小値をとる。□
これは 01-calculus 第7章 定理 7.7、03-topology 第5章 系 5.9 と同じ主張である。有界でない実行可能領域(例 1.5・1.6)のために、次の条件を導入する。
定義 1.10(強圧性, coercivity)X⊂Rn とする。関数 f:X→R が
∀M∈R, ∃R>0, ∀x∈X, ∥x∥>R⇒f(x)>M
を満たす(「x∈X, ∥x∥→∞ のとき f(x)→+∞」)とき、f は X 上で強圧的 (coercive) であるという。X が有界ならこの条件は自動的に成り立つ。
定理 1.11(強圧的な関数の最小値の存在)X⊂Rn を空でない閉集合、f:X→R を連続かつ強圧的な関数とする。このとき f は X 上で最小値をとる。
証明. x0∈X をとり、下位集合 (sublevel set) S={x∈X∣f(x)≤f(x0)} を考える。x0∈S である。強圧性の定義で M=f(x0) とした R をとると、∥x∥>R の x∈X は f(x)>f(x0) を満たすので、S は半径 R の閉球に含まれ、有界である。S は閉集合でもある:xk∈S, xk→x なら、X が閉なので x∈X(01-calculus 第7章 命題 7.3)、連続性から f(x)=limkf(xk)≤f(x0)。よって S はコンパクトで、定理 1.9 より f は S 上のある点 x∗ で最小値をとる。x∈X∖S なら f(x)>f(x0)≥f(x∗) なので、x∗ は X 全体での最小点である。□
例 1.8 では、1 と 4 は強圧性、2 は X の閉性、3 は f の連続性が欠けている。どの仮定も外せない。
補足
定理 1.9 の最小値の部分と定理 1.11 の証明では、連続性は「xk→x ならば f(x)≤liminfkf(xk)」という不等式の形でしか使っていない(定理 1.9 では、f(x∗)≤liminfjf(xkj)=m と f(x∗)≥m から f(x∗)=m が出る)。この性質を下半連続性 (lower semicontinuity) といい、最小値の存在を述べる部分は f が下半連続なら成り立つ(最大値の存在には逆向きの不等式、上半連続性が要る)。例 1.8 の 3 で f(0)=−1 と定め直すと、下半連続になり 0 で最小値をとる。無限次元の最適化では有界閉集合がコンパクトとは限らず、弱位相を使う直接法が必要になる(18-pde 第6章 定理 6.2)。
例 1.12(最小二乗法の解の存在)例 1.5 で rankA=n なら、x=0 で x⊤A⊤Ax=∥Ax∥2>0 なので A⊤A は正定値で、最小固有値を λ>0 とすると ∥Ax∥≥λ∥x∥(02-linear-algebra 第8章 命題 8.29)。よって ∥Ax−b∥≥λ∥x∥−∥b∥ で、f は強圧的であり最小点をもつ。rankA<n なら Az=0 となる z=0 の方向に f は一定で強圧的でないが、それでも最小点は存在する(02-linear-algebra 第7章 定理 7.19)。強圧性は必要条件ではない。
例 1.13(ロジスティック回帰と完全分離)例 1.6 の ℓ の各項 log(1+et)−yt は、y=1 なら log(1+e−t)、y=0 なら log(1+et) に等しく、正である。いま、yi=1 なら ai⊤v>0、yi=0 なら ai⊤v<0 となる v がある(データが完全に分離できる)とする。s→∞ のとき ℓ(sv) の各項は log(1+e−s∣ai⊤v∣)→0 となるので、最適値 0 は達成されず、最尤推定値は存在しない(統計学の側からの扱いは 22-statistics 第6章 定理 6.11)。一方、λ>0 について
ℓλ(x)=ℓ(x)+2λ∥x∥2
は ℓλ(x)≥2λ∥x∥2 より強圧的なので、データによらず最小点をもつ(リッジ正則化、L2 正則化)。次のコードは、完全に分離できる 1 次元のデータに勾配法(第5章)を適用したものである。
import numpy as np
a = np.array([-2.0, -1.0, 1.0, 2.0]) # 特徴量
y = np.array([0.0, 0.0, 1.0, 1.0]) # ラベル(x > 0 で完全に分離できる)
obj = lambda x, lam: np.sum(np.log1p(np.exp(a * x)) - y * a * x) + lam / 2 * x**2
grad = lambda x, lam: np.sum((1 / (1 + np.exp(-a * x)) - y) * a) + lam * x
for lam in [0.0, 0.1]:
x = 0.0
for k in range(1, 100001):
x -= 0.1 * grad(x, lam) # 勾配法(学習率 0.1)
if k in (100, 10000, 100000):
print(f"lam={lam}: k={k:6d} x={x:7.4f} obj={obj(x, lam):.6f}")
lam=0.0: k= 100 x= 3.1751 obj=0.085373
lam=0.0: k= 10000 x= 7.6053 obj=0.000996
lam=0.0: k=100000 x= 9.9041 obj=0.000100
lam=0.1: k= 100 x= 2.2520 obj=0.475615
lam=0.1: k= 10000 x= 2.2772 obj=0.475503
lam=0.1: k=100000 x= 2.2772 obj=0.475503
正則化なしでは目的関数は 0 に近づくが、x は logk 程度の速さで増え続けて収束しない。λ=0.1 では x≈2.2772 に収束する。
1.4 局所最適と大域最適
定義 1.14(局所最小点と大域最小点)X⊂Rn、f:X→R、x∗∈X とする。ある ε>0 があって、∥x−x∗∥<ε を満たすすべての x∈X で f(x∗)≤f(x) となるとき、x∗ を局所最小点(局所最適解, local minimizer)という。さらに x=x∗ なら f(x∗)<f(x) となるとき狭義の局所最小点という。すべての x∈X で f(x∗)≤f(x) となるとき大域最小点(大域最適解, global minimizer)という。
例 1.15 f(x)=3x4−4x3−12x2 は f′(x)=12x(x+1)(x−2) より停留点 −1,0,2 をもち、そこでの f′′(x)=36x2−24x−24 の値は 36,−24,72 である。よって x=−1,2 は狭義の局所最小点(f(−1)=−5, f(2)=−32)、x=0 は局所最大点である。f は強圧的なので最小点が存在し、それは停留点のどれか(定理 1.17)だから、大域最小点は x=2 である。x=−1 は局所最小点だが大域最小点ではない。
勾配法(第5章)xk+1=xk−0.01f′(xk) をこの f に 200 回適用すると、x0=−2,−0.5 からは局所最小点 −1 に、x0=0.5,3 からは 2 に収束する(計算機で確かめられる)。勾配法は近くの情報しか使わないので、局所最小点に入ると抜け出せない。
ヒント
実務では
非凸な問題(ニューラルネットワークの学習、非線形な物理モデルのパラメータ推定など)では、ソルバーが「収束した」と報告しても、得られたのは局所最小点か 1.5 節の停留点にすぎないことが多い。出発点を変えて何度も解いて最良のものを採る(マルチスタート)、凸な問題で近似して最適値の下界を求め、得られた値との差を評価する、といった対策がとられる。問題が凸なら、局所最小点は大域最小点であり(第2章)、この心配はいらない。
1.5 制約なし問題の最適性条件
この節では U⊂Rn を開集合、f:U→R とする(実行可能領域の内点にある局所最小点にも同じ議論が使える)。ヘッセ行列を ∇2f(x)=(∂i∂jf(x))i,j と書く(01-calculus 第7章の Hf(x))。
補題 1.16(降下方向)f が x∈U で微分可能で、d∈Rn が ⟨∇f(x),d⟩<0 を満たすならば、ある tˉ>0 があって、0<t<tˉ のとき f(x+td)<f(x) となる。このような d を降下方向 (descent direction) という。
証明. 微分可能性より f(x+td)=f(x)+t⟨∇f(x),d⟩+o(t)(t→0)。c=−⟨∇f(x),d⟩>0 とおくと、十分小さい t>0 で o(t) の項の絶対値は ct/2 以下なので、f(x+td)−f(x)≤−ct/2<0。□
定理 1.17(1 次の必要条件)x∗∈U が f の局所最小点で、f が x∗ で微分可能ならば、∇f(x∗)=0 である。
証明. ∇f(x∗)=0 なら、d=−∇f(x∗) は ⟨∇f(x∗),d⟩=−∥∇f(x∗)∥2<0 を満たすので、補題 1.16 より x∗ のいくらでも近くに値のより小さい点があり、局所最小性に反する。□
∇f(x)=0 となる点を停留点 (stationary point) といい、停留点のうち局所最小点でも局所最大点でもないものを鞍点 (saddle point) という。
定理 1.18(2 次の必要条件)f を U 上の C2 級関数とする。x∗∈U が局所最小点ならば、∇f(x∗)=0 であり、かつ ∇2f(x∗) は半正定値である。
証明. ∇f(x∗)=0 は定理 1.17 による。d∈Rn を任意にとると、テイラーの定理(ペアノ剰余の形、01-calculus 第7章 7.6 節の (1) 式)より t→0 のとき
f(x∗+td)=f(x∗)+2t2d⊤∇2f(x∗)d+o(t2)
十分小さい t=0 で左辺は f(x∗) 以上なので、21d⊤∇2f(x∗)d+o(t2)/t2≥0。t→0 として d⊤∇2f(x∗)d≥0。□
定理 1.19(2 次の十分条件)f を U 上の C2 級関数とし、x∗∈U で ∇f(x∗)=0 かつ ∇2f(x∗) が正定値であるとする。このとき x∗ は狭義の局所最小点である。さらに、∇2f(x∗) の最小固有値を λ とすると、ある ε>0 について ∥x−x∗∥<ε ならば f(x)≥f(x∗)+4λ∥x−x∗∥2 である。
証明. 正定値行列の固有値は正で(02-linear-algebra 第8章 定理 8.13)、すべての h で h⊤∇2f(x∗)h≥λ∥h∥2(同 命題 8.29)。テイラーの定理より f(x∗+h)=f(x∗)+21h⊤∇2f(x∗)h+r(h), r(h)=o(∥h∥2) と書ける。∥h∥<ε ならば x∗+h∈U かつ ∣r(h)∣≤4λ∥h∥2 となる ε>0 をとれば、f(x∗+h)≥f(x∗)+2λ∥h∥2−4λ∥h∥2=f(x∗)+4λ∥h∥2 であり、h=0 なら右辺は f(x∗) より大きい。□
定理 1.19 の前半は 01-calculus 第7章 定理 7.24 (1) と同じである。必要条件は半正定値、十分条件は正定値で、その間にはすき間がある。ヘッセ行列が半正定値だが固有値に 0 を含む停留点は、2 次までの情報では判定できない。
例 1.20(2 次の条件で判定できない例)(1) x4, x3, −x4 はいずれも x=0 で f′=f′′=0 で、2 次の必要条件を満たす。しかし x4 は狭義の最小、x3 は極値でなく、−x4 は狭義の最大である。(2) x2+y4, x2+y3, x2−y4 の原点でのヘッセ行列はどれも diag(2,0) だが、原点はそれぞれ狭義の最小点・鞍点・鞍点である(後の二つは f(0,y) が負の値をとる)。(3) x4 の原点は狭義の局所最小点だが f′′=0 である。2 次の十分条件は必要条件ではない。
注意
「勾配が 0 でヘッセ行列が半正定値だから局所最小点」は誤りである(例 1.20 の x3, −x4)。「勾配が 0 でヘッセ行列が正定値だから最小点」も、一般には局所最小点までしか言えない(例 1.15 の x=−1)。ソフトウェアの「勾配のノルムが許容誤差以下になった」という報告は、停留点の近くに来たことしか意味しない。
二次関数ではテイラー展開が 2 次で終わるので、最適性が完全に判定できる。
命題 1.21(二次関数の最小化)Q を n 次実対称行列、c∈Rn、f(x)=21x⊤Qx−c⊤x とする。
- Q が半正定値で Qx∗=c ならば、x∗ は大域最小点であり、大域最小点の全体は {x∣Qx=c} である。特に Q が正定値なら、大域最小点は Q−1c ただ一つである。
- Q が負の固有値をもつとき、または Q が半正定値で c∈/ImQ のとき、f は下に有界でない。
したがって、f が最小値をもつための必要十分条件は「Q が半正定値かつ c∈ImQ」である。
証明. Q の対称性を使って展開すると、任意の x,h について
f(x+h)=f(x)+(Qx−c)⊤h+21h⊤Qh(1.1)
特に ∇f(x)=Qx−c である。(1) Qx∗=c なら (1.1) より f(x∗+h)=f(x∗)+21h⊤Qh≥f(x∗)。逆に大域最小点 x では定理 1.17 より Qx−c=0。Q が正定値なら正則である。(2) Qv=μv, μ<0, v=0 なら f(tv)=−tc⊤v+2μt2∥v∥2→−∞(t→∞)。c∈/ImQ のとき:Qx=0 なら x⊤Qz=(Qx)⊤z=0 なので KerQ⊂(ImQ)⊥ で、次元を比べると等号が成り立ち、Rn=ImQ⊕KerQ(直交直和)。c=c1+c0(c1∈ImQ, c0∈KerQ)と分けると c0=0 で、f(tc0)=−t∥c0∥2→−∞。最後の主張は (1)・(2) から従う。□
例 1.22(最小二乗法、再訪)f(x)=∥Ax−b∥2 は、定数項 ∥b∥2 を除いて Q=2A⊤A(半正定値)、c=2A⊤b とした命題 1.21 の形である。A⊤Ax=0 なら ∥Ax∥2=x⊤A⊤Ax=0 なので KerA⊤A=KerA で、直交補空間をとると ImA⊤A=ImA⊤∋A⊤b。よって最小点が存在し、その全体は正規方程式 A⊤Ax=A⊤b の解全体である。02-linear-algebra 第7章 定理 7.19 を、射影を使わずに導いたことになる。
例 1.23(存在・停留点・比較)f(x,y)=x4+y4−4xy の最小値を求める。(i) x4+y4≥21(x2+y2)2 と 4∣xy∣≤2(x2+y2) より、r=∥(x,y)∥ として f≥2r4−2r2→∞。f は強圧的で、最小点が存在する。(ii) 最小点は停留点である。∇f=(4x3−4y,4y3−4x)=0 より y=x3, x=y3=x9 で x∈{0,±1}、停留点は (0,0), (1,1), (−1,−1)。(iii) f(0,0)=0, f(±1,±1)=−2(複号同順)なので、最小値は −2 で、最小点は 2 つある。ヘッセ行列
∇2f(x,y)=(12x2−4−412y2)
は (±1,±1) で固有値 8,16(正定値)、原点で ±4(不定値、鞍点)であり、定理 1.18・1.19 と整合する。「存在を示す → 停留点を列挙する → 値を比べる」手順は、停留点を列挙できない大きな問題では使えない。
1.6 凸性への導入
例 1.15 や例 1.23 では、局所的な条件だけでは大域最小点を見分けられず、すべての停留点を比べる必要があった。この困難が起こらない問題のクラスがある。
定義 1.24(凸集合・凸関数)集合 C⊂Rn が、任意の x,y∈C と t∈[0,1] について (1−t)x+ty∈C を満たすとき、C を凸集合 (convex set) という。凸集合 C 上の関数 f が、任意の x,y∈C と t∈[0,1] について f((1−t)x+ty)≤(1−t)f(x)+tf(y) を満たすとき、f を凸関数 (convex function) という。凸集合上で凸関数を最小化する問題を凸最適化問題 (convex optimization problem) という。
凸集合は「どの 2 点を結ぶ線分も含む」集合、凸関数は「グラフ上の 2 点を結ぶ弦がグラフより下に来ない」関数である(1 変数の場合は 01-calculus 第4章 定義 4.28)。第2章で証明するように、凸最適化問題では次が成り立つ。
- 局所最小点は大域最小点である。f(y)<f(x∗) となる y があれば、凸性から線分上の点 x∗+t(y−x∗)(0<t≤1)でも値は f(x∗) より小さく、t→0 でそれらは x∗ にいくらでも近づくからである。
- 開凸集合上の微分可能な凸関数では、∇f(x∗)=0 が大域最小の十分条件にもなる。
例 1.2〜1.6 はいずれも凸最適化問題である(例 1.4 は Σ が半正定値であることによる)。最短路問題(例 1.7)の実行可能領域は有限集合で凸ではないが、グラフの特別な構造のおかげで効率よく解ける。例 1.15 の 4 次関数は f′′(0)<0 なので凸でない。
大まかにいえば、凸最適化問題では局所的な情報だけで大域的な最適性が判定でき、線形計画や凸二次計画などには多項式時間のアルゴリズムが知られている。一方、非凸な問題や整数変数を含む問題は一般に難しく、0-1 整数計画は NP 困難な問題を含む(第7章)。問題を凸に定式化できるか、できないなら凸な問題でどう近似するかが、実際に最適化を使うときの最も重要な判断の一つである。
まとめ
- 最適化問題は、決定変数・目的関数・制約(実行可能領域)で定式化する。最適値 p∗=infx∈Xf(x) は常に定まるが、最適解は存在するとは限らない。
- 生産計画・輸送は線形計画、ポートフォリオ選択は二次計画、最小二乗とロジスティック回帰は制約なし問題、最短路は 0-1 整数計画として書ける。
- コンパクト集合上の連続関数は最小値をとる(ワイエルシュトラスの定理)。閉集合上の連続で強圧的な関数も最小値をとる。連続性・閉性・強圧性のどれが欠けても反例がある。
- 完全に分離できるデータではロジスティック回帰の最尤推定値は存在しないが、リッジ正則化を加えると最小点が存在する。
- 局所最小点は大域最小点とは限らず、勾配法は出発点によって異なる局所最小点に収束しうる。
- 1 次の必要条件 ∇f(x∗)=0、2 次の必要条件「∇2f(x∗) が半正定値」、2 次の十分条件「∇f(x∗)=0 かつ ∇2f(x∗) が正定値なら狭義の局所最小」。半正定値だが正定値でない場合は判定できない。
- 二次関数 21x⊤Qx−c⊤x が最小値をもつのは Q が半正定値かつ c∈ImQ のときに限り、最小点は Qx=c の解である。
- 凸最適化問題では局所最小点が大域最小点になり、∇f=0 が最適性の十分条件になる(第2章)。
演習問題
問題 1.1 ★ ジャム X, Y の 1 瓶あたりの利益は 500 円、400 円である。X 1 瓶には果物 1 kg と加工 2 時間、Y 1 瓶には果物 1 kg と加工 1 時間が必要で、1 日に使えるのは果物 6 kg、加工 10 時間までである。(1) 利益(百円単位)を最大にする問題を線形計画問題として定式化せよ(瓶の数は分割できるとする)。(2) 2 つの制約に適当な非負の数を掛けて足すことで、任意の実行可能解の利益が 28 百円以下であることを示せ。(3) 最適解を求めよ。
解答
(1) X, Y の瓶の数を x1,x2 とすると、maximize 5x1+4x2 subject to x1+x2≤6, 2x1+x2≤10, x1,x2≥0。
(2) 果物の制約に y1≥0、加工の制約に y2≥0 を掛けて足すと (y1+2y2)x1+(y1+y2)x2≤6y1+10y2。左辺の係数を目的関数に合わせるには y1+2y2=5, y1+y2=4、すなわち y1=3, y2=1 とすればよく、
5x1+4x2=3(x1+x2)+(2x1+x2)≤3⋅6+10=28
(3) 等号が成り立つのは x1+x2=6 かつ 2x1+x2=10、すなわち (x1,x2)=(4,2) のときで、これは実行可能である。よって最適解は X を 4 瓶、Y を 2 瓶で、最大利益は 2800 円。(頂点 (0,0), (5,0), (4,2), (0,6) での値 0,25,28,24 を比べても確かめられる。)
問題 1.2 ★ 次の問題は最小値をもつか。もつならば求め、もたないならば最適値を答えよ。
(1) X=(0,∞) で f(x)=x+1/x (2) X=R で f(x)=e−x2 (3) X={(x,y)∣y≥x2−1} で f(x,y)=x2+y (4) X=R で f(x)=log(1+e−x)
解答
(1) もつ。相加相乗平均の不等式より x+1/x≥2 で、等号は x=1。最小値 2。X は閉集合でないが最小値は存在する(定理 1.11 の条件は十分条件である)。
(2) もたない。f>0 で、∣x∣→∞ のとき f→0 なので、最適値 0 は達成されない。
(3) もつ。X 上で f=x2+y≥2x2−1≥−1 であり、(0,−1)∈X で等号が成り立つから、最小値は −1。(X は閉集合で、X 上 y≥−1 より f≥max(2x2−1,y) なので、f は強圧的でもある。)
(4) もたない。f>0 で、x→∞ のとき f→0 なので、最適値 0 は達成されない。ラベル y=1、特徴量 a=1 の 1 個のデータに対するロジスティック回帰の損失であり、例 1.13 の完全分離の最も簡単な場合である。
問題 1.3 ★ Q1, Q2 を
Q1=(1111),Q2=(100−1)
とする。f(x)=21x⊤Qx−c⊤x(x∈R2)が最小値をもつかを判定し、もつならば最小点全体と最小値を求めよ。(1) Q=Q1, c=(1,1)⊤ (2) Q=Q1, c=(1,−1)⊤ (3) Q=Q2, c=0
解答
Q1 の固有値は 2(固有ベクトル (1,1)⊤)と 0(固有ベクトル (1,−1)⊤)で半正定値、ImQ1 は (1,1)⊤ で張られる直線である。
(1) c∈ImQ1 なので最小値をもつ(命題 1.21)。最小点全体は Q1x=c、すなわち直線 x1+x2=1 で、その上では x⊤Q1x=(x1+x2)2=1, c⊤x=1 なので最小値は −21。
(2) c∈/ImQ1 なので下に有界でない。実際 x=t(1,−1)⊤ では Q1x=0 より f(x)=−2t→−∞。
(3) Q2 は負の固有値をもつので下に有界でない(f(0,t)=−t2/2)。原点は停留点だが鞍点である。
問題 1.4 ★★ f(x,y)=x3−3x+y2 の停留点をすべて求めて分類せよ。また、f が最小値をもつかどうか答えよ。
解答
∇f=(3x2−3,2y)=0 より停留点は (±1,0)。ヘッセ行列は diag(6x,2) で、(1,0) では正定値なので狭義の局所最小点(定理 1.19、f=−2)、(−1,0) では不定値なので鞍点(f=2)。しかし f(x,0)=x3−3x→−∞(x→−∞)なので最小値はもたない。局所最小点がただ一つでも、大域最小点とは限らず、大域最小点が存在しないこともある。
問題 1.5 ★★ ある分析者が C2 級関数 f:R2→R を勾配法で最小化した。ソルバーは点 x^ で停止し、∇f(x^)≈0、ヘッセ行列の固有値は 3.1 と 0.0 と報告した。分析者は「ヘッセ行列が半正定値なので x^ は局所最小点であり、勾配法で得た点なので f の最小点である」と結論した。この推論の誤りを反例とともに指摘し、さらに何を調べるべきか述べよ。
解答
(a) 半正定値は局所最小の必要条件(定理 1.18)であって十分条件ではない。x2+y3 や x2−y4 の原点は勾配が 0、ヘッセ行列の固有値が 2 と 0 だが鞍点である(例 1.20)。(b) 局所最小点でも大域最小点とは限らない(例 1.15 の x=−1)。
調べるべきこと:固有値 0 の固有ベクトルの方向に f を 1 変数関数として調べる(3 次以上の項の符号)、f が凸かどうか(凸なら停留点は大域最小点。第2章)、出発点を変えて解き直すと同じ値になるか。表示が 0.0 の固有値が実は小さな負の値である可能性もある。
問題 1.6 ★★ 2 つの資産の収益率の共分散行列を
Σ=(2ρρ3)
(単位は %²)とし、w1+w2=1 のもとで分散 w⊤Σw を最小にする。(1) ρ=1 のとき、最適な w と最小分散を求めよ。(2) ρ=2.2 のとき、最適な w と最小分散を求めて解釈せよ。(3) ρ=2.2 で空売りを禁止する(w≥0)と、答えはどう変わるか。
解答
detΣ=6−ρ2 は ρ=1,2.2 で 5, 1.16 と正なので、どちらの Σ も正定値である。w2=1−w1 を代入すると
φ(w1)=2w12+3(1−w1)2+2ρw1(1−w1)=(5−2ρ)w12−(6−2ρ)w1+3
ρ<2.5 なら φ は下に凸な放物線で、w1=5−2ρ3−ρ で最小値 3−5−2ρ(3−ρ)2 をとる。
(1) w=(2/3,1/3)、最小分散 5/3≈1.67。単独の分散 2, 3 より小さい(分散投資の効果)。
(2) w=(4/3,−1/3)、最小分散 29/15≈1.93。相関が強いので、資産 2 を 1/3 だけ空売りして共通の変動を打ち消すほうが分散が小さくなる。
(3) w1∈[0,1] に制限される。頂点 w1=4/3 は区間の外にあるので φ は [0,1] で減少し、最適解は w=(1,0)、最小分散は φ(1)=2 で、最適解は実行可能領域の境界に移る。実務では、推定誤差を含む Σ で最適化すると (2) のような極端な配分が出やすく、制約や正則化で抑えることが多い。