📋

「凸関数」の概念を感覚的に掴む

2022/11/12に公開約17,900字

最適化問題を扱っていると、関数の凸性の概念に振り回される事が多いので、ちょっと勉強しました。

なお、間違いがいっぱいある と思います。この分野はあまりノーテーションが安定していないという事情からか、参考にした教科書類 (「参考文献」に記載) でさえ、誤植がたくさんあります。学術的に取り扱う際には、きちんと 信頼できる 文献を漁っておきたいですね。

凸関数について

高校数学でいうところの「下に凸」を、少しだけ一般化したものが凸関数ということになります。

凸関数の定義と必要十分条件

専ら多変数関数について論じても、私の脳では理解できないので、1変数関数、すなわち定義域 \mathcal X がスカラーの場合と比較しながらまとめておきます。

定義

言葉で言うと、次のようになります。

2点 \vec x, \vec y を結ぶ線分上の点 \vec z を考える。点 Z:(\vec z, f(\vec z)) は、点 X:(\vec x, f(\vec x)) と点 Y:(\vec y, f(\vec y)) を結ぶ線分 XY 上にあるか、それよりも「下側」に存在する。

1変数関数 の場合は、次のとおりです。

\begin{align*} & \small 凸: & f(x + a(y-x)) &\le f(x) + a(f(y) - f(x)) && (0 \le a \le 1) \\ & \small 狭義凸: & f(x + a(y-x)) &\lt f(x) + a(f(y) - f(x)) && (0 \lt a \lt 1, x \ne y) \end{align*}

多変数関数 になると、入力がベクトルになります。

\begin{align*} & \small 凸: & f(\vec x + a(\vec y - \vec x)) &\le f(\vec x) + a(f(\vec y) - f(\vec x)) && (0 \le a \le 1) \\ & \small 狭義凸: & f(\vec x + a(\vec y - \vec x)) &\lt f(\vec x) + a(f(\vec y) - f(\vec x)) && (0 \lt a \lt 1, \vec x \ne \vec y) \end{align*}

f が微分可能ならば

1変数関数 については、f が描く曲線 CC の接線 T について、図示した際の上下関係が C \ge T となることから、次のような必要十分条件が得られます。

\begin{align*} & \small 凸: & f(x) &\ge f(c) + f'(c) (x - c) \\ & \small 狭義凸: & f(x) &\gt f(c) + f'(c) (x - c) && (x \ne c) \end{align*}

多変数関数 についても、だいたい似たような式で表されます。なお、勾配 \nabla f(\vec c) はベクトルであることと、ベクトル同士については内積が用いられていることに注意しましょう。

\begin{align*} & \small 凸: & f(\vec x) &\ge f(\vec c) + \nabla f(\vec c) \cdot (\vec x - \vec c) \\ & \small 狭義凸: & f(\vec x) &\gt f(\vec c) + \nabla f(\vec c) \cdot (\vec x - \vec c) && (\vec x \ne \vec c) \end{align*}

1次近似式について

1変数関数 の場合、接線と曲線についての関係式をちょっと書き換えると、次のようになります。

\begin{align*} & \small 凸: & f(x + \Delta x) &\ge f(x) + f'(x) \Delta x \\ & \small 狭義凸: & f(x + \Delta x) &\gt f(x) + f'(x) \Delta x && (\Delta x \ne 0) \end{align*}

多変数関数 の場合には次のとおりです。

\begin{align*} & \small 凸: & f(\vec x + \Delta \vec x) &\ge f(\vec x) + \nabla f(\vec x) \cdot \Delta \vec x \\ & \small 狭義凸: & f(\vec x + \Delta \vec x) &\gt f(\vec x) + \nabla f(\vec x) \cdot \Delta \vec x && (\Delta \vec x \ne \vec 0) \end{align*}

f が連続的微分可能ならば

1変数関数 の場合、f が描く曲線の勾配は単調増加であることから、次のような必要十分条件が得られます。

\begin{align*} & \small 凸: & (f'(x_2) - f'(x_1)) (x_2 - x_1) &\ge 0 \\ & \small 狭義凸: & (f'(x_2) - f'(x_1)) (x_2 - x_1) &\gt 0 && (x_1 \ne x_2) \end{align*}

