Ch.10

ヘッセ行列:2次微分と曲面の曲率

チャプター別 数学図

チャプターを選ぶと、下の図がそのチャプターの内容に切り替わります。中級数学の流れを一覧で確認できます。

1階微分は「今どちらが下りか」、2階のヘッセは「これから窪むか、一方は登り一方は下り(鞍点)か」を表します。下のアニメで流れを追ってください。
ヘッセは 2階微分 の行列なので、下の図の「曲がり具合」がヘッセの表す内容です。

お椀:下にだけ曲がる→極小点

↓ 曲がり(x, f(x))

鞍点:こっちは値↑上がり、あっちは値↓下がる

オレンジ方向は値が上がる・緑方向は値が下がる

鞍点:極小でも極大でもない

お椀は下にだけ曲がる→ここが極小

伏せたお椀は上にだけ曲がる→ここが極大

鞍点は一方向は上がり他方は下がる→極小・極大ではない

左:お椀型(下にだけ曲がる)→極小。伏せたお椀(上にだけ曲がる)→極大。鞍点:一方向は上がり他方は下がる→極小でも極大でもない。

ヘッセ行列はスカラー関数の2階偏微分を並べた正方行列で、ある点での曲面の曲率を表します。最適化で極小・極大・鞍点の判定や、ニュートン法・信頼領域法の基礎になります。

ヘッセ行列:曲面の曲がり具合を読む

ヘッセ行列とは? — 今立っている点で、あらゆる方向に曲面がどれだけ曲がっているかを数で表した表と考えてよいです。関数を2回微分した値を並べた正方行列で、対角線を挟んで左右が同じ対称行列になります。
目を閉じて山を下ることを想像してください。足で感じる「こっちがより下り」が1階微分(勾配)です。逆に「一歩踏み出したら谷に沈むか、平らか」を事前に知る感覚が2階微分、つまりヘッセです。これがあれば崖を避け、お椀の底のような本当の最小点を見つけられます。
もう少し正確に言うと、関数 ffxix_ixjx_j の方向に2回微分した値 2fxixj\frac{\partial^2 f}{\partial x_i \partial x_j} を表に並べたものがヘッセ H\mathbf{H} です。この表から出る 固有値 が重要で、すべて正ならその点はお椀の底のような 極小点、すべて負なら山の頂上のような 極大点、正負が混ざれば一方は登り他方は下りの 鞍点 になります。
機械学習では「誤差が最も小さい谷」を探す作業です。勾配だけ見て少しずつ下る方法は遠回りで遅いです。ヘッセで曲率が分かれば、谷へ大きくジャンプする ニュートン法 が使え、ずっと速く学習できます。
ヘッセ行列はスカラー関数の2階偏微分からなる対称行列で、ある点での曲率と極値の性質を担っています。勾配が0の点で固有値がすべて正なら極小、すべて負なら極大、正負が混ざれば鞍点と判定されます。機械学習では損失の最小点探索・検証や、ニュートン法・信頼領域・準ニュートン法といった2階最適化の基礎になります。
下っていくと勾配が0の平らな場所にぶつかることがあります。だからといってそこが本当の谷底とは限りません。一瞬平らで、一方は登り一方は下りの鞍点かもしれません。このときヘッセの固有値を見れば、本当の最小点か鞍点か判別できます。変数が多い機械学習では、こうした「偽の谷底」に陥らないことがとても重要です。
狭い道では歩幅を小さく、広い野原では大きくするのが安全で速いです。ヘッセは「どの方向がどれだけ急か」を教えてくれるので、学習時の歩幅(学習率)をうまく合わせ、無駄な歩みなく効率的に下れます。
ニュートン法は次の式で一気に大きく動く方法です:xk+1=xkH1f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \mathbf{H}^{-1} \nabla f(\mathbf{x}_k)。ここで xk\mathbf{x}_k は今の位置、f(xk)\nabla f(\mathbf{x}_k) はその点での勾配、H\mathbf{H} はその点でのヘッセ行列、H1\mathbf{H}^{-1} はその逆行列です。つまり「今の勾配と曲率(ヘッセ)の両方を見て、谷へ大きくジャンプして xk+1\mathbf{x}_{k+1} へ行く」という意味です。少しずつ下るよりずっと速く答えの近くに届けます。
ただし変数が増えるとヘッセを正確に求めるコストが大きくなります。実務ではヘッセを完全には計算せず、これまでの勾配の情報だけで「だいたいこんな形だろう」と推定して使う 準ニュートン法(BFGSなど)がよく使われます。
下表には問題を解くのに必要な 公式と記号の意味 だけをまとめました。表の下の 解き方の例 で実際の解き方を参照してください。
  • 公式Hij=2fxixjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}
  • 記号の意味HijH_{ij}=表の(i,j)(i,j)番目のマスに入る数。「xix_i で1回、xjx_j で1回微分した値」と考える。ff は関数、xix_i, xjx_j は変数(軸)の番号。微分順序を変えても同じで Hij=HjiH_{ij}=H_{ji} なので対称行列。
  • 公式n2n^2(成分総数)
  • 記号の意味nn=変数の個数。変数 nn 個ならヘッセは nnnn 列なのでマスは n×n=n2n \times n = n^2 個。例:2変数→4個、3変数→9個。
  • 公式n(n+1)2\frac{n(n+1)}{2}(独立成分)
  • 記号の意味nn=変数の個数。対称なので上三角だけ数えると 1+2++n=n(n+1)/21+2+\cdots+n = n(n+1)/2 個。例:2変数→3個、3変数→6個。
  • 公式nn(行・列の数)
  • 記号の意味nn=変数の個数。ヘッセは n×nn \times n なので「行は何本?列は何本?」どちらも nn
  • 公式固有値による判定
  • 記号の意味λ\lambda=ヘッセの固有値(その点での曲がり具合)。すべて正→お椀のように下にだけ曲がって極小すべて負→上にだけ曲がって極大正負混在→一方は登り他方は下りで鞍点
  • 公式xk+1=xkH1f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \mathbf{H}^{-1} \nabla f(\mathbf{x}_k)
  • 記号の意味xk\mathbf{x}_k=今の点、xk+1\mathbf{x}_{k+1}=1ステップ後の点。H\mathbf{H}=その点でのヘッセ(曲率の表)、H1\mathbf{H}^{-1}=その逆行列。f(xk)\nabla f(\mathbf{x}_k)=その点での勾配。「勾配と曲率を見て一気に谷へジャンプ」する式。
  • 公式x1=x0f(x0)f(x0)x_1 = x_0 - \frac{f^{\prime}(x_0)}{f^{\prime\prime}(x_0)}
  • 記号の意味x0x_0=今の位置、x1x_1=次の位置。f(x0)f^{\prime}(x_0)=その点の傾き(1階導関数)、f(x0)f^{\prime\prime}(x_0)=2階導関数(1変数のときヘッセの役割)。f(x)=ax2+bx+cf(x)=ax^2+bx+c なら f=2af^{\prime\prime}=2a で定数。
  • 公式f(x)=2af^{\prime\prime}(x)=2af(x)=ax2+bx+cf(x)=ax^2+bx+c
  • 記号の意味ff^{\prime\prime}=2階導関数。aax2x^2 の係数。2次式は2回微分すると xx が消えて定数 2a2a だけ残る。
  • 公式f=0\nabla f = \mathbf{0}(停留点)
  • 記号の意味f\nabla f=勾配(各変数方向の1階微分を並べたベクトル)。0\mathbf{0}=「勾配が0」の状態。勾配が0の点が極小・極大・鞍点の候補になり、ヘッセの固有値でどれか判定する。

