
ガウス・ニュートン法は、非線形最小二乗問題を解くために用いられます。これは、関数値の二乗和を最小化することに相当します。これは、非線形関数の最小値を求めるためのニュートン法の拡張です。二乗和は非負でなければならないため、このアルゴリズムは、ニュートン法を用いて和の成分の零点を反復的に近似し、和を最小化するものと見なすことができます。この意味で、このアルゴリズムは過剰決定方程式系を解くための有効な方法でもあります。計算が難しい場合がある二階微分が不要であるという利点があります。[ 1 ]
非線形最小二乗問題は、例えば非線形回帰において発生する。非線形回帰では、モデルが利用可能な観測値とよく一致するようなモデルのパラメータが求められる。
この方法は数学者カール フリードリッヒ ガウスとアイザック ニュートンにちなんで名付けられ、ガウスの 1809 年の著作『Theoria motus corporum coelestium in Sectionibus conicis solem ambientum』に初めて登場しました。[ 2 ]
与えられた関数(しばしば残差と呼ばれる)変数とガウス・ニュートン法は、反復的に値を求めます。二乗和を最小化する[ 3 ]
最初の推測から始める最小値の場合、この方法は反復によって進行する。
ここで、rとβが列ベクトルである場合、ヤコビ行列の要素は次のようになる。
そしてシンボルは行列の転置を表します。
各反復において、更新これは、前の式を次の2つの手順で変形することによって求めることができます。
交代選手と共に、、 そしてこれは、従来の行列方程式の形に変わります。そして、それはさまざまな方法で解決できます(注を参照)。
m = nの場合、反復は次のように簡略化されます。
これは、ニュートン法を一次元に直接一般化したものである。
データフィッティングでは、目標はパラメータを見つけることです。与えられたモデル関数いくつかのデータポイントに最適に適合します関数残差は:
すると、ガウス・ニュートン法はヤコビアンを用いて表現できる。関数のとして
ご了承くださいは、の左擬似逆行列です。。
アルゴリズムの説明におけるm ≥ nという仮定は必要である。そうでないと行列がは逆行列を持たないため、正規方程式は(少なくとも一意に)解くことができません。
ガウス・ニュートン法は、関数ベクトルr iを線形近似することで導出できます。テイラーの定理を用いると、各反復において次のように記述できます。
と見つけるというタスク右辺の二乗和を最小化する。つまり、
これは線形最小二乗問題であり、明示的に解くことができ、アルゴリズム内の正規方程式が得られます。
通常の方程式は、未知の増分に関するn個の連立一次方程式である。これらは、コレスキー分解、あるいはより良い方法としてはQR分解を用いて、1ステップで解くことができる。大規模なシステムの場合、共役勾配法などの反復法の方が効率的である可能性があります。J rの列間に線形依存性がある場合、反復は失敗します。 単数形になる。
いつ複雑です :\mathbb {C} ^{n}\to \mathbb {C} } 共役形を使用する必要があります。。

