2次形式とヘッセ行列

学習コース

1. 2次形式

(1) 2次形式の定義

定義14.1: 2次形式
2次形式(quadratic form)とは、変数ベクトル $\mathbf{x} \in \mathbb{R}^n$ に対して次の形で表される関数のことを指します。 $$ Q(\mathbf{x}) = \mathbf{x}^T A \mathbf{x} $$ ここで、$A$ は $n \times n$ の実対称行列です(すなわち $A = A^T$)。

実対称行列を仮定するのは、$\mathbf{x}^T A \mathbf{x}$ の値が実数になること、また2次形式の解析が容易になるためです。

具体例をみる $n=2$ の場合、$\mathbf{x} = \begin{pmatrix}x_1 \\ x_2\end{pmatrix}$、$A = \begin{pmatrix}a & b \\ b & c\end{pmatrix}$ とすると、 $$ Q(\mathbf{x}) = a x_1^2 + 2b x_1 x_2 + c x_2^2 $$ となります。

(2) 2次形式と2次曲線

定理14.2: 2次曲線の分類
2変数の2次曲線の場合、$Q(x_1,x_2) = 0$ の等式は 2次曲線を表します。その概形は$Q(x)$の中心にある行列$A$の正値性または判別式 $D = ac – b^2$ と $a$ の符号によって分類されます。
  • $A$が正値($D > 0$ かつ $a > 0$):楕円
  • $A$が負値($D > 0$ かつ $a < 0$):楕円
  • $A$が不定($D < 0$):双曲線
  • $A$が半正値:平行な直線の組み または 存在しない
  • $A$が半負値:放物線

(3) 2次形式のトレース (再掲)

以下の記事の定理3.38でも扱いました。

定理14.3: 2次形式のトレース
$$ \mathrm{Tr}(\mathbf{x}^T A \mathbf{x}) = \mathrm{Tr}(A \mathbf{x} \mathbf{x}^T) $$

証明をみる まず、$\mathbf{x}^T A \mathbf{x}$ はスカラーなので、トレースを取っても値は変わりません。 $$ \mathrm{Tr}(\mathbf{x}^T A \mathbf{x}) = \mathbf{x}^T A \mathbf{x} $$ また、トレースの性質 $\mathrm{Tr}(PQ) = \mathrm{Tr}(QP)$ を用いると、 $$ \mathbf{x}^T A \mathbf{x} = \mathrm{Tr}(\mathbf{x}^T A \mathbf{x}) = \mathrm{Tr}(A \mathbf{x} \mathbf{x}^T) $$ したがって主張が示されます。

(4) 2次形式の勾配

定理14.4: 2次形式の勾配
$$ \nabla_{\mathbf{x}} (\mathbf{x}^T A \mathbf{x}) = 2A \mathbf{x} $$

証明をみる $\mathbf{x}^T A \mathbf{x}$ を成分表示すると、 $$ \mathbf{x}^T A \mathbf{x} = \sum_{i=1}^n \sum_{j=1}^n a_{ij} x_i x_j $$ これを $x_k$ で偏微分すると、 $$ \frac{\partial}{\partial x_k} \left( \sum_{i,j} a_{ij} x_i x_j \right) = \sum_{j} a_{kj} x_j + \sum_{i} a_{ik} x_i $$ $A$ が対称行列($a_{ij} = a_{ji}$)なので、これは $2 \sum_j a_{kj} x_j$ となります。
すなわちベクトル形式で書くと $$ \nabla_{\mathbf{x}} (\mathbf{x}^T A \mathbf{x}) = 2A\mathbf{x} $$

2. ヘッセ行列

(1) 多変数関数のテイラー展開

定理14.5: 多変数のテイラー展開
多変数関数 $f:\mathbb{R}^n \to \mathbb{R}$ に対して、点 $\mathbf{a}$ のまわりでの2次までのテイラー展開は $$ f(\mathbf{x}) \approx f(\mathbf{a}) + \nabla f(\mathbf{a})^T (\mathbf{x} – \mathbf{a}) + \frac{1}{2} (\mathbf{x} – \mathbf{a})^T H_f(\mathbf{a}) (\mathbf{x} – \mathbf{a}) $$ で表されます。ここで $H_f(\mathbf{a})$ はヘッセ行列です。

証明は「微分積分」コースに譲ります。

(2) 様々な行列(38):ヘッセ行列の定義

定義14.6: ヘッセ行列
ヘッセ行列(Hessian matrix)は、$n$ 変数関数 $f$ の2階偏導関数を成分とする $n\times n$ 行列で、 $$ H_f(\mathbf{x}) = \begin{pmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{pmatrix} $$ となります。$f$ が十分滑らかであれば(連続な2階偏導関数を持てば)、混合偏導関数は順序を入れ替えても等しく、ヘッセ行列は対称行列になります。

(3) 多変数関数の極大・極小判定

定理14.7: 極大極小の判定
点 $\mathbf{a}$ が $f$ の停留点($\nabla f(\mathbf{a}) = \mathbf{0}$)であるとき、ヘッセ行列の固有値の符号によって以下のように分類されます。
  • すべての固有値が正 $\Rightarrow$ $\mathbf{a}$ は局所極小点
  • すべての固有値が負 $\Rightarrow$ $\mathbf{a}$ は局所極大点
  • 正と負の固有値が混在 $\Rightarrow$ $\mathbf{a}$ は鞍点
  • 0 の固有値を含む場合は判定不能(さらに高次の項を調べる必要あり)

具体例をみる $f(x,y) = x^2 + y^2$ の場合、ヘッセ行列は $$ H_f = \begin{pmatrix} 2 & 0 \\ 0 & 2 \end{pmatrix} $$ 固有値は $(2,2)$ で正定値なので、原点は局所極小点です。