多変数関数 の場合には、まず、2点 \vec x_1, \vec x_2 を含み、かつ f の値を表す座標軸に平行な平面 S_{12} と、f が描く曲面 S を考えます。そして、S_{12}S の共有部分 C について、C の勾配を考えます。すると、次式が得られます。

\begin{align*} & \small 凸: & (\nabla f(\vec x_2) - \nabla f(\vec x_1)) \cdot (\vec x_2 - \vec x_1) &\ge 0 \\ & \small 狭義凸: & (\nabla f(\vec x_2) - \nabla f(\vec x_1)) \cdot (\vec x_2 - \vec x_1) &\gt 0 && (\vec x_1 \ne \vec x_2) \end{align*}

f が2階連続的微分可能ならば

1変数関数 の場合、導関数 f'(x) が単調増加であることから、次の必要十分条件が得られます。

\begin{align*} & \small 凸: & f''(x) &\ge 0 \\ & \small 狭義凸: & f''(x) &\gt 0 \end{align*}

多変数関数 の場合は、ヘッセ行列 \nabla^2 f(\vec x) の「固有値」の正負について考えることになります。

\begin{align*} & \small 凸: && \nabla^2 f(\vec x) \text{\small は半正定値} \\ & \small 狭義凸: && \nabla^2 f(\vec x) \text{\small は正定値} \end{align*}

凸集合

凸関数についての定義

f(\vec x + a(\vec y - \vec x)) \le f(\vec x) + a(f(\vec y) - f(\vec x)) \quad (0 \le a \le 1)

から明らかなように、f が凸関数であるためには、定義域 \mathcal X について

{}^\forall \vec x, \vec y \in \mathcal X, \ {}^\forall a \in [0,1], \ \vec x + a(\vec y - \vec x) \in \mathcal X

であることが要請されます。そこで、次のような条件を満たす集合 S凸集合 と呼びます:

{}^\forall \vec x, \vec y \in S, \ {}^\forall a \in [0,1], \ \vec x + a(\vec y - \vec x) \in S

要するに、凸関数であるためには、定義域 \mathcal X が凸集合でなくてはないということになります。

微分可能性

微分可能性についての知識も重要です。これも1変数と多変数を対比させてまとめます。

1階微分可能

1変数関数 の場合、次のような式を満たす関数 f'(x) が存在することを意味します。

f(x + \Delta x) = f(x) + f'(x) \Delta x \pm o(\Delta x)

多変数関数 の場合は、次式が成り立つことを意味します。

f(\vec x + \Delta \vec x) = f(\vec x) + \nabla f(\vec x) \cdot \Delta \vec x \pm o(\|\Delta \vec x\|)

\nabla f(\vec x) が連続である場合、f(\vec x)連続的微分可能 であるといいます。

o(\Delta x) は、

\frac{o(\Delta x)}{\Delta x} \to 0 \quad (\Delta x \to 0)

を意味します。また、\nabla f(\vec x) は偏導関数を並べたベクトルであり、勾配 と呼ばれます。

\nabla f(\vec x) = \frac{\partial f}{\partial \vec x} = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} \in \mathbb R^{n}

2階微分可能

1変数関数 の場合、次のような式を満たす関数 f''(x) が存在することを意味します。

f(x + \Delta x) = f(x) + f'(x) \Delta x + \frac{1}{2} f''(x) \Delta x^2 \pm o(\Delta x^2)

多変数関数 の場合は、次式が成り立つことを意味します。

f(\vec x + \Delta \vec x) = f(\vec x) + \nabla f(\vec x) \cdot \Delta \vec x + \frac{1}{2} \Delta \vec x^\mathsf{T} \nabla^2 f(\vec x) \Delta \vec x \pm o(\|\Delta x\|^2)

\nabla^2 f(\vec x) が連続である場合、f(\vec x)2階連続的微分可能 であるといいます。

\nabla ^2 f(\vec x) は、2階偏導関数を並べた行列であり、ヘッセ行列 と呼ばれます。

