Summarize Timeline Top Qs Fact Check
ニュートン法と同様、関数
f
(
x
)
{\displaystyle f({\boldsymbol {x}})}
の解を見つけるために二次の近似を用いる。
f
(
x
)
{\displaystyle f({\boldsymbol {x}})}
の二階のテイラー展開 は
f
(
x
k
+
Δ
x
)
≈
f
(
x
k
)
+
∇
f
(
x
k
)
⊺
Δ
x
+
1
2
Δ
x
⊺
B
Δ
x
{\displaystyle f({\boldsymbol {x}}_{k}+\Delta {\boldsymbol {x}})\approx f({\boldsymbol {x}}_{k})+\nabla f({\boldsymbol {x}}_{k})^{\intercal }\Delta {\boldsymbol {x}}+{\frac {1}{2}}\Delta {\boldsymbol {x}}^{\intercal }{\boldsymbol {B}}\Delta {\boldsymbol {x}}}
となる。この式で
∇
f
{\displaystyle \nabla f}
は勾配を表し、
B
{\displaystyle {\boldsymbol {B}}}
はヘッセ行列の近似を表す。勾配
∇
f
{\displaystyle \nabla f}
はさらに次のように近似される。
∇
f
(
x
k
+
Δ
x
)
≈
∇
f
(
x
k
)
+
B
Δ
x
{\displaystyle \nabla f({\boldsymbol {x}}_{k}+\Delta {\boldsymbol {x}})\approx \nabla f({\boldsymbol {x}}_{k})+{\boldsymbol {B}}\Delta {\boldsymbol {x}}}
この勾配が0になると仮定するとニュートン・ステップが次の式で計算される。
Δ
x
=
−
B
−
1
∇
f
(
x
k
)
{\displaystyle \Delta {\boldsymbol {x}}=-{\boldsymbol {B}}^{-1}\nabla f({\boldsymbol {x}}_{k})}
そこでヘッセ行列の近似
B
{\displaystyle {\boldsymbol {B}}}
は次の式を満たすように行われる。
∇
f
(
x
k
+
Δ
x
)
=
∇
f
(
x
k
)
+
B
Δ
x
{\displaystyle \nabla f({\boldsymbol {x}}_{k}+\Delta {\boldsymbol {x}})=\nabla f({\boldsymbol {x}}_{k})+{\boldsymbol {B}}\Delta {\boldsymbol {x}}}
この方程式はセカント方程式と呼ばれる。
f
{\displaystyle f}
が多次元空間上で定義される関数のとき、この式から
B
{\displaystyle {\boldsymbol {B}}}
を求める問題は劣決定問題になる(式の数よりも未知数の数が多い問題のこと)。このとき
B
{\displaystyle {\boldsymbol {B}}}
を求めて、ニュートン・ステップにより解を更新するという処理はセカント方程式を解くことに帰着される。多くの準ニュートン法はセカント方程式の解の選び方が異なっている。ほとんどの方法では
B
=
B
⊺
{\displaystyle {\boldsymbol {B}}={\boldsymbol {B}}^{\intercal }}
という対称性を仮定して解を求める。加えて、以下のリストに示す方法では新たな近似
B
k
+
1
{\displaystyle {\boldsymbol {B}}_{k+1}}
を得るために、その前の近似
B
k
{\displaystyle {\boldsymbol {B}}_{k}}
と、あるノルム の意味において近い解を選ぼうとする。すなわち何らかの正定値行列
V
{\displaystyle {\boldsymbol {V}}}
に対して
B
k
+
1
=
arg
min
B
‖
B
−
B
k
‖
V
{\displaystyle {\boldsymbol {B}}_{k+1}=\arg \min _{\boldsymbol {B}}\|{\boldsymbol {B}}-{\boldsymbol {B}}_{k}\|_{\boldsymbol {V}}}
と成るように
B
{\displaystyle {\boldsymbol {B}}}
を更新する。近似ヘッセ行列の初期値としては単位行列などが用いられる[ 6] 。最適化の解
x
k
{\displaystyle {\boldsymbol {x}}_{k}}
は近似によって得られた
B
k
{\displaystyle {\boldsymbol {B}}_{k}}
を用いたニュートン・ステップにより更新される。
アルゴリズムをまとめると以下のようになる。
Δ
x
k
=
−
α
B
k
−
1
∇
f
(
x
k
)
{\displaystyle \Delta {\boldsymbol {x}}_{k}=-\alpha {\boldsymbol {B}}_{k}^{-1}\nabla f({\boldsymbol {x}}_{k})}
x
k
+
1
=
x
k
+
Δ
x
k
{\displaystyle {\boldsymbol {x}}_{k+1}={\boldsymbol {x}}_{k}+\Delta {\boldsymbol {x}}_{k}}
新しい点での勾配
∇
f
(
x
k
+
1
)
{\displaystyle \nabla f({\boldsymbol {x}}_{k+1})}
を計算し
y
k
=
∇
f
(
x
k
+
1
)
−
∇
f
(
x
k
)
{\displaystyle {\boldsymbol {y}}_{k}=\nabla f({\boldsymbol {x}}_{k+1})-\nabla f({\boldsymbol {x}}_{k})}
とする
y
k
{\displaystyle {\boldsymbol {y}}_{k}}
を用いてヘッセ行列の逆行列
B
k
+
1
−
1
{\displaystyle {\boldsymbol {B}}_{k+1}^{-1}}
を直接近似する。近似の式は各手法ごとに以下のリストの通り。
Method
B
k
+
1
=
{\displaystyle {\boldsymbol {B}}_{k+1}=}
H
k
+
1
=
B
k
+
1
−
1
=
{\displaystyle {\boldsymbol {H}}_{k+1}={\boldsymbol {B}}_{k+1}^{-1}=}
DFP法
(
I
−
y
k
Δ
x
k
⊺
y
k
⊺
Δ
x
k
)
B
k
(
I
−
Δ
x
k
y
k
⊺
y
k
⊺
Δ
x
k
)
+
y
k
y
k
⊺
y
k
⊺
Δ
x
k
{\displaystyle \left({\boldsymbol {I}}-{\frac {{\boldsymbol {y}}_{k}\,\Delta {\boldsymbol {x}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\,\Delta {\boldsymbol {x}}_{k}}}\right){\boldsymbol {B}}_{k}\left({\boldsymbol {I}}-{\frac {\Delta {\boldsymbol {x}}_{k}{\boldsymbol {y}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\,\Delta {\boldsymbol {x}}_{k}}}\right)+{\frac {{\boldsymbol {y}}_{k}{\boldsymbol {y}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\,\Delta {\boldsymbol {x}}_{k}}}}
H
k
+
Δ
x
k
Δ
x
k
⊺
y
k
T
Δ
x
k
−
H
k
y
k
y
k
⊺
H
k
⊺
y
k
⊺
H
k
y
k
{\displaystyle {\boldsymbol {H}}_{k}+{\frac {\Delta {\boldsymbol {x}}_{k}\Delta {\boldsymbol {x}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{T}\,\Delta {\boldsymbol {x}}_{k}}}-{\frac {{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k}{\boldsymbol {y}}_{k}^{\intercal }{\boldsymbol {H}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k}}}}
BFGS法
B
k
+
y
k
y
k
⊺
y
k
⊺
Δ
x
k
−
B
k
Δ
x
k
(
B
k
Δ
x
k
)
⊺
Δ
x
k
T
B
k
Δ
x
k
{\displaystyle {\boldsymbol {B}}_{k}+{\frac {{\boldsymbol {y}}_{k}{\boldsymbol {y}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\Delta {\boldsymbol {x}}_{k}}}-{\frac {{\boldsymbol {B}}_{k}\Delta {\boldsymbol {x}}_{k}({\boldsymbol {B}}_{k}\Delta {\boldsymbol {x}}_{k})^{\intercal }}{\Delta {\boldsymbol {x}}_{k}^{T}{\boldsymbol {B}}_{k}\,\Delta {\boldsymbol {x}}_{k}}}}
(
I
−
y
k
Δ
x
k
⊺
y
k
⊺
Δ
x
k
)
⊺
H
k
(
I
−
y
k
Δ
x
k
⊺
y
k
⊺
Δ
x
k
)
+
Δ
x
k
Δ
x
k
⊺
y
k
⊺
Δ
x
k
{\displaystyle \left({\boldsymbol {I}}-{\frac {{\boldsymbol {y}}_{k}\Delta {\boldsymbol {x}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\Delta {\boldsymbol {x}}_{k}}}\right)^{\intercal }{\boldsymbol {H}}_{k}\left({\boldsymbol {I}}-{\frac {{\boldsymbol {y}}_{k}\Delta {\boldsymbol {x}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\Delta {\boldsymbol {x}}_{k}}}\right)+{\frac {\Delta {\boldsymbol {x}}_{k}\Delta {\boldsymbol {x}}_{k}^{\intercal }}{{\boldsymbol {y}}_{k}^{\intercal }\,\Delta {\boldsymbol {x}}_{k}}}}
ブロイデン法
B
k
+
y
k
−
B
k
Δ
x
k
Δ
x
k
⊺
Δ
x
k
Δ
x
k
⊺
{\displaystyle {\boldsymbol {B}}_{k}+{\frac {{\boldsymbol {y}}_{k}-{\boldsymbol {B}}_{k}\Delta {\boldsymbol {x}}_{k}}{\Delta {\boldsymbol {x}}_{k}^{\intercal }\,\Delta {\boldsymbol {x}}_{k}}}\,\Delta {\boldsymbol {x}}_{k}^{\intercal }}
H
k
+
(
Δ
x
k
−
H
k
y
k
)
Δ
x
k
⊺
H
k
Δ
x
k
⊺
H
k
y
k
{\displaystyle {\boldsymbol {H}}_{k}+{\frac {(\Delta {\boldsymbol {x}}_{k}-{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k})\Delta {\boldsymbol {x}}_{k}^{\intercal }{\boldsymbol {H}}_{k}}{\Delta {\boldsymbol {x}}_{k}^{\intercal }{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k}}}}
ブロイデン公式族
(
1
−
φ
k
)
B
k
+
1
BFGS
+
φ
k
B
k
+
1
DFP
,
φ
∈
[
0
,
1
]
{\displaystyle (1-\varphi _{k}){\boldsymbol {B}}_{k+1}^{\text{BFGS}}+\varphi _{k}{\boldsymbol {B}}_{k+1}^{\text{DFP}},\qquad \varphi \in [0,1]}
SR1法
B
k
+
(
y
k
−
B
k
Δ
x
k
)
(
y
k
−
B
k
Δ
x
k
)
⊺
(
y
k
−
B
k
Δ
x
k
)
⊺
Δ
x
k
{\displaystyle {\boldsymbol {B}}_{k}+{\frac {({\boldsymbol {y}}_{k}-{\boldsymbol {B}}_{k}\,\Delta {\boldsymbol {x}}_{k})({\boldsymbol {y}}_{k}-{\boldsymbol {B}}_{k}\,\Delta {\boldsymbol {x}}_{k})^{\intercal }}{({\boldsymbol {y}}_{k}-{\boldsymbol {B}}_{k}\,\Delta {\boldsymbol {x}}_{k})^{\intercal }\,\Delta {\boldsymbol {x}}_{k}}}}
H
k
+
(
Δ
x
k
−
H
k
y
k
)
(
Δ
x
k
−
H
k
y
k
)
⊺
(
Δ
x
k
−
H
k
y
k
)
⊺
y
k
{\displaystyle {\boldsymbol {H}}_{k}+{\frac {(\Delta {\boldsymbol {x}}_{k}-{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k})(\Delta {\boldsymbol {x}}_{k}-{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k})^{\intercal }}{(\Delta {\boldsymbol {x}}_{k}-{\boldsymbol {H}}_{k}{\boldsymbol {y}}_{k})^{\intercal }{\boldsymbol {y}}_{k}}}}