機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

ヘッセ行列で最大/最小値の存在を判定

2次形式を対称行列\mathbf{H}を使って\mathbf{x}^{T}\mathbf{H}\mathbf{x}とするとき、\mathbf{H}を2次関数のヘッセ行列といいます。ヘッセ行列は2階微分(参考:ベクトルをベクトルで微分の定義とヘッセ行列)を指すことが多そうですが、2次形式の対称行列もヘッセ行列と呼ぶようです。*1 今回はこのヘッセ行列を使って2次関数の最大値、最小値の存在を判定する方法を確認します。

任意の2次間数は、平行移動することによって2次の項と定数のみで表すことができます。また、任意の2次形式は対称行列を使って表すことができます。(参考:2次形式と対称行列) 最大値/最小値の存在を考える場合において、定数項は影響しませんので、ヘッセ行列を用いた\mathbf{x}^{T}\mathbf{H}\mathbf{x}の形を考えれば十分です。

まず、ある直交行列\mathbf{U}により、\mathbf{x} = \mathbf{U}\mathbf{x}^{\prime}で変換すると、


\begin{eqnarray*}
\mathbf{x}^{T}\mathbf{H}\mathbf{x} &=& (\mathbf{U}\mathbf{x}^{\prime})^{T} \mathbf{H}\mathbf{U}\mathbf{x}^{\prime} \tag{1}\\
&=&\mathbf{x}^{\prime T} \mathbf{U}^{T} \mathbf{H}\mathbf{U}\mathbf{x}^{\prime} \tag{2} 
\end{eqnarray*}

となります。

対称行列は直交行列を用いて対角化できますから(参考:対称行列の対角化)、固有値で構成される対角行列を\mathbf{\Lambda}とすれば、\mathbf{U}^{T}\mathbf{H}\mathbf{U}=\mathbf{\Lambda}ですから、式(2)は


\mathbf{x}^{T}\mathbf{H}\mathbf{x} = \mathbf{x}^{\prime T} \mathbf{\Lambda} \mathbf{x}^{\prime} \tag{3}

となります。ここで2変数の場合を考えます。\mathbf{x}^{\prime} = (x_{1}^{\prime}, x_{2}^{\prime})^{T}として式(3)を書き出せば、


\begin{eqnarray*}
\mathbf{x}^{T}\mathbf{H}\mathbf{x} &=&  (x_{1}^{\prime}, x_{2}^{\prime}) \left(
    \begin{array}{cc}
      \lambda_1 & 0 \\
      0 & \lambda_2
    \end{array}
  \right) 
\left(
    \begin{array}{c}
      x_{1}^{\prime} \\
      x_{2}^{\prime}
    \end{array}
  \right)  \tag{4} \\

&=& \lambda_1 x_{1}^{\prime 2} + \lambda_2 x_{2}^{\prime 2} \tag{5}
\end{eqnarray*}

となります。この変形によって、何が行われたのか?は以下の図がわかりやすいです。図中の曲線は2次関数の等高線を表しています。

f:id:opabinia2:20180728210452p:plain

元の2次形式でも何らかの方法によって最大値/最小値の存在を判断することはできると思いますが、座標変換によって二乗の項以外を無くしてしまうことで、その係数の正負だけを見れば判断できるようになります。つまり\mathbf{x}^{T}\mathbf{H}\mathbf{x}は、固有値\lambda_1,\lambda_2 が共に正のときに唯一の最小値をとり、固有値\lambda_1 ,\lambda_1が共に負のときに唯一の最大値をとります。\lambda_1,\lambda_2 の符号が異なるとき、以下のようなグラフになり、最大/最小値を持ちません。なお固有値が全て正の対称行列を正定値行列、全て負の対称行列を負定値行列といいます。

f:id:opabinia2:20180727223421p:plain

以上より、2次関数のヘッセ行列が正定値行列なら、唯一の最小値をとり、負定値行列なら唯一の最大値をとる、ということが確認できました。同様のことは2変数だけでなくn変数の場合でも成り立ちます。

続き:ヘッセ行列で極値の判定

*1:2次形式を二階微分してヘッセ行列\mathbf{H}を求めると、元の二次形式は\frac{1}{2}\mathbf{x}^{T}\mathbf{H}\mathbf{x}と書ける。