位置: 数学編 第29回 / 前提: M3(集合と写像)、M14(期待値) / 数学編: M29 / この回でできるようになること: イェンセンの不等式を使って、凸関数の期待値と期待値の凸関数の大小を示すことができる
目次
0. 物語 ― 微分が0でも最小でない点
コストを最小にしたいエンジニアが、ある関数の傾きを計算しました。ちょうどゼロになる点を見つけたので、「ここが最小だ」と結論を出して設計に組み込みました。ところが後で別の人が確認すると、その点の少し左側では値がマイナスに下がり、少し右側では値がプラスに上がっていました。傾きがゼロだったのは、坂の底ではなく、下り坂と上り坂の境目だったのです。
具体的には、3乗の関数を考えます。原点での傾きはゼロです。しかし原点の少し左、マイナス0.1のところでは関数の値はマイナス0.001になり、少し右の0.1のところではプラス0.001になります。原点よりも小さい値が左側にあるのですから、原点は最小点ではありません。最大点でもありません。こうした点は変曲点と呼ばれます。
なぜこの失敗が起きたのでしょうか。「傾きがゼロなら最小」という判断が正しいのは、関数が凸――つまり下にふくらんだ形をしている場合に限ります。凸でない関数では、傾きゼロの点が谷底とは限りません。
凸という性質は、最適化だけでなく、ばらつきと価値の関係にも効いてきます。ある量の平均が同じでも、ばらつきが大きいほど「折れ曲がった関数」を通した値の平均は大きくなります。これがイェンセンの不等式であり、オプションの価値がばらつきとともに上がる理由の核心です。この回では、凸関数が持つこれらの性質を、省略なしに証明します。
1. 動機 ― ばらつきが大きいと価値が上がるのはなぜか
この回を読み終えると、イェンセンの不等式を使って、凸関数の期待値と期待値の凸関数の大小を示すことができます。
コールオプションのペイオフ max(S−K,0) を考えます。原資産 S の期待値が同じでも、S のばらつきが大きいほどペイオフの期待値は大きくなります。これは直感的にはわかりますが、なぜそうなるのかを一行で説明するのは難しいかもしれません。
答えは凸性です。max(x−K,0) は凸関数であり、凸関数には「期待値の関数は、関数の期待値を超えない」という性質があります。これがイェンセンの不等式です。ばらつきが大きいほど両辺の差が広がるので、ペイオフの期待値が膨らみます。
今回はイェンセンの不等式を証明し、凸関数が持つ最適化上の好ましい性質(局所最小=大域最小)と、二階微分による凸性の判定法も示します。
この記事で証明すること
- THM-M29-1 凸関数 f と可積分な確率変数 X について、f(E[X])≤E[f(X)] が成り立ちます。
- THM-M29-2 凸関数の局所的な最小点は、必ず大域的な最小点です。
- THM-M29-3 二回微分可能な関数が凸であることと、ヘッセ行列が至る所で半正定値であることは同値です。
2. 設定と仮定 ― 凸関数と期待値
この記事で使う仮定と定義をまとめます。
- 定義域: 関数 f は実数の区間 I(1変数)または凸集合 C⊂Rn(多変数)の上で定義します。
- 凸関数: 任意の x,y∈I と任意の λ∈[0,1] に対し
f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y)(1.1)
が成り立つとき、f を凸関数と呼びます。幾何学的には、グラフ上の任意の2点を結ぶ線分がグラフの上側にあるということです。
- 狭義凸: (1.1) で x=y かつ 0<λ<1 のとき等号が成り立たないものを狭義凸と呼びます。
- 凹関数: −f が凸であるとき、f を凹関数と呼びます。不等号の向きが逆になります。
- 期待値: M14 で定義した E[X] の意味で使います。X は可積分、すなわち E[∣X∣]<∞ を仮定します。
- 多変数: ヘッセ行列の話(THM-M29-3)では f:Rn→R を扱いますが、イェンセンの不等式(THM-M29-1)と最適化(THM-M29-2)は1変数で述べます。
凸関数の典型例は x2、ex、max(x−K,0) です。凹関数の典型例は logx、x です。
3. 主張 ― 関数の期待値は期待値の関数を下回らない
定理 THM-M29-1(イェンセンの不等式)
f を区間 I 上の凸関数、X を E[∣X∣]<∞ かつ E[∣f(X)∣]<∞ を満たす確率変数で、X の値域が I に含まれるとする。このとき
が成り立つ。
定理 THM-M29-2(凸関数の極小は大域的最小)
f を凸集合 C 上の凸関数とする。x∗∈C が f の局所的な最小点であるならば、x∗ は C 上の大域的な最小点である。
定理 THM-M29-3(二階の判定)
f:U→R を開凸集合 U⊂Rn 上の二回連続微分可能な関数とする。f が U 上で凸であることと、すべての x∈U でヘッセ行列 Hf(x) が半正定値であることは同値である。
THM-M29-2 は最適化で極めて重要です。一般の関数では局所的な最小点がいくつもあり得ますが、凸関数ではそのようなことが起こりません。どこかで「谷底」を見つけたら、それが全体の谷底です。
証明を読む(読まなくても記事は完結します)
4. 証明 ― 接線で下から押さえる
この節は読まなくても記事は完結します。
この証明を追いたい人は、数学編 第3回「偏微分、全微分、多変数のテイラー展開」、数学編 第14回「ルベーグ積分」へ。
THM-M29-1 の証明
証明の鍵は、凸関数のグラフが任意の点で接線(支持直線)の上に乗るという事実です。まずこれを示します。
補助事実(支持直線の存在): f が区間 I 上の凸関数で μ∈I の内点であるとき、ある定数 a が存在して
f(x)≥f(μ)+a(x−μ)for all x∈I(3.1)
が成り立ちます。
これを示します。凸性の定義 (1.1) から、μ より右の点 y>μ に対して
は y について単調非減少です。これを確認します。μ<y1<y2 とし、y1=λμ+(1−λ)y2 とおくと λ=(y2−y1)/(y2−μ)∈(0,1) です。凸性より
が成り立ちます。整理すると
f(y1)−f(μ)≤(1−λ)(f(y2)−f(μ))=y2−μy1−μ(f(y2)−f(μ))
となり、両辺を y1−μ>0 で割ると
y1−μf(y1)−f(μ)≤y2−μf(y2)−f(μ)
が得られます。同様に、μ より左の点 x<μ に対する差分商 (f(μ)−f(x))/(μ−x) も単調非減少であり、さらに左側の差分商は右側の差分商を超えないことが凸性から従います。
したがって、左側の差分商の上限と右側の差分商の下限の間に値 a を取れば、(3.1) が全ての x∈I で成立します。f が μ で微分可能な場合は a=f′(μ) と取れます。
本証明に入ります。 μ=E[X] とおきます。X の値域が I に含まれるので μ∈I です(凸性より I は区間なので、期待値は I に属します)。支持直線 (3.1) で x=X(ω) とおくと
がすべての ω で成り立ちます。f(μ) と a(X−μ) はともに可積分なので、両辺の期待値を取ることができます。期待値の単調性(M14)により
E[f(X)]≥f(μ)+a(E[X]−μ)=f(μ)+a⋅0=f(E[X])
が得られます。E[X]−μ=0 は μ の定義そのものです。 ∎
この証明の核心は、凸関数を接線で下から押さえるという一点です。下から押さえた不等式の両辺に期待値を取ると、右辺の線形部分が E[X]−μ=0 で消えて、f(E[X]) だけが残ります。
THM-M29-2 の証明
x∗ が局所的な最小点であるとします。つまり、ある ε>0 が存在して、∥x−x∗∥<ε かつ x∈C なるすべての x に対し f(x)≥f(x∗) が成り立ちます。
任意の y∈C を取ります。f(y)≥f(x∗) を示せば十分です。
λ∈(0,1) を十分小さく取れば、z=(1−λ)x∗+λy は x∗ の ε-近傍に入ります(∥z−x∗∥=λ∥y−x∗∥<ε となるように λ を選びます)。C は凸集合なので z∈C です。局所最小性より
f(x∗)≤f(z)=f((1−λ)x∗+λy)(3.3)
が成り立ちます。一方、凸性の定義 (1.1) より
f((1−λ)x∗+λy)≤(1−λ)f(x∗)+λf(y)(3.4)
です。(3.3) と (3.4) を合わせると
となります。両辺から (1−λ)f(x∗) を引くと
が得られます。λ>0 で割って f(x∗)≤f(y) を得ます。y は C の任意の点なので、x∗ は大域的な最小点です。 ∎
THM-M29-3 の証明
(⇒) f が凸ならばヘッセ行列は半正定値。
任意の x∈U と任意の v∈Rn を取ります。t>0 が十分小さければ x+tv,x−tv∈U です。凸性の定義で λ=1/2 とおくと
f(x)=f(2(x+tv)+(x−tv))≤2f(x+tv)+f(x−tv)
が成り立ちます。整理すると
f(x+tv)+f(x−tv)−2f(x)≥0(3.5)
です。テイラー展開を x の周りで2次まで書くと
f(x+tv)f(x−tv)=f(x)+t∇f(x)⊤v+2t2v⊤Hf(x)v+o(t2),=f(x)−t∇f(x)⊤v+2t2v⊤Hf(x)v+o(t2).
これらを足すと
f(x+tv)+f(x−tv)−2f(x)=t2v⊤Hf(x)v+o(t2)
となります。(3.5) より t2v⊤Hf(x)v+o(t2)≥0 です。t2>0 で割って t→0 とすると
が得られます。v は任意なので Hf(x) は半正定値です。
(⇐) ヘッセ行列が至る所で半正定値ならば f は凸。
任意の x,y∈U と λ∈[0,1] を取り、z=λx+(1−λ)y とおきます。U は開凸集合なので z∈U です。テイラーの定理(積分形の剰余)より
f(x)=f(z)+∇f(z)⊤(x−z)+∫01(1−s)(x−z)⊤⋅Hf(z+s(x−z))(x−z)ds
が成り立ちます。仮定より Hf は至る所で半正定値なので、被積分関数は非負です。したがって
f(x)≥f(z)+∇f(z)⊤(x−z)(3.6)
です。同様に
f(y)≥f(z)+∇f(z)⊤(y−z)(3.7)
が成り立ちます。(3.6) に λ を、(3.7) に (1−λ) を掛けて足すと
λf(x)+(1−λ)f(y)≥f(z)+∇f(z)⊤(λ(x−z)+(1−λ)(y−z))=f(z)+∇f(z)⊤(λx+(1−λ)y−z)=f(z)
が得られます。最後の等号は z=λx+(1−λ)y の定義そのものです。よって f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y) が成り立ち、f は凸です。 ∎
5. 反例 ― 凹関数では逆になる
CEX-M29-1: 凹関数では不等号の向きが逆
f(x)=x は凹関数です。X が 64 と 144 を等確率で取るとします。
E[X]=104,f(E[X])=104≈10.198
E[f(X)]=264+144=28+12=10
f(E[X])≈10.198>10=E[f(X)] となり、イェンセンの不等式 (2.1) の向きが逆転しています。これは x が凹関数であるためで、凹関数に対しては f(E[X])≥E[f(X)] が成り立ちます(−f に THM-M29-1 を適用すれば直ちに従います)。差は 10.198−10=0.198 です。
CEX-M29-2: 凸でない関数で局所最小が大域最小でない
g(x)=x4−8x2+16−3x は凸でない関数です。この関数には2つの局所的な最小点があります。
- x≈2.0879 で g(x)≈−6.1346(大域的最小)
- x≈−1.8987 で g(x)≈5.8521(局所的最小)
局所最小点 x≈−1.8987 での値 5.8521 は、大域最小値 −6.1346 よりはるかに大きい値です。THM-M29-2 が保証するのは凸関数に限った話であり、凸でない関数ではこのように局所最小に捕まって大域最小を見逃す危険があります。
CEX-M29-3: 一階微分が0でも最小でない
f(x)=x3 の x=0 では f′(0)=0 ですが、f(−0.1)=−0.001<0=f(0) かつ f(0.1)=0.001>0=f(0) なので、x=0 は最小点でも最大点でもありません(変曲点です)。「一階微分が0ならば最小である」という理解は誤りです。凸関数であれば一階条件 f′(x∗)=0 が最小の十分条件になりますが、x3 は凸でも凹でもないため、この保証が効きません。
6. 数値例 ― ペイオフで両辺の差を測る
コールオプションのペイオフ f(x)=max(x−100,0) は凸関数です。X が 100−a と 100+a を等確率で取る場合、E[X]=100 は a によらず一定ですが、分散は a2 で変わります。イェンセンの不等式の両辺の差がどう変わるかを見ます。
| 分散 a2 |
f(E[X]) |
E[f(X)] |
差 |
| 0 |
0 |
0 |
0 |
| 100 |
0 |
5 |
5 |
| 400 |
0 |
10 |
10 |
| 900 |
0 |
15 |
15 |
| 1600 |
0 |
20 |
20 |
| 2500 |
0 |
25 |
25 |
f(E[X])=max(100−100,0)=0 は分散によらず一定です。一方、E[f(X)] は分散が大きくなるほど増加し、両辺の差が広がります。分散が0のときだけ等号が成立し、ばらつきを入れた瞬間に差が生じます。これがコールオプションの「ボラティリティが高いほど価値が上がる」という性質の数学的な根拠です。
ヘッセ行列による凸性の判定も数値で確認します。
f(x,y)=x2+xy+y2 のヘッセ行列は
で、固有値は 1 と 3 です。いずれも正なので Hf は半正定値(実際には正定値)であり、THM-M29-3 より f は凸です。
一方、g(x,y)=x2−3xy+y2 のヘッセ行列は
で、固有値は −1 と 5 です。負の固有値が存在するので Hg は半正定値ではなく、g は凸ではありません。
固有値の符号を調べるだけで凸性を判定できるのが、THM-M29-3 の実用的な価値です。
7. 次回へ ― ニュートン法
イェンセンの不等式は「凸関数は接線で下から押さえられる」という性質から来ていました。この性質は証明の道具であるだけでなく、関数の最小点を見つけるアルゴリズムにも使えます。次回 M30 では、二階微分の情報を使って最小点を高速に探索するニュートン法を扱います。
よくある質問
なぜ地味な不等式が大事なのですか
オプションの価値がボラティリティとともに上がる理由が、この不等式だからです。
凸とはどういう形ですか
下にふくらんだ形です。どの2点を結んだ線分も、グラフより上にあります。
最適化とどう関係するのですか
凸な問題なら局所的な答えがそのまま全体の答えになり、安心して解けます。
参考文献
- Boyd S. and Vandenberghe L.、Convex Optimization、Cambridge University Press、2004年
- Williams D.、Probability with Martingales、Cambridge University Press、1991年
数値例は compute.py により検算済み。浮動小数点の値は4桁で丸めている。