2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ニュートン法と準ニュートン法

Posted at

1. ニュートン法

目的関数 $f: \mathbb{R}^n \to \mathbb{R}$ の最小化を考えます:

\text{minimize} \quad f(x), \quad x \in \mathbb{R}^n

ニュートン法による更新式:

dx = -[\nabla^2 f(x)]^{-1} \nabla f(x)

ここで、$\nabla f(x) \in \mathbb{R}^n$ は勾配、$\nabla^2 f(x) \in \mathbb{R}^{n \times n}$ はヘッセ行列を表します。

準ニュートン法

1. 準ニュートン法の基本概念

ニュートン法は二階微分(ヘッセ行列)を必要としますが、これは以下の理由で計算コストが高くなりがちです:

  • 高次元の場合、ヘッセ行列の計算が非常に高い
  • 行列の記憶容量が $O(n^2)$ 必要
  • 各反復で行列の逆行列計算が必要

準ニュートン法は、ヘッセ行列を直接計算する代わりに、勾配の情報から徐々にヘッセ行列(の近似)を構築していきます。

更新式の基本形

dx = -B_k^{-1} \nabla f(x_k)

ここで:

  • $B_k$ はヘッセ行列 $\nabla^2 f(x_k)$ の近似
  • $B_k$ は対称性と正定値性を保持するように更新

2. セカント条件

準ニュートン法では、以下のセカント条件を満たすように $B_{k+1}$ を更新します:

B_{k+1}s_k = y_k

ここで:

  • $s_k = x_{k+1} - x_k$:位置の変化
  • $y_k = \nabla f(x_{k+1}) - \nabla f(x_k)$:勾配の変化

この条件は、一次の差分近似から導かれる自然な要請です。

3. 代表的な更新公式

BFGS法

最も広く使われている準ニュートン法の一つです。

dB = - \frac{B_k s_k s_k^T B_k}{s_k^T B_k s_k} + \frac{y_k y_k^T}{y_k^T s_k}

または、逆行列の直接更新形式:

H_{k+1} = (I - \rho_k s_k y_k^T)H_k(I - \rho_k y_k s_k^T) + \rho_k s_k s_k^T

ここで $H_k = B_k^{-1}$, $\rho_k = 1/(y_k^T s_k)$ です。

BFGS法の特性

BFGS法は以下のような優れた特性を持ちます:

  1. 正定値性の自動的な保持

    • 初期行列 $B_0$ が正定値であれば、更新後も正定値性が自動的に保持される
    • 修正ニュートン法のような明示的な正規化が不要
    • Wolfe条件を満たすライン探索を行えば $y_k^T s_k > 0$ が保証され、正定値性が維持される
  2. 効率的な実装

    • 逆行列の直接更新形式により、$O(n^3)$ の逆行列計算を回避可能
    • 行列-ベクトル積の計算が主要な計算コスト
  3. 優れた収束特性

    • 局所的な超線形収束性を持つ
    • 実用的な収束速度と数値的な安定性のバランスが良好

これらの特性により、BFGS法は実践的な最適化問題において広く使用されています。特に、以下のような状況で効果的です:

  • ヘッセ行列の計算が困難または高コストな場合
  • 問題の規模が中程度(数百〜数千変数)の場合
  • 目的関数が十分滑らかな場合

L-BFGS法

Limited-memory BFGS法は、完全な行列を保存せず、過去 $m$ 回分の $(s_k, y_k)$ ペアのみを保持します:

  • 記憶容量: $O(mn)$ ($n$ は変数の次元)
  • 行列-ベクトル積の計算量: $O(mn)$
  • $m$ は通常 3〜20 程度

更新には two-loop recursion アルゴリズムを使用:

\begin{align*}
q &\leftarrow \nabla f(x_k) \\
\text{for } i &= k-1, k-2, ..., k-m \\
\alpha_i &= \rho_i s_i^T q \\
q &\leftarrow q - \alpha_i y_i \\
r &= H_0^k q \\
\text{for } i &= k-m, ..., k-1 \\
\beta &= \rho_i y_i^T r \\
r &\leftarrow r + s_i(\alpha_i - \beta)
\end{align*}

ここで $r$ が最終的な探索方向となります。

セカント条件とKLダイバージェンス

実際、BFGS更新式は以下のKLダイバージェンス最小化問題の解として導出できます:

\min_{B_{k+1}} D_{KL}(B_{k+1} || B_k) \quad \text{subject to} \quad B_{k+1}s_k = y_k, \quad B_{k+1} = B_{k+1}^T

ここで、行列のKLダイバージェンスは以下のように定義されます:

D_{KL}(B_{k+1} || B_k) = \text{tr}(B_{k+1}B_k^{-1}) - \ln\det(B_{k+1}B_k^{-1}) - n

この最適化問題は、新しい近似ヘッセ行列 $B_{k+1}$ が:

  1. セカント条件を満たし
  2. 対称性を保持しつつ
  3. 前回の近似 $B_k$ からの情報理論的な意味での「距離」を最小化

することを要求しています。

興味深いことに、KLダイバージェンスの順序を逆にした最小化問題:

\min_{B_{k+1}} D_{KL}(B_k || B_{k+1}) \quad \text{subject to} \quad B_{k+1}s_k = y_k, \quad B_{k+1} = B_{k+1}^T

を解くと、DFP (Davidon-Fletcher-Powell) 法の更新式が導出されます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?