冷めたコーヒー

Weniger, aber besser

二次関数の凸性

原点を通る二次関数 $f(\mathbf{x}) = \left< \mathbf{x}, \mathbf{Ax} \right>$ は行列 $\mathbf{A}$が半正定値対称であるとき凸であることについて以下の記事で述べた.

mathlog.info

証明の技法としてはシンプルで,以下の事実を基に式変形を行うだけである.

定義(凸関数) 凸集合 $S\subset \mathbb{R}^n$ 上で定義された実数値関数 $f\colon S\to\mathbb{R}$ が任意の $\mathbf{x},\,\mathbf{y}\in\mathbb{R}^n$ とスカラー $\lambda\in [0,1]$ に対して \begin{align} f(\lambda \mathbf{x} + (1-\lambda)\mathbf{y}) \leqq \lambda f(\mathbf{x}) + (1 - \lambda ) f(\mathbf{y}) \end{align} を満たすとき,関数 $f$ は $S$ 上で定義された凸関数であるという.

証明ではスカラー $\lambda$ として $0<\lambda < 1$ として取っているが,$\lambda = 0,\, 1$ のときは自明に $f(\lambda \mathbf{x} + (1-\lambda )\mathbf{y}) = \lambda f(\mathbf{x}) + (1 - \lambda ) f(\mathbf{y}) $ が成立するため $0<\lambda < 1$ の場合についてのみ検討すれば十分である.

さて,一般の二次関数は行列 $\mathbf{A}\in\mathbb{R}^{n\times n}$,ベクトル $\mathbf{b}\in\mathbb{R}^n$,スカラー $c\in\mathbb{R}$ によって

$$ f(\mathbf{x}) = \left< \mathbf{x}, \mathbf{Ax} \right> + 2 \left< \mathbf{b}, \mathbf{x} \right> + c $$

と表すことができる.これは,次のように変形することができる:

$$ f(\mathbf{x}) = \begin{pmatrix} 1 & \mathbf{x}^\top \end{pmatrix} \begin{pmatrix} c & \mathbf{b}^\top \\ \mathbf{b} & \mathbf{A} \end{pmatrix} \begin{pmatrix} 1 & \mathbf{x} \end{pmatrix}. $$

したがって,行列 $\begin{pmatrix} c & \mathbf{b}^\top \\ \mathbf{b} & \mathbf{A} \end{pmatrix}$ が半正定値行列であれば,この関数は凸であることが言える. → 行列 $\mathbf{A}$ が半正定値であれば $ \left< \mathbf{x}, \mathbf{Ax} \right>$ は凸であり,$\mathbf{x}$ に関する線型項 $ 2 \left< \mathbf{b}, \mathbf{x} \right> + c$ も凸であるので,実数値関数 $f$ は $\mathbf{A}$ が半正定値でありさえすれば凸であることが言える.