この例では、ガウス・ニュートン法を用いて、データとモデルの予測値との間の誤差の二乗和を最小化することにより、モデルをデータに適合させます。
酵素が媒介する反応における基質濃度[ S ]と反応速度の関係を研究する生物学実験において、以下の表のデータが得られた。
次のような曲線(モデル関数)を見つけることが望ましい。
最小二乗法の意味でデータに最もよく適合するパラメータそして未定。
で表すそして[ S ]とレートの値はそれぞれ、。 させてそして見つけるそして残差の二乗和が
最小化されます。
ヤコビアン残差ベクトルの未知数に関しては行列とエントリを含む行
当初の推定値から始めると、そしてガウス・ニュートン法を5回繰り返した後、最適な値はそして得られた結果から、残差平方和は初期値の1.445から5回目の反復後には0.00784に減少した。右図のグラフは、観測データを用いて最適パラメータに基づいてモデルが決定した曲線を示している。
ガウス・ニュートン法は局所最小点に収束することが保証されている。4つの条件の下で:[ 4 ]関数開凸集合内で2回連続微分可能であるヤコビアンフル列ランクである初期反復近い局所最小値が小さい場合、収束は二次関数的になります。。
[ 5 ]に示すように、増分ΔはSの降下方向であり、アルゴリズムが収束すれば、極限はSの停留点となる。最小値が大きい場合しかし、収束は保証されておらず、ニュートン法のような局所的収束や、通常のウルフ条件の下での収束も保証されていない。[ 6 ]
ガウス・ニュートン法の収束速度は2乗に近づく可能性がある。[ 7 ]初期推定値が最小値または行列から遠い場合、アルゴリズムはゆっくりと収束するか、まったく収束しない可能性がある。条件が悪い。例えば、次の問題を考えてみよう。方程式と変数、以下で与えられる
のために、は局所最適解です。の場合、問題は実際には線形であり、この方法は 1 回の反復で最適解を見つけます。|λ| < 1 の場合、この方法は線形に収束し、誤差は反復ごとに |λ| 倍で漸近的に減少します。ただし、|λ| > 1 の場合、この方法は局所的にも収束しません。[ 8 ]
ガウス・ニュートン反復法 は、以下の形式の過剰決定方程式系 を解くための効果的な方法です。 と そしてどこは、ヤコビ行列のムーア・ペンローズ逆行列(擬似逆行列とも呼ばれる)である。のこれはニュートン法の拡張と見なすことができ、孤立した正則解に向かって同じ局所的な二次収束性を持つ[ 4 ] 。
解が存在しない場合でも、最初の反復がある点に近い平方和がが小さな局所最小値に達すると、ガウス・ニュートン反復は線形収束して要点これはしばしば、過剰決定系の最小二乗解と呼ばれる。
以下では、関数最適化のためのニュートン法から近似法を用いてガウス・ニュートン法を導出します。その結果、ガウス・ニュートン法の収束速度は、特定の正則条件の下では二次関数的になります。一般に(より弱い条件の下では)、収束速度は線形です。[ 9 ]
パラメータ関数Sを最小化するためのニュートン法の漸化式は
ここで、gはSの勾配ベクトルを表し、HはSのヘッセ行列を表す。
以来勾配は次のように与えられる。
ヘッセ行列の要素は、勾配要素を微分することによって計算されます。、 に関して:
ガウス・ニュートン法は、2次導関数項(この式の2番目の項)を無視することによって得られます。つまり、ヘッセ行列は次のように近似されます。
どこはヤコビ行列J rのエントリです。正確なヘッセ行列が正確な近似値の近くで評価されると、ほぼゼロになることに注意してください。したがって、第2項もほぼゼロになり、近似が正当化されます。勾配と近似ヘッセ行列は、行列表記で次のように表すことができます。
これらの式を上記の漸化式に代入すると、演算方程式が得られます。 ;\quad \Delta =-\left(\mathbf {J_{r}} ^{\operatorname {T} }\mathbf {J_{r}} \right)^{-1}\mathbf {J_{r}} ^{\operatorname {T} }\mathbf {r} .}
ガウス・ニュートン法の収束は、すべての場合において保証されるわけではありません。近似
2次導関数項を無視するためには、収束が期待される2つのケースで有効である可能性がある。[ 10 ]
ガウス・ニュートン法では、残差の二乗和Sは反復ごとに減少しない可能性があります。ただし、Δは降下方向であるため、静止点であるならば、十分に小さいすべてのしたがって、発散が発生した場合の解決策の1つは、分数を用いることである。更新式における増分ベクトルΔについて:
言い換えれば、増分ベクトルは長すぎるが、それでも「下り坂」を指しているため、途中まで進むだけで目的関数Sが減少します。線探索アルゴリズムを使用して見つけることができる、つまり、は、通常、区間内で直接探索法を用いて、 Sを最小化する値を見つけることによって決定されます。または、Armijo線探索などのバックトラッキング線探索。通常、は、ウルフ条件またはゴールドスタイン条件を満たすように選択されるべきである。[ 11 ]
シフトベクトルの方向が最適分数 α がゼロに近い場合、発散を処理する代替方法として、信頼領域法であるレーベンバーグ・マルカート法が用いられる。[ 3 ]正規方程式は、増分ベクトルが最急降下の方向に回転するように修正される。
ここで、Dは正の対角行列です。Dが単位行列Iである場合、、 それからしたがって、 Δの方向は負の勾配の方向に近づく。。
いわゆるマルカートパラメータ線探索によって最適化することもできますが、シフトベクトルを毎回再計算する必要があるため、これは非効率的です。が変更されます。より効率的な戦略は次のとおりです。発散が発生した場合は、 Sが減少するまでマルカートパラメータを増加させます。その後、1 つの反復から次の反復に値を保持しますが、可能であればカットオフ値に達するまで減少させ、カットオフ値に達したらマルカートパラメータをゼロに設定します。すると、 Sの最小化は標準的なガウス・ニュートン法による最小化になります。
大規模最適化の場合、ガウス・ニュートン法は特に興味深い。なぜなら、行列が近似ヘッセ行列よりも疎であるこのような場合、ステップ計算自体は、共役勾配法など、大規模で疎な問題に適した近似反復法を用いて行う必要があるのが一般的です。
この種のアプローチを機能させるには、少なくとも積を計算するための効率的な方法が必要である。
あるベクトルpに対して。疎行列ストレージでは、一般的に、行を格納することが実用的です。圧縮形式(例えば、ゼロエントリなし)では、転置のため上記の積を直接計算するのは困難です。ただし、c i を行列のi行目と定義すれば次のような単純な関係が成り立つ。
これにより、各行が積に加算的かつ独立して寄与します。実用的な疎なストレージ構造を尊重するだけでなく、この式は並列計算にも適しています。各行c iは対応する残差r iの勾配であることに注意してください。この点を考慮すると、上記の式は残差が互いに独立して問題に寄与するという事実を強調しています。
デイビドン、フレッチャー、パウエルによる方法やブロイデン・フレッチャー・ゴールドファーブ・シャノ(BFGS法)のような準ニュートン法では、完全なヘッセ行列の推定値1階微分を用いて数値的に構築されるこれは、 n回の改良サイクル後に、この手法が性能面でニュートン法に非常に近いものとなるようにするためである。なお、準ニュートン法は一般的な実数値関数を最小化できるのに対し、ガウス・ニュートン法、レーベンバーグ・マルカート法などは非線形最小二乗問題にしか適用できないことに注意されたい。
最小化問題を解く別の方法として、一次導関数のみを用いる勾配降下法がある。しかし、この方法は二次導関数を近似的にさえ考慮しない。そのため、多くの関数、特にパラメータ間に強い相互作用がある場合には、非常に非効率的である。
Juliaでの以下の実装では、提供されたヤコビアンを使用するメソッドと、自動微分を使用して計算する別のメソッドが提供されます。
""" gaussnewton(r, J, β₀, maxiter, tol)ガウス・ニュートン最適化を実行し、ヤコビ行列 `J` を用いて残差関数 `r` を最小化します。開始値は `β₀` です。アルゴリズムは、ステップのノルムが `tol` 未満になった場合、または `maxiter` 回反復した後に終了します。""" function gaussnewton ( r , J , β₀ , maxiter , tol ) β = copy ( β₀ ) for _ in 1 : maxiter Jβ = J ( β ) ; Δ = - ( Jβ ' * Jβ ) \ ( Jβ ' * r ( β )) β += Δ if sqrt ( sum ( abs2 , Δ )) < tol break end end return β endimport AbstractDifferentiation as AD , Zygote backend = AD . ZygoteBackend () # 他のバックエンドも利用可能です""" gaussnewton(r, β₀, maxiter, tol)ガウス・ニュートン最適化を実行して、初期値 `β₀` から残差関数 `r` を最小化します。関連するヤコビアンは自動微分を使用して計算されます。アルゴリズムは、ステップのノルムが `tol` 未満になったとき、または `maxiter` 回反復した後に終了します。""" function gaussnewton ( r , β₀ , maxiter , tol ) β = copy ( β₀ ) for _ in 1 : maxiter rβ , Jβ = AD . value_and_jacobian ( backend , r , β ) Δ = - ( Jβ [ 1 ] ' * Jβ [ 1 ] ) \ ( Jβ [ 1 ] ' * rβ ) β += Δ if sqrt ( sum ( abs2 , Δ )) < tol break end end return β end{{cite web}}: CS1 maint: タイトルとしてアーカイブされたコピー (リンク){{cite book}}: CS1メンテナンス: パブリッシャーの場所 (リンク)