解き方の例

例1 — 成分数
問題:f(x1,x2)f(x_1, x_2) のヘッセの成分は何個か。
解き方:変数が2個ならヘッセは2行2列の行列なので、成分は合計 4 個。対称なので H12=H21H_{12}=H_{21} のように同じ値があり、異なる成分だけ数えると H11H_{11}, H12H_{12}, H22H_{22}3 個です。
→ 総数を聞かれれば 4、独立な成分数なら 3

例2 — 極小の判定
問題:ヘッセの固有値が2と5のとき、その点は極小・極大・鞍点のどれか。
解き方:固有値がどちらも なら、その点で曲面が全方向に下に曲がりお椀型になります。よって 極小点
①極小
②極大
③鞍点のうち 1(極小) を選ぶ。

例3 — 極大の判定
問題:ヘッセの固有値が 1-13-3 のとき、その点は。
解き方:どちらも なら、その点で曲面が全方向に上に曲がりお椀を伏せた形です。極大点
2(極大) を選ぶ。

例4 — 鞍点の判定
問題:ヘッセの固有値が 221-1 のとき、その点は。
解き方:固有値に 正と負の両方 があれば、一方向は登り、他方向は下りです。鞍点
3(鞍点) を選ぶ。

例5 — 2階導関数の値
問題:f(x)=3x2+2x+1f(x)=3x^2+2x+1 のとき f(x)f^{\prime\prime}(x) は。
解き方:2次式 ax2+bx+cax^2+bx+cx2x^2 の係数は a=3a=3。2階導関数は f(x)=2a=2×3=6f^{\prime\prime}(x)=2a=2 \times 3 = 6 で、xx に依存しない定数です。
→ 答え 6

例6 — ニュートン法(1変数)
問題:f(x)=x2f(x)=x^2x0=4x_0=4 のとき、1ステップ後の x1x_1 は。
解き方:1変数のニュートンステップは x1=x0f(x0)/f(x0)x_1 = x_0 - f^{\prime}(x_0)/f^{\prime\prime}(x_0)f(x)=2xf^{\prime}(x)=2xf(x)=2f^{\prime\prime}(x)=2 なので x0=4x_0=4f(4)=8f^{\prime} (4) =8f(4)=2f^{\prime\prime} (4) =2。よって x1=48/2=0x_1 = 4 - 8/2 = 0
→ 答え 0

例7 — 定義(○×)
問題:「ヘッセの固有値がすべて正ならその点は極小点である」が正しければ1、誤りなら0。
解き方:正しい説明です。固有値がすべて正のとき、曲面は全方向に下に曲がるので極小点になります。
→ 答え 1

문제

以下の指示を読んで答え(整数)を求め、空欄(?)に入力してください。

次の質問に該当するものを選んでください。
①極小
②極大
③鞍点のいずれかの番号(1、2、3)を入力してください。
(ヘッセ固有値・定義に関する質問)
1 / 10