ヘッセ行列
数学におけるヘッセ行列(ヘッセ-ぎょうれつ、Hessian matrix)は、多変数スカラー値関数の二階偏導関数全体が作る正方行列である。実数値関数の極値判定に用いられる。ヘッセ行列は、ジェームス・ジョセフ・シルベスターが、ドイツの数学者ルートヴィヒ・オットー・ヘッセに由来して名づけた。
実数値関数 f(x1, x2, ..., xn) に全ての二階偏微分が存在するとき、変数 xi に関する偏微分作用素を ∇i = ∂/∂xi とおくと、f のヘッセ行列 H(f) は、(i, j)-成分 H(f)ij が各点 x = (x1, x2, ..., xn) において
H(f)_{ij}(\mathbf{x}) = \nabla_i\nabla_jf(\mathbf{x}) = \frac{\partial^2}{\partial x_i \partial x_j }f(\mathbf{x})
で与えられる行列、つまり
H(f) = \nabla \otimes \nabla f = \begin{bmatrix}
\cfrac{\partial^2 f}{\partial x_1^2} & \cfrac{\partial^2 f}{\partial x_1\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_1\partial x_n} \\[16pt]
\cfrac{\partial^2 f}{\partial x_2\partial x_1} & \cfrac{\partial^2 f}{\partial x_2^2} & \cdots & \cfrac{\partial^2 f}{\partial x_2\partial x_n} \\[16pt]
\vdots & \vdots & \ddots & \vdots \\[16pt]
\cfrac{\partial^2 f}{\partial x_n\partial x_1} & \cfrac{\partial^2 f}{\partial x_n\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_n^2}
\end{bmatrix}
である。上記の行列の行列式はヘッシアン (Hessian) と呼ばれる。
ヘッセ行列の主対角線上以外の成分を混合微分 (mixed derivatives) という。
混合微分がすべて連続のとき、微分の順序を考えなくて良い。
例えば、
\frac {\partial}{\partial x} \left( \frac { \partial f }{ \partial y} \right) =
\frac {\partial}{\partial y} \left( \frac { \partial f }{ \partial x} \right)
これは次のようにも書ける。
f_{yx} = f_{xy} \,
つまり、 f の二階微分がすべて連続な領域 D で、 f のヘッセ行列は、対称行列である。
f の傾き(ベクトルの意味での一階導関数)∇f がある点 x で0のとき、f は x において臨界点あるいは停留点を持つと言う。x におけるヘッセ行列の行列式は x における判別式あるいはヘッシアンと呼ばれ、その値が0であるような x を f の退化臨界点または非モース臨界点という。ヘッシアンが 0 でない臨界点は非退化であると言い、また、f のモース臨界点と呼ぶ。
ヘッセ行列はモース理論で重要な役割を果たす。理由は、臨界点でのヘッセ行列の核 (kernel) と固有値が、臨界点(の種類)を分類するからである。
以下の判定法が非退化臨界点に対して適用できる。ヘッセ行列が
x において正定値対称行列であるとき、f は x において極小である。
x において負定値対称行列であるとき、f は x において極大である。
x において正負両方の固有値を持つとき、x は f の鞍点である(これは x が退化する場合にも正しい)。
それ以外の場合には(この判定法だけでは)不確定である。特に、ヘッセ行列が半正定値や半負定値であるときにはこの判定法では何も言えていない。ただし、モース理論の観点からはもう少し述べることができる。
この判定法が何を言っているかという点だけでいえば、一変数または二変数の場合は簡単である。一変数の場合にはヘッセ行列は唯一つの二階導関数しか持たず、その二階導関数が x で正ならば x は極小で、負ならば x は極大であり、ゼロならば何もいえない。二変数の場合には、判別式は固有値の積になるから、判別式が使えて、判別式の値が正ならば(固有値がともに正またはともに負となるから)極値を持ち、負ならば二つの固有値が異なる符号を持つから鞍点となる。判別式がゼロのところは不確定である。
凸開集合 O ⊆ Rn 上で2階の偏導関数が存在する実数値関数 f の凸性はヘッセ行列で判定できる。以下の2条件は同値である。
関数 f は O 上で凸。
任意の点 x ∈ O でヘッセ行列 ∇2f(x) は半正定値である。
また、任意の点 x ∈ O でヘッセ行列 ∇2f(x) が正定値であることは関数 f が O 上で狭義凸関数であるための十分条件を与える。
ある種の制限つき最適化問題の判定に境界つきヘッセ行列 (bordered Hessian) が利用される。与えられた関数 f(x1, x2, ..., xn) に
g(x_1, x_2, \dots, x_n) = c
H(f,g) = \begin{bmatrix}
0 & \cfrac{\partial g}{\partial x_1} & \cfrac{\partial g}{\partial x_2} & \cdots & \cfrac{\partial g}{\partial x_n} \\[16pt]
\cfrac{\partial g}{\partial x_1} & \cfrac{\partial^2 f}{\partial x_1^2} & \cfrac{\partial^2 f}{\partial x_1\,\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_1\,\partial x_n} \\[16pt]
\cfrac{\partial g}{\partial x_2} & \cfrac{\partial^2 f}{\partial x_2\,\partial x_1} & \cfrac{\partial^2 f}{\partial x_2^2} & \cdots & \cfrac{\partial^2 f}{\partial x_2\,\partial x_n} \\[16pt]
\vdots & \vdots & \vdots & \ddots & \vdots \\[16pt]
\cfrac{\partial g}{\partial x_n} & \cfrac{\partial^2 f}{\partial x_n\,\partial x_1} & \cfrac{\partial^2 f}{\partial x_n\,\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_n^2}
\end{bmatrix}
のことである。もし、制約関数が m 本あるのならば、左上のかどに m × m のゼロ行列ブロックをおいて、上から m 本の境界行、左から m 本の境界列を並べる。
z が第一成分がゼロでなく、それ以外の成分がゼロとなるベクトルならば z'Hz = 0 となるから、境界つきヘッシアンは(正または負の)定値対称行列になれず、上記判定法の正定値や負定値という規約はここでは通用しない。
ここでの極値判定法は、境界つきヘッセ行列の n − m 小行列のある集合の行列式の符号制限からなる。直観的には、m 本の制約条件によって、最適化問題を自由変数が n − m 個の場合に簡約化したと考えるのである。例えば、x1 + x2 + x3 = 1 なる制限条件下における f(x1, x2, x3) の最大化問題は、制約条件無しの f(x1, x2, 1 − x1 − x2) の最大化問題に帰着させることができる。
f が(スカラー値でなく)ベクトル値関数であるとき、つまりスカラー値関数のベクトルとして
f = (f_1, f_2, \dots, f_n)
のように表されるとき、二階導関数の配列を行列の形に書くことはできず、階数 3 のテンソルとして捉えることができる。
(M,g) をリーマン多様体とし、\nabla をそのレビ・チビタ接続とする。f\colon M \to \mathbb{R} を滑らかな関数とする。すると、ヘッセテンソル
\displaystyle \mbox{Hess}(f) \in \Gamma(T^*M \otimes T^*M)
\mbox{Hess}(f):=\nabla \nabla f = \nabla df
により定義することができる。ここに、関数の一階共変微分は通常の微分と同じであることを活用する。局所座標 \{x^i\} をとると、ヘシアンは次の式で局所的に表すことができる。
\mbox{Hess}(f)=\nabla_i\, \partial_j f \ dx^i \!\otimes\! dx^j = \left( \frac{\partial^2 f}{\partial x^i \partial x^j}-\Gamma_{ij}^k \frac{\partial f}{\partial x^k} \right) dx^i \otimes dx^j .
ここに \Gamma^k_{ij} は接続のクリストッフェル記号である。ヘシアンの他の同値な形が以下で与えられる。
\mbox{Hess}(f)(X,Y)= \langle \nabla_X \mbox{grad}f,Y \rangle,
\mbox{Hess}(f)(X,Y)=X(Yf)-df(\nabla_XY) .