ガウス・ニュートン法

ガウス・ニュートン法（ガウス・ニュートンほう、英: Gauss–Newton method）は、非線形最小二乗法を解く手法の一つである。これは関数の最大・最小値を見出すニュートン法の修正とみなすことができる。ニュートン法とは違い、ガウス・ニュートン法は二乗和の最小化にしか用いることができないが、計算するのが困難な2階微分が不要という長所がある。 非線形最小二乗法は非線形回帰などで、観測データを良く表すようにモデルのパラメータを調整するために必要となる。 この手法の名称はカール・フリードリヒ・ガウスとアイザック・ニュートンにちなむ。 データフィッティングにおいて、与えられたモデル関数 y = f (x , β) がm 個のデータ点 {(xi , yi ); i = 1, ... , m } に最もよくフィットするようなn （≤ m ）個のパラメータβ = (β1 , ... , βn )を見つけることが目的である。 このとき、残差を r i ( β ) = y i − f ( x i , β ) {\displaystyle r_{i}({\boldsymbol {\beta }})=y_{i}-f(x_{i},{\boldsymbol {\beta }})} とする。 このとき、ガウス・ニュートン法は残差の平方和 S ( β ) = ∑ i = 1 m ( r i ( β ) ) 2 {\displaystyle S({\boldsymbol {\beta }})=\sum _{i=1}^{m}(r_{i}({\boldsymbol {\beta }}))^{2}} の最小値を反復計算で求める。初期推測値β(0) から初めて、この方法は以下の計算を繰り返す。 β ( s + 1 ) = β ( s ) − ( J r T J r ) − 1 J r T r ( β ( s ) ) , ( s = 0 , 1 , 2 , … ) . {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}-({J_{r}}^{\mathrm {T} }{J_{r}})^{-1}{J_{r}}^{\mathrm {T} }{\boldsymbol {r}}({\boldsymbol {\beta }}^{(s)}),\quad (s=0,1,2,\dots ).} ここで J r = ∂ r i ( β ( s ) ) ∂ β j {\displaystyle J_{r}={\frac {\partial r_{i}({\boldsymbol {\beta }}^{(s)})}{\partial \beta _{j}}}} はβ(s ) におけるr のヤコビアン、JrT は行列Jr の転置を表す。 m = n ならば、この反復計算は β ( s + 1 ) = β ( s ) − J r − 1 r ( β ( s ) ) {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}-J_{r}^{-1}{\boldsymbol {r}}({\boldsymbol {\beta }}^{(s)})} のように簡略化される。これは1次元ニュートン法の直接的な一般化である。 ガウス・ニュートン法は関数f のヤコビアンJf を用いて次のように表すこともできる： β ( s + 1 ) = β ( s ) + ( J f T J f ) − 1 J f T r ( β ( s ) ) . {\displaystyle {\boldsymbol {\beta }}^{(s+1)}={\boldsymbol {\beta }}^{(s)}+({J_{f}}^{\mathrm {T} }{J_{f}})^{-1}{J_{f}}^{\mathrm {T} }{\boldsymbol {r}}({\boldsymbol {\beta }}^{(s)}).} ガウス・ニュートン法は関数ri を並べたベクトルの線形近似で与えられる。テイラーの定理を用いれば、各反復において次式が成り立つ： r ( β ) ≈ r ( β s ) + J r ( β s ) Δ . {\displaystyle {\boldsymbol {r}}({\boldsymbol {\beta }})\approx {\boldsymbol {r}}({\boldsymbol {\beta }}^{s})+J_{r}({\boldsymbol {\beta }}^{s}){\boldsymbol {\Delta }}.} ここで Δ = β - βs である。右辺の残差平方和を最小化するΔを見つけること、すなわち min ⁡ [ ‖ r ( β s ) + J r ( β s ) Δ ‖ 2 2 ] {\displaystyle \operatorname {min} \left[{\|{\boldsymbol {r}}({\boldsymbol {\beta }}^{s})+J_{r}({\boldsymbol {\beta }}^{s}){\boldsymbol {\Delta }}\|_{2}}^{2}\right]} は線形最小二乗法の問題であるため、陽的に解くことができ、正規方程式を与える。ここで ||*||2 は 2-ノルム（ユークリッドノルム）である。 正規方程式は未知の増分Δについてのm 本の線形同次方程式である。これはコレスキー分解を用いることで、またはより良い方法としてはJr のQR分解を用いることで、1ステップで解ける。大きな系に対しては、共役勾配法のような反復解法が有効である。Jr の列ベクトルが線形従属である場合、JrTJr が非正則になるため反復解法は失敗する。 ここでは例として、ガウス・ニュートン法を使ってデータとモデルによる予測値の間の残差平方和を最小化し、データにモデルをフィットさせる。 生物実験において、酵素媒介反応における基質濃度[S] と反応率v の関係として次表のようなデータが得られたとする（右図の赤点）。 これらのデータに対し、次の形のモデル曲線（ミカエリス・メンテン式）のパラメータVmax とKM を、最小二乗の意味で最もよくフィットするように決定したい： v = V m a x [ S ] K M + [ S ] {\displaystyle v={\frac {V_{\mathrm {max} }[\mathrm {S} ]}{K_{\mathrm {M} }+[\mathrm {S} ]}}} xi とyi (i = 1, ... , 7) で [S] とv のデータを表す。また、β1 = Vmax 、β2 = KM とする。残差 r i = y i − β 1 x i β 2 + x i ( i = 1 , … , 7 ) {\displaystyle r_{i}=y_{i}-{\frac {\beta _{1}x_{i}}{\beta _{2}+x_{i}}}\quad (i=1,\dots ,7)} の平方和を最小化するβ1 とβ2 を見つけることが目的となる。 未知パラメータβに関する残差ベクトルr のヤコビアンJr は7×2の行列で、i 番目の行は次の要素を持つ： ( ∂ r i ∂ β 1 , ∂ r i ∂ β 2 ) = ( − x i β 2 + x i , β 1 x i ( β 2 + x i ) 2 ) . {\displaystyle {\begin{pmatrix}{\dfrac {\partial r_{i}}{\partial \beta _{1}}},&{\dfrac {\partial r_{i}}{\partial \beta _{2}}}\end{pmatrix}}={\begin{pmatrix}-{\dfrac {x_{i}}{\beta _{2}+x_{i}}},&{\dfrac {\beta _{1}x_{i}}{\left(\beta _{2}+x_{i}\right)^{2}}}\end{pmatrix}}.} 初期推定値としてβ1 = 0.9、β2 = 0.2から始め、ガウス・ニュートン法による5回の反復計算を行うと、最適値 β