ブロイデン法

数値解析において、ブロイデン法（ブロイデンほう英: Broyden's method）とは準ニュートン法の1種であり、多変数関数の求根に用いられるアルゴリズムである。1965年にチャールズ・ジョージ・ブロイデン（英語版）が発表した。 ニュートン法によりf(x) = 0を解く場合、各イテレーションごとにヤコビアンJを用いることになる。しかし、ヤコビアンを計算するには困難で複雑な演算を要する。ブロイデン法では、ヤコビアン全体を最初のイテレーションで1回だけ計算し、以降のイテレーションではランク1更新を用いる。 1979年、Gayによりブロイデン法はサイズn × nの線形システムに適用したとき2 nステップで終了することが証明された。しかし、他の準ニュートン法と同様、非線形システムに対しては収束する保証はない。 割線法では、f′のxnにおける1階微分を有限差分近似する。 f ′ ( x n ) ≃ f ( x n ) − f ( x n − 1 ) x n − x n − 1 {\displaystyle f'(x_{n})\simeq {\frac {f(x_{n})-f(x_{n-1})}{x_{n}-x_{n-1}}}} その上で、ニュートン法と同様の操作を繰り返す x n + 1 = x n − f ( x n ) f ′ ( x n ) {\displaystyle x_{n+1}=x_{n}-{\frac {f(x_{n})}{f^{\prime }(x_{n})}}} ここでnはイテレーション指数である。 k本の非線形方程式の系 f ( x ) = 0 {\displaystyle {\boldsymbol {f}}({\boldsymbol {x}})=\mathbf {0} } を考える。ここでfはベクトルxのベクトル値関数である。 x = ( x 1 , x 2 , x 3 , … , x k ) {\displaystyle {\boldsymbol {x}}=(x_{1},x_{2},x_{3},\dotsc ,x_{k})} f ( x ) = ( f 1 ( x 1 , x 2 , … , x k ) , f 2 ( x 1 , x 2 , … , x k ) , … , f k ( x 1 , x 2 , … , x k ) ) {\displaystyle {\boldsymbol {f}}({\boldsymbol {x}})={\big (}f_{1}(x_{1},x_{2},\dotsc ,x_{k}),f_{2}(x_{1},x_{2},\dotsc ,x_{k}),\dotsc ,f_{k}(x_{1},x_{2},\dotsc ,x_{k}){\big )}} このような問題に対して、ブロイデンは1次元ニュートン法の微分をヤコビアンJで置き換えて一般化した手法を考案した。ヤコビアンは、次のように割線法における有限差分近似にもとづいて反復的に決定される。 J n ( x n − x n − 1 ) ≃ f ( x n ) − f ( x n − 1 ) {\displaystyle {\boldsymbol {J}}_{n}({\boldsymbol {x}}_{n}-{\boldsymbol {x}}_{n-1})\simeq {\boldsymbol {f}}({\boldsymbol {x}}_{n})-{\boldsymbol {f}}({\boldsymbol {x}}_{n-1})} ここでnはイテレーション指数である。 f n = f ( x n ) {\displaystyle {\boldsymbol {f}}_{n}={\boldsymbol {f}}({\boldsymbol {x}}_{n})} Δ x n = x n − x n − 1 {\displaystyle \Delta {\boldsymbol {x}}_{n}={\boldsymbol {x}}_{n}-{\boldsymbol {x}}_{n-1}} Δ f n = f n − f n − 1 {\displaystyle \Delta {\boldsymbol {f}}_{n}={\boldsymbol {f}}_{n}-{\boldsymbol {f}}_{n-1}} のように定義すると、上式は以下のように簡潔に書ける。 J n Δ x n ≃ Δ f n {\displaystyle {\boldsymbol {J}}_{n}\Delta {\boldsymbol {x}}_{n}\simeq \Delta {\boldsymbol {f}}_{n}} 上式はkが1より大きい場合は劣決定系（英語版）となる。ブロイデンは、以下のようにヤコビアンの現状の推定値Jn−1を最低限の変更により割線方程式を満たすよう改善することを提案した。 J n = J n − 1 + Δ f n − J n − 1 Δ x n ‖ Δ x n ‖ 2 Δ x n ⊤ {\displaystyle {\boldsymbol {J}}_{n}={\boldsymbol {J}}_{n-1}+{\frac {\Delta {\boldsymbol {f}}_{n}-{\boldsymbol {J}}_{n-1}\Delta {\boldsymbol {x}}_{n}}{\|\Delta {\boldsymbol {x}}_{n}\|^{2}}}\Delta {\boldsymbol {x}}_{n}^{\top }} これにより以下のフロベニウスノルムが最小化される。 ‖ J n − J n − 1 ‖ F {\displaystyle \|{\boldsymbol {J}}_{n}-{\boldsymbol {J}}_{n-1}\|_{\rm {F}}} これでNewton direction[訳語疑問点]へ進むことができる。 x n + 1 = x n − J n − 1 f ( x n ) {\displaystyle {\boldsymbol {x}}_{n+1}={\boldsymbol {x}}_{n}-{\boldsymbol {J}}_{n}^{-1}{\boldsymbol {f}}(\mathbf {x} _{n})} ブロイデンはSherman-Morrisonの公式（英語版）を用いてヤコビアンの逆行列を直接更新することも提案している。 J n − 1 = J n − 1 − 1 + Δ x n − J n − 1 − 1 Δ f n Δ x n T J n − 1 − 1 Δ f n Δ x n ⊤ J n − 1 − 1 {\displaystyle {\boldsymbol {J}}_{n}^{-1}={\boldsymbol {J}}_{n-1}^{-1}+{\frac {\Delta {\boldsymbol {x}}_{n}-{\boldsymbol {J}}_{n-1}^{-1}\Delta {\boldsymbol {f}}_{n}}{\Delta {\boldsymbol {x}}_{n}^{\mathrm {T} }{\boldsymbol {J}}_{n-1}^{-1}\Delta {\boldsymbol {f}}_{n}}}\Delta {\boldsymbol {x}}_{n}^{\top }{\boldsymbol {J}}_{n-1}^{-1}} この1つめの手法は「良いブロイデン法」とも呼ばれる。 類似手法として、Jn−1に若干異なる変更を加える手法も導出できる。この2つめの手法は「悪いブロイデン法」とも呼ばれる(ただし、を参照)。 J n − 1 = J n − 1 − 1 + Δ x n − J n − 1 − 1 Δ f n ‖ Δ f n ‖ 2 Δ f n ⊤ {\displaystyle {\boldsymbol {J}}_{n}^{-1}={\boldsymbol {J}}_{n-1}^{-1}+{\frac {\Delta {\boldsymbol {x}}_{n}-{\boldsymbol {J}}_{n-1}^{-1}\Delta {\boldsymbol {f}}_{n}}{\|\Delta {\boldsymbol {f}}_{n}\|^{2}}}\Delta {\boldsymbol {f}}_{n}^{\top }} これは上とはことなる以下のフロベニウスノルムを最小化する。 ‖ J n − 1 − J n − 1 − 1 ‖ F {\displaystyle \|{\boldsymbol {J}}_{n}^{-1}-{\boldsymbol {J}}_{n-1}^{-1}\|_{\rm {F}}} 他にも多くの準ニュートン法が提案されており、これを用いてある関数の勾配の求根を行うことによりその関数の最大値または最小値をみつける、すなわち最適化を行うために活用されている。勾配のヤコビアンはヘッシアンと呼ばれ、対称行列であるため更新式にさらなる制約が追加される。 上述の2つの手法に加え、ブロイデンは関連する手法の1群を定義した。一般に、Broyden Class[訳語疑問点]の手法は以下の形式で与えられる。 J k + 1 = J k − J k s k s k ⊤ J k s k ⊤ J k s k + y k y k ⊤ y k T s k + ϕ k ( s k ⊤ J k s k ) v k v k ⊤ {\displaystyle {\boldsymbol {J}}_{k+1}={\boldsymbol {J}}_{k}-{\frac {{\boldsymbol {J}}_{k}s_{k}s_{k}^{\top }{\boldsymbol {J}}_{k}}{s_{k}^{\top }{\boldsymbol {J}}_{k}s_{k}}}+{\frac {y_{k}y_{k}^{\top }}{y_{k}^{T}s_{k}}}+\phi _{k}\left(s_{k}^{\top }{\boldsymbol {J}}_{k}s_{k}\right)v_{k}v_{k}^{\top }} ここで、 y k := f ( x k + 1 ) − f ( x k ) {\displaystyle y_{k}:={\boldsymbol {f}}({\boldsymbol {x}}_{k+1})-{\boldsymbol {f}}({\boldsymbol {x}}_{k})} および s k := x k + 1 − x k {\displaystyle s_{k}:={\boldsymbol {x}}_{k+1}-{\boldsymbol {x}}_{k}} 、 v k = [ y k y k T s k − J k s k s k T J k s k ] {\displaystyle v_{k}=\left[{\frac {y_{k}}{y_{k}^{T}s_{k}}}-{\frac {\mathbf {J} _{k}s_{k}}{s_{k}^{T}\mathbf {J} _{k}s_{k}}}\right]} であり、 k = 1 , 2 , . . . {\displaystyle k=1,2,...} に対して各 ϕ k ∈ R {\displaystyle \phi _{k}\in \mathbb {R} } を定めることによりその手法が決定される。 Broyden classに分類できる手法のいくつかは他の著者により提案されている。 DFP法はBroyden classに分類できる手法のうち、先述の2手法がブロイデンにより提案されるようりも前に発表されていた唯一の手法である。DFP法は ϕ k = 1 {\displaystyle \phi _{k}=1} を用いる。 Schubert's algorithm[訳語疑問点]または疎ブロイデン法は疎なヤコビアン向けの修正版である。 Klement (2014) は多方程式系の求根を少ないイテレーションで解く。 割線法 ニュートン法 準ニュートン法 ニュートン法による最適化（英語版） DFP法 BFGS法 ^ a b c Broyden, C. G. (October 1965). “A Class of Methods for Solving Nonlinear Simultaneous Equations”. Mathematics of Computation (American Mathematical Society) 19 (92): 577–593. doi:10.1090/S0025-5718-1965-0198670-6. JSTOR 2003941.  ^ Gay, D. M. (August 1979). “Some convergence properties of Broyden's method”. SIAM Journal on Numerical Analysis (SIAM) 16 (4): 623–630. doi:10.1137/0716047.  ^ Kvaalen, Eric (November 1991). “A faster Broyden method”. BIT Numerical Mathematics (SIAM) 31 (2): 369–372. doi:10.1007/BF01931297.  ^ a b Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization. Springer Series in Operations Research and Financial Engineering. Springer New York. doi:10.1007/978-0-387-40065-5. ISBN 978-0-387-30303-1. http://link.springer.com/10.1007/978-0-387-40065-5  ^ Schubert, L. K. (1970-01-01). “Modification of a quasi-Newton method for nonlinear equations with a sparse Jacobian”. Mathematics of Computation 24 (109): 27–30. doi:10.1090/S0025-5718-1970-0258276-9. ISSN 0025-5718. https://www.ams.org/mcom/1970-24-109/S0025-5718-1970-0258276-9/.  ^ Klement, Jan (2014-11-23). “On Using Quasi-Newton Algorithms of the Broyden Class for Model-to-Test Correlation” (英語). Journal of Aerospace Technology and Management 6 (4): 407–414. doi:10.5028/jatm.v6i4.373. ISSN 2175-9146. http://www.jatm.com.br/ojs/index.php/jatm/article/view/373.  ^ “Broyden class methods – File Exchange – MATLAB Central”. www.mathworks.com. 2016年2月4日閲覧。 Dennis, J. E.; Schnabel, Robert B. (1983). Numerical Methods for Unconstrained Optimization and Nonlinear Equations. Englewood Cliffs: Prentice Hall. pp. 168–193. ISBN 0-13-627216-9  Fletcher, R. (1987). Practical Methods of Optimization (Second ed.). New York: John Wiley & Sons. pp. 44–79. ISBN 0-471-91547-5. https://archive.org/details/practicalmethods0000flet  Simple basic explanation: The story of the blind archer