\nabla^2 f(\vec x) = \frac{\partial}{\partial \vec x} \left( \frac{\partial f}{\partial \vec x} \right)^\mathsf{T} = \begin{bmatrix} \frac{\partial f}{\partial x_1 \partial x_1} & \frac{\partial f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial f}{\partial x_1 \partial x_n} \\ \frac{\partial f}{\partial x_2 \partial x_1} & \frac{\partial f}{\partial x_2 \partial x_2} & \cdots & \frac{\partial f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f}{\partial x_n \partial x_1} & \frac{\partial f}{\partial x_n \partial x_2} & \cdots & \frac{\partial f}{\partial x_n \partial x_n} \end{bmatrix} \in \mathbb R^{n \times n}

1変数関数の平均値の定理と2次のテイラーの定理

平均値の定理

1変数関数 の場合、関数 f が閉区間 [a,b] で微分可能ならば、

f(b) = f(a) + f'(c) (b-a)

を満たす c \in (a, b) が存在する。

多変数関数 の場合、関数 f が連続的微分可能ならば

f(\vec b) = f(\vec a) + \nabla f(\vec c) \cdot (\vec b-\vec a)

を満たす \vec c = (1 - \alpha) \vec a + \alpha \vec b, \ 0 \lt \alpha \lt 1 が存在する。

1変数関数の場合、厳密には「開区間 (a, b) で微分可能、閉区間 [a, b] で連続」です。

2次のテイラーの定理

1変数関数 の場合、関数 f が閉区間 [a,b] で2階微分可能ならば、

f(b) = f(a) + f'(a) (b-a) + \frac{1}{2} f''(c) (b-a)^2

を満たす c \in (a, b) が存在する。

多変数関数 の場合、関数 f が2階連続的微分可能ならば

f(\vec b) = f(\vec a) + \nabla f(\vec a) \cdot (\vec b-\vec a) + \frac{1}{2} (\vec b-\vec a)^\mathsf{T} \nabla^2 f(\vec c) (\vec b-\vec a)

を満たす \vec c = (1 - \alpha) \vec a + \alpha \vec b, \ 0 \lt \alpha \lt 1 が存在する。

参考文献

  • 梅谷 俊治, 「しっかり学ぶ数理最適化」, 講談社 (2020).
  • 金森 敬文, 鈴木 大慈, 竹内 一郎, 佐藤 一誠, 「機械学習のための連続最適化」, 機械学習プロフェッショナルシリーズ, 講談社 (2016).
  • 久野 誉人, 繁野 麻衣子, 後藤 順哉, 「数理最適化」, IT Text シリーズ, オーム社 (2012).

【おまけ】1変数関数について詳しく

以下はすべて余談です。1変数関数について詳しく見ておくことで、多変数関数について論じる際の見通しが圧倒的に良くなると思ったので、各必要十分条件について最小限にまとめておきます。

凸関数と狭義凸関数

ある関数 f: \mathcal X \to \mathbb R が凸関数であるとは、次のようなことをいいます。

{}^\forall x, y \in \mathcal X, {}^\forall a \in [0, 1], f(x + a(y-x)) \le f(x) + a(f(y)-f(x))

グラフの凸性との関係

簡単のために x \le y としておくと、

x \le x + a(y-x) \le y \quad (0 \le a \le 1)

であることに注意しましょう。そこで、xy をひとまず x \le y であるように固定して、a だけが動くような状況としておきます。

\begin{align*} g_1(a) &= f(x + a(y-x)) \\ g_2(a) &= f(x) + a(f(y)-f(x)) \end{align*}

x = y の場合には、g_1(a)g_2(a) の値が一致します。

