概要
- 微分・勾配・ヤコビアン行列・ヘッセ行列 の関係性と用途の解説
- 最適化問題 における微分と勾配降下法の利用
- 多変数関数 に対する勾配・ヤコビアン・ヘッセ行列の計算例
- グラフィックスや機械学習 への応用例
- ヘッセ行列の性質 と最適化での役割
微分と最適化
-
微分 は微積分で最も基本的な概念であり、関数の各点での変化率を示す指標
-
例えば関数 f(x) があれば、その導関数 f'(x) は各点での増減の速さを表現
-
微分は 最適化 (グラフの最小値や最大値を探すこと)に活用
-
ある点での導関数が 負 なら右へ進むと値が下がり、 正 なら左へ進むと値が下がる
-
微分値の 0 になる点が極値(最小値または最大値)であることを利用し、式を解いて極値を求める手法
- 反復的な最適化手法(例: Gradient Descent)では、導関数の値を使って「坂を下る」ように最小値を探索
- ステップサイズを調整しながら進むことで、真の最小値に近づく
高次関数・多次元関数での最適化
- 二次関数 以外の高次関数では、最小値・最大値が複数存在し、どちらも導関数が0になる
- 二次関数の係数が負 の場合、最小値ではなく最大値のみが存在
- 多次元関数では、ある点が x方向で最小・y方向で最大 となる「鞍点」も存在
- こうした点でも勾配がゼロとなり、単純なGradient Descentでは「谷底」以外にも到達する可能性
勾配(Gradient)
- 勾配 は多変数関数における「各変数ごとの偏微分」をまとめたベクトル
- 例:関数 w = f(x, y, z) の勾配は ∇w = [∂w/∂x, ∂w/∂y, ∂w/∂z]
- 各要素は「他の変数を固定して一つの変数を変化させたときの変化率」
- 勾配ベクトル は「関数が最も急激に増加する方向」を示す
- 勾配降下法(Gradient Descent) では、勾配方向の逆向きに進むことで最小値を探索
- レンダリング などでも勾配が利用され、アンチエイリアスや距離場表現などに応用
ヤコビアン行列(Jacobian Matrix)
- ヤコビアン行列 は多変数入力・多変数出力関数の「各出力の勾配ベクトル」をまとめた行列
- 例:関数 F(x, y) = [v(x, y), w(x, y)] のヤコビアンは、各出力ごとに偏微分した成分を行列に配置
- ヤコビアン行列は、空間がその点でどのように「回転・伸縮・反転」されるかを示す
- 行列式(determinant)が
- 1より大きい :拡大
- 0より大きく1未満 :縮小
- 負 :反転
- 0 :少なくとも1次元が潰れて不可逆変換
- 機械学習やグラフィックス における空間変換やアンチエイリアス処理で活用
ヘッセ行列(Hessian Matrix)
- ヘッセ行列 は多変数関数の「全ての2階偏微分」を並べた正方行列
- 例:関数 w = f(x, y, z) のヘッセ行列は、各偏微分成分の2階微分を全組み合わせで配置
- 各行は「各変数での勾配」をさらに全変数で微分した値
- ヘッセ行列 は「関数の曲率」を示し、最適化で関数の形状(上に凸か下に凸か、鞍点か)を判別可能
- 2階微分 による局所的な二次関数近似で、最小値探索を高速化(ニュートン法など)
- 固有値 で正定値かどうか(最小値か最大値か鞍点か)を判別
- 大規模な機械学習 ではヘッセ行列の計算コストが高く、 準ニュートン法 などの近似手法が利用
まとめ
- 微分・勾配・ヤコビアン行列・ヘッセ行列 は、関数の変化・曲率・空間変形を解析するための数学的ツール
- 最適化・機械学習・グラフィックス など多様な分野で応用
- 各概念の理解が、より高度なアルゴリズム設計や実装の基礎となる