1. ニュートン法の基本原理
非線形方程式 $F(x) = 0$ を解く反復解法として、ニュートン法は以下のように定式化される:
x_{k+1} = x_k - [F'(x_k)]^{-1}F(x_k)
ここで:
- $x_k$ は現在の解の推定値
- $F'(x_k)$ はヤコビ行列
- $k$ は反復回数
最適化問題への適用では、目的関数 $f(x)$ の最小化に対して:
x_{k+1} = x_k - [\nabla^2 f(x_k)]^{-1}\nabla f(x_k)
となり、ヘッセ行列 $\nabla^2 f(x_k)$ を使用する。
1.1 制約付き最適化問題でのニュートン法
制約付き最適化問題では、ラグランジュ関数の2次導関数(KKT系)に対してニュートン法を適用:
\begin{bmatrix}
\nabla^2_{xx} L & \nabla g^T \\
\nabla g & 0
\end{bmatrix}
\begin{bmatrix}
\Delta x \\
\Delta \lambda
\end{bmatrix} =
-\begin{bmatrix}
\nabla_x L \\
g(x)
\end{bmatrix}
2. 制約付き最適化問題の定式化
以下の最小化問題を考える:
\min_{x \in \mathbb{R}^n} f(x)
subject to:
g(x) = 0, \quad g: \mathbb{R}^n \to \mathbb{R}^m
3. ラグランジュの未定乗数法
ラグランジュ関数を以下で定義:
L(x, \lambda) = f(x) + \lambda^T g(x)
最適性の必要条件は:
\begin{align}
\frac{\partial L}{\partial x} &= \frac{\partial f}{\partial x} + \lambda^T \frac{\partial g}{\partial x} = 0 \\
\frac{\partial L}{\partial \lambda} &= g(x) = 0
\end{align}
4. パラメータ化による問題の簡略化
状態 $x$ をパラメータ $p \in \mathbb{R}^k$ の関数として表現:
g(x(p)) = 0
5. 感度解析
陰関数定理を拘束条件 $g(x(p)) = 0$ に適用:
\frac{\partial g}{\partial x}\frac{\partial x}{\partial p} + \frac{\partial g}{\partial p} = 0
ここで、$\frac{\partial g}{\partial x} \in \mathbb{R}^{m \times n}$、$\frac{\partial g}{\partial p} \in \mathbb{R}^{m \times k}$ である。
$\frac{\partial g}{\partial x}$ が正則と仮定すると、感度行列は:
S = \frac{\partial x}{\partial p} = -\left(\frac{\partial g}{\partial x}\right)^{-1} \frac{\partial g}{\partial p}
6. 目的関数の勾配
目的関数の勾配を連鎖律を用いて導出する:
- まず、連鎖律より:
\frac{\partial f}{\partial p} = \left(\frac{\partial x}{\partial p}\right)^T \frac{\partial f}{\partial x}
- 感度行列 $\frac{\partial x}{\partial p}$ を代入:
\frac{\partial f}{\partial p} = \left(-\left(\frac{\partial g}{\partial x}\right)^{-1} \frac{\partial g}{\partial p}\right)^T \frac{\partial f}{\partial x}
- 転置の性質 $(AB)^T = B^T A^T$ を適用:
\frac{\partial f}{\partial p} = -\left(\frac{\partial g}{\partial p}\right)^T \left(\left(\frac{\partial g}{\partial x}\right)^{-1}\right)^T \frac{\partial f}{\partial x}
- 逆行列の転置 $(A^{-1})^T = (A^T)^{-1}$ より:
\frac{\partial f}{\partial p} = -\left(\frac{\partial g}{\partial p}\right)^T \left(\frac{\partial g}{\partial x}\right)^{-T} \frac{\partial f}{\partial x}
ここで、$\left(\frac{\partial g}{\partial x}\right)^{-T}$ は $\left(\frac{\partial g}{\partial x}\right)^T$ の逆行列を表す。
7. Adjoint法の導入
目的関数の勾配の式を見ると:
\frac{\partial f}{\partial p} = -\left(\frac{\partial g}{\partial p}\right)^T \left[\left(\frac{\partial g}{\partial x}\right)^{-T} \frac{\partial f}{\partial x}\right]
ここで、括弧内の項に注目し、随伴変数 $\lambda$ を以下で定義:
\lambda = \left(\frac{\partial g}{\partial x}\right)^{-T} \frac{\partial f}{\partial x}
これは以下の線形方程式を解くことと等価:
\left(\frac{\partial g}{\partial x}\right)^T \lambda = \frac{\partial f}{\partial x}
この線形方程式を解くことで $\lambda$ が得られる。
8. 最終的な勾配の表現
- 元の式に $\lambda$ を代入:
\frac{\partial f}{\partial p} = -\left(\frac{\partial g}{\partial p}\right)^T \lambda
- 転置の性質より最終形:
\frac{\partial f}{\partial p} = -\lambda^T \frac{\partial g}{\partial p}
この形は、ラグランジュの未定乗数法の式と対応している。実際、ラグランジュ関数:
L(x, \lambda) = f(x) + \lambda^T g(x)
の最適性条件:
\frac{\partial L}{\partial x} = \frac{\partial f}{\partial x} + \lambda^T \frac{\partial g}{\partial x} = 0
を変形すると:
\frac{\partial f}{\partial x} = -\lambda^T \frac{\partial g}{\partial x}
となり、これは先ほどの随伴方程式と同じ構造を持つ。このことから、Adjoint法の $\lambda$ はラグランジュ乗数と本質的に同じ役割を果たしていることがわかる。
この形により、勾配の計算が効率的になる:
- $\lambda$ を求める線形方程式を1回解くだけでよい
- 大規模な逆行列計算を避けることができる
9. 計算効率の比較
- 感度行列による方法: $O(n^3)$ の行列演算が必要
- Adjoint法: $O(n^2)$ の線形方程式を1回解くのみ
10. トポロジー最適化への応用
コンプライアンス最小化問題の例:
f(u) = \int_\Omega F^T u \, d\Omega
線形弾性体の平衡方程式:
g(u,\rho) = K(\rho)u - F = 0
ここで、$u$ は変位場、$\rho$ は密度場、$K(\rho)$ は対称正定値の剛性マトリクス、$F$ は外力ベクトル。
Adjoint法を適用すると:
- 目的関数と拘束条件の対応:
\begin{align}
f(u) &= \int_\Omega F^T u \, d\Omega & \text{(目的関数)} \\
g(u,\rho) &= K(\rho)u - F = 0 & \text{(拘束条件)}
\end{align}
- 随伴方程式の導出:
\begin{align}
\left(\frac{\partial g}{\partial u}\right)^T \lambda &= \frac{\partial f}{\partial u} \\
K(\rho)^T \lambda &= F
\end{align}
ここで、$\frac{\partial g}{\partial u} = K(\rho)$ であり、$\frac{\partial f}{\partial u} = F$ となる。
- 最終的な感度:
\begin{align}
\frac{\partial f}{\partial \rho} &= -\lambda^T \frac{\partial g}{\partial \rho} \\
&= -\lambda^T \frac{\partial}{\partial \rho}(K(\rho)u - F) \\
&= -\lambda^T \frac{\partial K(\rho)}{\partial \rho}u
\end{align}
この形式は一般的な Adjoint法の構造と完全に一致しており:
- $u$ が状態変数 $x$ に対応
- $\rho$ がパラメータ $p$ に対応
- $K(\rho)$ が拘束条件のヤコビアン $\frac{\partial g}{\partial x}$ に対応
- $F$ が目的関数の勾配 $\frac{\partial f}{\partial x}$ に対応
11. 二次の感度解析とニュートン法的アプローチ
目的関数 $T$ のパラメータ $p$ に関する二次の感度解析を考える。テイラー展開により:
\frac{\partial T}{\partial p}(p + \Delta p) \approx \frac{\partial T}{\partial p}(p) + \frac{\partial^2 T}{\partial p^2}\Delta p
ニュートン法的アプローチでは、$\frac{\partial T}{\partial p}(p + \Delta p) = 0$ を解くことで更新量 $\Delta p$ を得る:
\frac{\partial^2 T}{\partial p^2}\Delta p = -\frac{\partial T}{\partial p}
ここで、ヤコビアン $S = \frac{\partial x}{\partial p}$ を用いて一階微分を表現すると:
\frac{\partial T}{\partial p} = S^T \frac{\partial T}{\partial x}
二階微分(ヘッセ行列)は連鎖律により:
\frac{\partial^2 T}{\partial p^2} = S^T \frac{\partial^2 T}{\partial x^2}S + \frac{\partial^2 x}{\partial p^2}\frac{\partial T}{\partial x}
12. ニュートン-Adjoint法の最終形式
前節までの議論を統合すると、ニュートン法とAdjoint法を組み合わせた効率的な最適化アルゴリズムが得られる:
- 状態方程式を解く:
g(x, p) = 0
- Adjoint方程式を解いて $\lambda$ を得る:
\left(\frac{\partial g}{\partial x}\right)^T \lambda = \frac{\partial T}{\partial x}
- 感度行列を計算:
S = -\left(\frac{\partial g}{\partial x}\right)^{-1} \frac{\partial g}{\partial p}
- 目的関数の勾配を計算:
\frac{\partial T}{\partial p} = -\lambda^T \frac{\partial g}{\partial p}
- 近似ヘッセ行列を構築:
H \approx S^T \frac{\partial^2 T}{\partial x^2}S
- パラメータを更新:
p_{k+1} = p_k - \alpha_k H^{-1}\frac{\partial T}{\partial p}
このアルゴリズムは以下の特徴を持つ:
- Adjoint法による効率的な勾配計算
- ニュートン法的な収束性
- 大規模問題への適用可能性
- 実装の現実性
実装上の注意点:
- 状態方程式とAdjoint方程式の効率的な解法の選択
- ヘッセ行列の近似精度と計算コストのバランス
- 適切なステップ幅 $\alpha_k$ の選択
- 収束判定基準の設定
13. ニューラルネットワークとの関連
フィードフォワードネットワークにおけるバックプロパゲーションは Adjoint法の特殊ケースとして解釈できる:
- $\mathcal{L}$ → 目的関数 $f$
- $a^{(l+1)} = \sigma(W^{(l)}a^{(l)} + b^{(l)})$ → 拘束条件 $g$
- $(W^{(l)}, b^{(l)})$ → パラメータ $p$
- $\delta^{(l)}$ → 随伴変数 $\lambda$
ただし、各層で独立に最適化可能な点が通常の Adjoint法とは異なる。