x=y \implies \left\{\begin{align*} g_1(a) &= f(x) \\ g_2(a) &= f(x) \end{align*}\right.

x \lt y である場合には、次のような不等式が成立することになります。

x \lt y \implies g_1(a) \le g_2(a)

g_1(a) が描く図形は、元の関数 f を横方向に拡大縮小したものであり、g_2(a) が描く図形は、2点 (x, f(x)), (y, f(y)) を通る直線であることに注意しましょう。図示すると、次のようになります。


fig. g_1, g_2 の大小関係

つまり、高校数学でいうところの「y=f(x)のグラフが下に凸」という概念に近いことが分かります。

直線も凸である

凸関数である条件は、

f(x + a(y-x)) \le f(x) + a(f(y)-f(x)) \quad (0 \le a \le 1)

です。これを満たす関数には、次のような1次関数も含まれます。

f(x) = mx + k

適当に2点 x, y \in \mathcal X をとって不等式評価をしてみると、

\begin{align*} & \left\{ f(x) + a(f(y)-f(x)) \right\} - \left\{ f(x + a(y-x)) \right\} \\ &= \left\{(mx + k) + am(y-x) \right\} - \left\{ m(x + a(y-x)) + k \right\} \\ &= 0 \end{align*}

ゆえ、

f(x + a(y-x)) = f(x) + a(f(y)-f(x))

ですから、たしかに凸関数としての条件を満たしています。

しかし、直線に対して「この関数は凸関数である」というのには、ちょっと違和感を感じます。そこで狭義凸という概念が登場します。

狭義凸関数

ある関数 f: \mathcal X \to \mathbb R が狭義凸関数であるとは、次のようなことをいいます。

{}^\forall x, y \in \mathcal X, {}^\forall a \in [0, 1], x \ne y \implies f(x + a(y-x)) \lt f(x) + a(f(y)-f(x))

直線は狭義凸ではない

「凸関数」との違いは2点。

1つは、等号成立が否定されていることです。

\begin{align*} & 凸 && f(x + a(y-x)) \le f(x) + a(f(y)-f(x)) \\ & 狭義凸 && f(x + a(y-x)) \lt f(x) + a(f(y)-f(x)) \end{align*}

もう1つは、x=y が許されていないということです。これは1つ目の条件を成り立たせるためのものなので、自然な条件だといえるでしょう。

\begin{align*} & 凸 && x, y \in \mathcal X \\ & 狭義凸 && x, y \in \mathcal X \land x \ne y \end{align*}

等号成立が否定されているので、もはや直線は条件を満たしません。

凸と狭義凸のまとめ

以上のことをまとめておきましょう。

  1. f が凸関数のとき
f(x + a(y-x)) \le f(x) + a(f(y)-f(x)) \quad (0 \le a \le 1)
  1. 特に f が狭義凸関数のとき
x \ne y \implies f(x + a(y-x)) \lt f(x) + a(f(y)-f(x)) \quad (0 \le a \le 1)

凸関数と1階導関数

以下、微分可能な1変数関数 f を取り扱います。

微分可能

「微分可能」という場合、通常は次のようなことを意味します:

定義1

\frac{df}{dx} = \lim_{\Delta x \to \pm 0} \frac{f(x + \Delta x) - f(x)}{\Delta x}

を満たすような df / dx \in \mathbb R が存在する。

これは、次のように定義することもできます。

定義2

f(x + \Delta x) = f(x) + \frac{df}{dx} \Delta x \pm o(\Delta x)

を満たすような関数 df / dx が存在する。ここで、o(\Delta x)

\frac{o(\Delta x)}{\Delta x} \to 0 \quad (\Delta x \to 0)

を意味する。

実際、2つ目の定義式を変形していくと、

f(x + \Delta x) = f(x) + \frac{df}{dx} \Delta x \pm o(\Delta x)
f(x + \Delta x) - f(x) \pm o(\Delta x) = \frac{df}{dx} \Delta x
\frac{f(x + \Delta x) - f(x)}{\Delta x} \pm \frac{o(\Delta x)}{\Delta x} = \frac{df}{dx}

となります。両辺に対して \Delta x \to 0 とすれば、1つ目の定義式

\lim_{\Delta x \to 0}\frac{f(x + \Delta x) - f(x)}{\Delta x} = \frac{df}{dx}

に帰着されます。

なお、o(\Delta x) を省略すると、1次までのテイラー展開になります。

f(x + \Delta x) \approx f(x) + \frac{df(x)}{dx} \Delta x

以下、1変数関数の導関数は f'(x)、微分係数は f'(c) などと表すことにします。

必要条件

凸関数の条件式

f(x + a(y-x)) \le f(x) + a(f(y)-f(x))

において、y \ne x かつ a \ne 0 と仮定し、a(y-x) \to \Delta x と書き換えると、次のようになります。

f(x + \Delta x) \le f(x) + \frac{f(y)-f(x)}{y-x} \Delta x

他方、f は微分可能なので、次のように表すこともできます。

f(x + \Delta x) = f(x) + f'(x) \Delta x \pm o(\Delta x)

これらから、

f(x) + f'(x) \Delta x \pm o(\Delta x) \le f(x) + \frac{f(y)-f(x)}{y-x} \Delta x
f'(x) \Delta x \pm o(\Delta x) \le \frac{f(y)-f(x)}{y-x} \Delta x

両辺に (y-x) / \Delta x \gt 0 を乗じると、

f'(x) (y-x) \pm \frac{o(\Delta x)}{\Delta x} \le f(y)-f(x)

さらに、a \to + 0、すなわち \Delta x \to \pm 0 とすると、

f'(x) (y-x) \le f(y) - f(x)
f'(x) (y-x) + f(x) \le f(y)

ここで2点 \{x, y\}\{c, x\} に置き換えて、c を定数、x を変数として取り扱ってみます。

f'(c) (x-c) + f(c) \le f(x), \quad c \in \mathcal X

すると、左辺は点 c における関数 f の接線、右辺は関数そのものとなります。

もうお分かりでしょう。f が凸関数ならば、任意の点 c における f の接線よりも、 f が描く曲線のほうが上側に存在することになります。


fig. 接線と凸関数

なお、f が狭義凸ならば、x \ne c においては等号が成立しなくなります。

x \ne c \implies f'(c) (x-c) + f(c) \lt f(x)

別の導出の仕方

ほとんどやっていることは同じですが、別の方法でも示すことができます。

凸関数の条件式から、

f(x + a(y-x)) \le f(x) + a(f(y)-f(x))
f(x + a(y-x)) - f(x) \le a(f(y)-f(x))

y \ne x かつ a \gt 0 と仮定し、a(y-x) \to \Delta x と書き換える。

f(x + \Delta x) - f(x) \le \Delta x \frac{f(y)-f(x)}{y-x}

両辺に (y-x) / \Delta x \gt 0 を乗じる。

\frac{f(x + \Delta x) - f(x)}{\Delta x} (y-x) \le f(y)-f(x)
\frac{f(x + \Delta x) - f(x)}{\Delta x}(y-x) + f(x) \le f(y)

さらに、a \to + 0、すなわち \Delta x \to \pm 0 とする。

f'(x) (y-x) + f(x) \le f(y)

十分条件

今までの話で示された

f \text{\small が微分可能な凸関数} \implies f'(c) (x-c) + f(c) \le f(x)

については、逆も成り立ちます。

以下、c_1 \le c_2 \le c_3, \ c_2 = (1-a)c_1 + ac_3, \ 0 \le a \le 1 とします。条件式

f'(c) (x-c) + f(c) \le f(x)

において、\{x, c\} \to \{c_1, c_2\} と書き換えると、

f'(c_2) (c_1-c_2) + f(c_2) \le f(c_1)

\{x, c\} \to \{c_3, c_2\} と書き換えると、

f'(c_2) (c_3-c_2) + f(c_2) \le f(c_3)

両辺をそれぞれ 1-a 倍、a 倍して足し合わせると、

\begin{align*} (\text{\small 左辺}) &= (1-a) \times f'(c_2) (c_1-c_2) + a \times f'(c_2) (c_3-c_2) + f(c_2) \\ &= f'(c_2) \left((1-a)c_1 + ac_3 - c_2 \right) + f(c_2) \\ &= f(c_2) \\ &= f((1-a)c_1 + ac_3), \\ (\text{\small 右辺}) &= (1-a) f(c_1) + a f(c_3) \end{align*}

となります。それゆえ、

f((1-a)c_1 + ac_3) \le (1-a) f(c_1) + a f(c_3)

すなわち

f(c_1 + a(c_3-c_1)) \le f(c_1) + a (f(c_3) - f(c_1))

が成り立ちます。

狭義凸関数の場合についても同様に示すことができます。

まとめ

このことをきちんとまとめておきましょう。

  1. f が微分可能なとき、凸関数であるための必要十分条件は
f'(c) (x-c) + f(c) \le f(x)
  1. 特に f が狭義凸関数であるための必要十分条件は
x \ne c \implies f'(c) (x-c) + f(c) \lt f(x)

なお、上の式において \{c, x\} \to \{x, x+\Delta x\} と書き換えると、次のようになります。

  1. f が微分可能なとき、凸関数であるための必要十分条件は
f(x + \Delta x) \ge f(x) + f'(x) \Delta x
  1. 特に f が狭義凸関数であるための必要十分条件は
\Delta x \ne 0 \implies f(x + \Delta x) \gt f(x) + f'(x) \Delta x

凸関数と連続的微分可能性

ある関数 f が微分可能で、かつ導関数 f' = df/dx が連続であるとき、f連続的微分可能である とか、C^1-級関数である とかいいます。このような場合を考えていきます。

必要条件

凸関数と接線の関係の式

f'(c) (x-c) + f(c) \le f(x)

において、\{x, c\} \to \{x_1, x_2\} および \{x, c\} \to \{x_2, x_1\} と書き換えます。

f'(x_2) (x_1-x_2) + f(x_2) \le f(x_1)
f'(x_1) (x_2-x_1) + f(x_1) \le f(x_2)

そして、今度はこれをそのまま足し合わせます。

f'(x_1) (x_2-x_1) + f'(x_2) (x_1-x_2) + f(x_2) + f(x_1) \le f(x_2) + f(x_1)
f'(x_1) (x_2-x_1) + f'(x_2) (x_1-x_2) \le 0
\left( f'(x_1) - f'(x_2) \right) (x_1-x_2) \ge 0

これを x_1x_2 の大小関係によって場合分けして考えると、

x_1 \le x_2 \implies f'(x_1) \le f'(x_2)
x_2 \le x_1 \implies f'(x_2) \le f'(x_1)

となります。

そういうわけで、連続的微分可能な関数 f が凸関数ならば、導関数 f' は単調非減少 (広義単調増加) ということになります。

\text{\small 連続的微分可能な関数 } f \text{\small が凸関数である} \implies \left( f'(x_1) - f'(x_2) \right) (x_1-x_2) \ge 0

なお、狭義凸関数ならば、同様の議論から f' は狭義単調増加となります。

十分条件

十分性も保証できます。平均値の定理を利用します。

平均値の定理

関数 f が開区間 (a,b) で微分可能、閉区間 [a,b] で連続ならば

{}^\exists c \in (a, b): f(b) = f(a) + f'(c)(b-a)

c_1 \lt c_2 \lt c_3 をとり、c_2 = c_1 + a(c_3-c_1), \ 0 \lt a \lt 1 とします。すると、条件式から

f'(c_1) \le f'(c_2)

です。また、f は連続的微分可能なので、平均値の定理により、ある a において、

f(c_3) = f(c_1) + f'(c_2) (c_3-c_1)

が満たされます。したがって、この a において、

\begin{align*} f(c_3) &= f(c_1) + f'(c_2) (c_3-c_1) \\ &\ge f(c_1) + f'(c_1) (c_3-c_1) \end{align*}

が成り立ちます。これは任意の c_1, c_3 \ (c_1 \lt c_3) で成り立ち、また c_1 = c_3 の場合にも等号が成り立ちます。ゆえに、任意の c_1, c_3 において

f(c_3) \ge f'(c_1) (c_3-c_1) + f(c_1)

が成り立つので、f は凸関数です。

まとめ

以上をまとめると、次のようになります。

  1. f が連続的微分可能なとき、凸関数であるための必要十分条件は
(f'(x_2) - f'(x_1)) (x_2 - x_1) \ge 0
  1. 特に f が狭義凸関数であるための必要十分条件は
x_1 \ne x_2 \implies (f'(x_2) - f'(x_1)) (x_2 - x_1) \gt 0

凸関数と2階連続的微分可能性

次に、2階連続的微分可能な1変数関数 f を取り扱います。2階連続的微分可能とは、2階微分可能かつ2階導関数 f''(x) が連続であることを意味します。

2階微分可能

2階微分可能であることは、次のように定義されます。

定義

1階導関数 df/dx に対し

f(x + \Delta x) = f(x) + \frac{df}{dx} \Delta x + \frac{1}{2} \frac{d^2f}{dx^2} \Delta x^2 \pm o(\Delta x^2)

を満たすような関数 d^2f / dx^2 が存在する。

以下、2階導関数と2階微分係数をそれぞれ f''(x), f''(c) などと表すことにします。

さて、2階導関数f''(x) が1階導関数 f'(x) の増減を意味しているのは、すでにご存知のことだと思います。連続的微分可能な関数が凸関数であるための必要十分条件

x_1 \le x_2 \implies f'(x_1) \le f'(x_2)

から f''(x) \ge 0 であることは明らかではあるのですが、ここでは多変数関数でも論じられるような形で導出することを目標に、ちょっと遠回りして示してみます。

必要条件

凸関数と微分係数についての式

f(x + \Delta x) \ge f(x) + f'(x) \Delta x

と、f が2階微分可能であることを表す式

f(x + \Delta x) = f(x) + f'(x) \Delta x + \frac{1}{2} f''(x) \Delta x^2 \pm o(\Delta x^2)

から、

f(x) + f'(x) \Delta x + \frac{1}{2} f''(x) \Delta x^2 \pm o(\Delta x^2) \ge f(x) + f'(x) \Delta x
\frac{1}{2} f''(x) \Delta x^2 \pm o(\Delta x^2) \ge 0
\frac{1}{2} f''(x) \pm \frac{o(\Delta x^2)}{\Delta x^2} \ge 0

となります。両辺で \Delta x \to 0 とすると、

\frac{1}{2} f''(x) \ge 0

となります。これが満たされるには、f''(x) \ge 0 でなくてはなりません。

以上のことから、2階微分可能な関数 f が凸関数であるならば、f''(x) \ge 0 が成り立つことが分かります。

なお、狭義凸関数ならば、f''(x) \gt 0 となります。

十分条件

連続的微分可能な関数についての十分条件の証明には平均値の定理を用いました。似たような考え方で、2階連続的微分可能な関数については、2次のテイラーの定理を利用します。

2次のテイラーの定理

関数 f が閉区間 [a,b] で2階微分可能ならば、

{}^\exists c \in (a, b): f(b) = f(a) + f'(a) (b-a) + \frac{1}{2} f''(c) (b-a)^2

c_1 \lt c_2 \lt c_3 をとり、c_2 = c_1 + a(c_3-c_1), \ 0 \lt a \lt 1 とします。すると、条件式から

f''(c_2) \ge 0

です。また、f は2階連続的微分可能なので、ある a において、

f(c_3) = f(c_1) + f'(c_1) (c_3-c_1) + \frac{1}{2} f''(c_2) (c_3-c_1)^2

が満たされます。したがって、この a において、

\begin{align*} f(c_3) &= f(c_1) + f'(c_1) (c_3-c_1) + \frac{1}{2} f''(c_2) (c_3-c_1)^2 \\ &\ge f(c_1) + f'(c_1) (c_3-c_1) \end{align*}

が成り立ちます。これは任意の c_1, c_3 \ (c_1 \lt c_3) で成り立ち、また c_1 = c_3 の場合にも等号が成り立ちます。ゆえに、任意の c_1, c_3 において

f(c_3) \ge f'(c_1) (c_3-c_1) + f(c_1)

が成り立つので、f は凸関数です。

狭義凸関数についても同様に示すことができます。

まとめ

以上をまとめると、次のようになります。

  1. f が2階連続的微分可能なとき、凸関数であるための必要十分条件は
f''(x) \ge 0
  1. 特に f が狭義凸関数であるための必要十分条件は
f''(x) \gt 0

Discussion

ログインするとコメントできます