1. 一般的なニュートン法
最適化問題において、関数 $f(x)$ の最小値を求めるニュートン法 (Newton's Method) の更新は次で与えられます(実装では逆行列を明示的に作らず、線形方程式として解くのが一般的です):
$$
dx = -[\nabla^2 f(x)]^{-1}\nabla f(x)
$$
2. 残差最小化問題(非線形最小二乗)
残差ベクトル(residual vector) $r(x)$ の二乗和を最小化する問題を考えます。以降、次元を明確にするために
$$
x\in\mathbb{R}^n,\quad r:\mathbb{R}^n\to\mathbb{R}^m,\quad r(x)=[r_1(x),\dots,r_m(x)]^T\in\mathbb{R}^m
$$
とします。目的関数は
$$
f(x)=\frac12 r(x)^T r(x)=\frac12\sum_{i=1}^m r_i(x)^2
$$
です。
この問題をニュートン法で解くために、勾配とヘッセ行列を計算します。
勾配 (Gradient)
ヤコビ行列を
$$
J(x)=\frac{\partial r(x)}{\partial x}\in\mathbb{R}^{m\times n}
$$
とすると、勾配は
$$
\nabla f(x)=J(x)^T r(x)
$$
となります。この形は、(線形化した)最小二乗問題の正規方程式と対応します。
ヘッセ行列 (Hessian)
ヘッセ行列は
$$
\nabla^2 f(x)=J(x)^T J(x) + \sum_{i=1}^m r_i(x)\nabla^2 r_i(x)
$$
となります。第1項はヤコビ行列の積、第2項は各残差の二階微分を残差で重みづけした項です。
したがって、ニュートン法の更新は
$$
dx=
-\left[J(x)^T J(x)+\sum_{i=1}^m r_i(x)\nabla^2 r_i(x)\right]^{-1}J(x)^T r(x)
$$
です(繰り返しになりますが、実装では通常この逆行列表記をそのまま計算せず、線形方程式として解きます)。
ガウス・ニュートン法の導出
ニュートン法のヘッセ行列の第2項
$$
\sum_{i=1}^m r_i(x)\nabla^2 r_i(x)
$$
は次の点で扱いづらいことが多いです。
- 二階微分が必要で計算コストが高い
- 残差 $r_i(x)$ が大きい領域では、正定値性(あるいは良条件性)を損なう可能性がある
- その結果、ステップが不安定になり収束性に悪影響を与えることがある
そこでこの第2項を省略し、ヘッセ行列を
$$
\nabla^2 f(x)\approx J(x)^T J(x)
$$
で近似すると、ガウス・ニュートン法 (Gauss–Newton Method) の更新が得られます:
$$
dx=-[J(x)^T J(x)]^{-1}J(x)^T r(x)
$$
※注意:$J(x)^T J(x)$ は常に半正定値ですが、特異(ランク落ち)になりうるため、常に可逆とは限りません。その場合は擬似逆や正則化(後述)を用います。
利点
- 近似ヘッセ行列 $J(x)^T J(x)$ は常に半正定値
- 二階微分の計算が不要
- 解近傍で残差が十分小さいとき、ニュートン法に近い良好な収束挙動を示しやすい
収束性と擬似逆行列
解 $ x^* $ 近傍で $ |r(x^*)| $ が十分小さい場合、一般に省略した項も小さくなりやすく、
$$
\left|\sum_{i=1}^m r_i(x)\nabla^2 r_i(x)\right|\approx 0
$$
となるため、ガウス・ニュートン法はニュートン法に近い振る舞いをします。ただし「局所的に二次収束」と言い切るには、通常
- $J(x^*)$ が適切に正則(例:フル列ランク)
- 近傍での通常の正則性条件
などの仮定が必要です。この仮定のもとでは、超線形〜二次に近い収束が期待できます。
また、$J(x)$ がフル列ランクのときはムーア・ペンローズ逆行列(擬似逆行列) $J(x)^+$ について
$$
J(x)^+=(J(x)^T J(x))^{-1}J(x)^T
$$
が成立するため、
$$
dx=-[J(x)^T J(x)]^{-1}J(x)^T r(x)
\quad\Leftrightarrow\quad
dx=-J(x)^+ r(x)
$$
と書けます。一般の場合(ランク落ちを含む)でも、SVD により $J(x)^+$ を計算することで、数値的に安定な最小二乗解を得られます。
最小二乗法との関係
ガウス・ニュートン法は、非線形最小二乗問題
$$
f(\mathbf{x})=\frac12|\mathbf{r}(\mathbf{x})|^2=\frac12\sum_{i=1}^m r_i(\mathbf{x})^2
$$
を解くために特化された方法です。各反復で残差を一次近似して、線形最小二乗問題を解く、という構造を持ちます。
線形最小二乗問題の場合
残差が線形、すなわち $\mathbf{r}(\mathbf{x})=A\mathbf{x}-\mathbf{b}$ のとき:
$$
f(\mathbf{x})=\frac12|A\mathbf{x}-\mathbf{b}|^2
$$
ヤコビ行列は定数 $J(\mathbf{x})=A$ となり、ガウス・ニュートン法の更新は:
$$
d\mathbf{x}=-(A^T A)^{-1}A^T(A\mathbf{x}-\mathbf{b})
$$
これは正規方程式に一致し、この線形問題では(適切な条件のもとで)一回の反復で厳密解に到達します。
非線形最小二乗問題の場合
非線形の場合、ガウス・ニュートン法は各反復で残差を一次のテイラー展開で近似します。
- 残差の一次近似:
$$
\mathbf{r}(\mathbf{x}+d\mathbf{x})
\approx
\mathbf{r}(\mathbf{x})+J(\mathbf{x})d\mathbf{x}+O(|d\mathbf{x}|^2)
$$
ここで
$$
J(\mathbf{x})=
\begin{bmatrix}
\frac{\partial r_1}{\partial x_1} & \cdots & \frac{\partial r_1}{\partial x_n}
\vdots & \ddots & \vdots
\frac{\partial r_m}{\partial x_1} & \cdots & \frac{\partial r_m}{\partial x_n}
\end{bmatrix}
$$
- 近似された目的関数:
$$
f(\mathbf{x}+d\mathbf{x})
\approx
\frac12|\mathbf{r}(\mathbf{x})+J(\mathbf{x})d\mathbf{x}|^2
$$
- この近似問題(線形最小二乗)の解が更新式:
$$
d\mathbf{x}=
-[J(\mathbf{x})^T J(\mathbf{x})]^{-1}J(\mathbf{x})^T\mathbf{r}(\mathbf{x})
$$
となります(可逆でない場合は擬似逆や正則化を用います)。
このように、ガウス・ニュートン法は各反復で線形最小二乗問題を解くことで、非線形最小二乗問題の解を求めます。
レーベンバーグ・マーカート法と修正ニュートン法
レーベンバーグ・マーカート法 (Levenberg–Marquardt Method, LM) は、ガウス・ニュートン法の正規方程式にダンピング(正則化)を加えることで、特異や悪条件の状況でも安定にステップを決める手法です(一般には信頼領域的なステップ制御として理解できます)。
修正ニュートン法 (Modified Newton Method) では、ヘッセ行列に制御パラメータを加えて数値的安定性を向上させます:
$$
dx=-[H+\mu I]^{-1}\nabla f(x)
$$
同様に LM 法では近似ヘッセ行列 $J(x)^T J(x)$ に制御パラメータ $\lambda$ を加えます:
$$
dx=-[J(x)^T J(x)+\lambda I]^{-1}J(x)^T r(x)
$$
$\lambda$ を調整することで、$\lambda$ が大きい場合は最急降下法に近い振る舞い、小さい場合はガウス・ニュートン法に近い振る舞いになります。これにより、より広い範囲の初期値からの収束が期待できます。