logo

一般的な凸関数の定義 📂関数

一般的な凸関数の定義

定義

ベクトル空間 VV で定義された関数 f:VRf : V \to \mathbb{R} が全ての x,yV\mathbf{x}, \mathbf{y} \in V と全ての t[0,1]t \in [0,1] に対して次を満たす時、凸関数convex functionと言われる。 f((1t)x+ty)(1t)f(x)+tf(y) f \left( (1-t) \mathbf{x} + t \mathbf{y} \right) \le (1-t) f \left( \mathbf{x} \right) + t f \left( \mathbf{y} \right)

説明

実は、学部レベル以上の数学を学ぶと、凹や凸の表現はほとんど使わず、凸convexという用語だけをほぼ排他的に使用する。上で紹介された凸関数は、ユークリッド空間 X=RX = \mathbb{R} で定義された凸関数の一般化である。

解の集合が放物線を形成する f(x,y):=x2+y2f(x,y) := x^{2} + y^{2} は凸関数であり、その値が最小になる点は (x,y)=(0,0)(x,y) = (0,0) である。

定理

凸集合における凸関数の最適解

f:RnRf : \mathbb{R}^{n} \to \mathbb{R} が微分可能な凸関数であり、凸集合 CRnC \subset \mathbb{R}^{n} が凸集合である場合、次の二つは等価である。

  • xC\mathbf{x}^{\ast} \in CCCff最小化する最適解である。
  • 全ての xC\mathbf{x} \in C に対して f(x)(xx)0 \nabla f \left( \mathbf{x}^{\ast} \right) \left( \mathbf{x} - \mathbf{x}^{\ast} \right) \ge 0

証明 1

(    )(\implies)

x(t):=x+t(xx)C,t[0,1] \mathbf{x}(t) := \mathbf{x}^{\ast} + t \left( \mathbf{x} - \mathbf{x}^{\ast} \right) \in C \qquad , t \in [0,1] CC は凸集合と仮定されるので、任意の xC\mathbf{x} \in Cx\mathbf{x}^{\ast} のある内分点 x(t)\mathbf{x}(t) は上記のように表される。一方で

  • x=arg minxCf\mathbf{x}^{\ast} = \argmin_{\mathbf{x} \in C} f なので全ての xC\mathbf{x} \in C に対して f(x(t))f(x)0f \left( \mathbf{x}(t) \right) - f \left( \mathbf{x}^{\ast} \right) \ge 0 であり
  • f(x(t))f \left( \mathbf{x}(t) \right)t=0t = 0 での偏微分係数は連鎖律により f(x)(xx)\nabla f \left( \mathbf{x}^{\ast} \right) \left( \mathbf{x} - \mathbf{x}^{\ast} \right) なので

f(x)(xx)=[tf(x(t))]t=0=limt0f(x(t))f(x)t0 \begin{align*} & \nabla f \left( \mathbf{x}^{\ast} \right) \left( \mathbf{x} - \mathbf{x}^{\ast} \right) \\ =& \left[ {{ \partial } \over { \partial t }} f \left( \mathbf{x} (t) \right) \right]_{t = 0} \\ =& \lim_{t \to 0} {{ f \left( \mathbf{x} (t) \right) - f \left( \mathbf{x}^{\ast} \right) } \over { t }} \\ \ge & 0 \end{align*} 結果として f(x)(xx)0\nabla f \left( \mathbf{x}^{\ast} \right) \left( \mathbf{x} - \mathbf{x}^{\ast} \right) \ge 0 を得る。


(    )(\impliedby)

f((1t)z+ty)(1t)f(z)+tf(y) f \left( (1-t) \mathbf{z} + t \mathbf{y} \right) \le (1-t) f \left( \mathbf{z} \right) + t f \left( \mathbf{y} \right) 両辺を tt で微分すると (z+y)f((1t)z+ty)f(z)+f(y) \left( - \mathbf{z} + \mathbf{y} \right) \nabla f \left( (1-t) \mathbf{z} + t \mathbf{y} \right) \le - f \left( \mathbf{z} \right) + f \left( \mathbf{y} \right) なので、t=0t = 0 時に次を得る。 f(z)+f(z)(yz)f(y) f \left( \mathbf{z} \right) + \nabla f \left( \mathbf{z} \right) \left( \mathbf{y} - \mathbf{z} \right) \le f \left( \mathbf{y} \right) 仮定で f(x)(xx)0\nabla f \left( \mathbf{x}^{\ast} \right) \left( \mathbf{x} - \mathbf{x}^{\ast} \right) \ge 0 なので、y=x\mathbf{y} = \mathbf{x}z=x\mathbf{z} = \mathbf{x}^{\ast} に対して次を得る。 f(x)+0f(x)+f(x)(xx)f(x) \begin{align*} & f \left( \mathbf{x}^{\ast} \right) + 0 \\ \le & f \left( \mathbf{x}^{\ast} \right) + \nabla f \left( \mathbf{x}^{\ast} \right) \left( \mathbf{x} - \mathbf{x}^{\ast} \right) \\ \le & f \left( \mathbf{x} \right) \end{align*} つまり f(x)f(x)f \left( \mathbf{x}^{\ast} \right) \le f \left( \mathbf{x} \right) であり、これは全ての xC\mathbf{x} \in C に対して成立するので x\mathbf{x}^{\ast}CCff の最小解となる。


  1. Matousek. (2007). Understanding and Using Linear Programming: p186. ↩︎