考慮一組
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
m
,
y
m
)
{\displaystyle (x_{1},y_{1}),(x_{2},y_{2}),\dots ,(x_{m},y_{m})}
共
m
{\displaystyle m}
個數據點以及曲線(模型函數)
y
^
=
f
(
x
,
β
)
{\displaystyle {\hat {y}}=f(x,{\boldsymbol {\beta }})}
。該曲線同時取決於x 與
β
=
(
β
1
,
β
2
,
…
,
β
n
)
{\displaystyle {\boldsymbol {\beta }}=(\beta _{1},\beta _{2},\dots ,\beta _{n})}
共n 個參數(滿足
m
≥
n
{\displaystyle m\geq n}
)。目標是找到在最小二乘意義上與數據點擬合最好的曲線所對應的參數
β
{\displaystyle {\boldsymbol {\beta }}}
,即最小化平方和
S
=
∑
i
=
1
m
r
i
2
,
{\displaystyle S=\sum _{i=1}^{m}r_{i}^{2},}
其中殘差 ri 的定義為
r
i
=
y
i
−
f
(
x
i
,
β
)
,
(
i
=
1
,
2
,
…
,
m
)
.
{\displaystyle r_{i}=y_{i}-f(x_{i},{\boldsymbol {\beta }}),\qquad (i=1,2,\dots ,m).}
S 取最小值 時的梯度 為零。由於模型包含n 個參數,因此可得到n 個梯度方程:
∂
S
∂
β
j
=
2
∑
i
r
i
∂
r
i
∂
β
j
=
0
(
j
=
1
,
…
,
n
)
.
{\displaystyle {\frac {\partial S}{\partial \beta _{j}}}=2\sum _{i}r_{i}{\frac {\partial r_{i}}{\partial \beta _{j}}}=0\quad (j=1,\ldots ,n).}
在非線性系統中,偏導數
∂
r
i
∂
β
j
{\textstyle {\frac {\partial r_{i}}{\partial \beta _{j}}}}
同時是自變量x 和參數
β
{\displaystyle {\boldsymbol {\beta }}}
的函數,因此這些梯度方程通常沒有封閉解。因而必須為參數選擇初始值用以迭代求解。迭代表達式為
β
j
≈
β
j
k
+
1
=
β
j
k
+
Δ
β
j
.
{\displaystyle \beta _{j}\approx \beta _{j}^{k+1}=\beta _{j}^{k}+\Delta \beta _{j}.}
其中,k 是迭代次數,
Δ
β
{\displaystyle \Delta {\boldsymbol {\beta }}}
則是偏移向量。每次迭代時,使用關於
β
k
{\displaystyle {\boldsymbol {\beta }}^{k}}
的一階泰勒級數 展開以線性化模型:
f
(
x
i
,
β
)
≈
f
(
x
i
,
β
k
)
+
∑
j
∂
f
(
x
i
,
β
k
)
∂
β
j
(
β
j
−
β
j
k
)
=
f
(
x
i
,
β
k
)
+
∑
j
J
i
j
Δ
β
j
.
{\displaystyle f(x_{i},{\boldsymbol {\beta }})\approx f(x_{i},{\boldsymbol {\beta }}^{k})+\sum _{j}{\frac {\partial f(x_{i},{\boldsymbol {\beta }}^{k})}{\partial \beta _{j}}}\left(\beta _{j}-\beta _{j}^{k}\right)=f(x_{i},{\boldsymbol {\beta }}^{k})+\sum _{j}J_{ij}\,\Delta \beta _{j}.}
雅可比矩陣 J 是常數、自變量與參數的函數,因此每次迭代時的J 並不固定。對線性化模型而言,
∂
r
i
∂
β
j
=
−
J
i
j
,
{\displaystyle {\frac {\partial r_{i}}{\partial \beta _{j}}}=-J_{ij},}
殘差的表達式則為
Δ
y
i
=
y
i
−
f
(
x
i
,
β
k
)
,
{\displaystyle \Delta y_{i}=y_{i}-f(x_{i},{\boldsymbol {\beta }}^{k}),}
r
i
=
y
i
−
f
(
x
i
,
β
)
=
(
y
i
−
f
(
x
i
,
β
k
)
)
+
(
f
(
x
i
,
β
k
)
−
f
(
x
i
,
β
)
)
≈
Δ
y
i
−
∑
s
=
1
n
J
i
s
Δ
β
s
.
{\displaystyle r_{i}=y_{i}-f(x_{i},{\boldsymbol {\beta }})=\left(y_{i}-f(x_{i},{\boldsymbol {\beta }}^{k})\right)+\left(f(x_{i},{\boldsymbol {\beta }}^{k})-f(x_{i},{\boldsymbol {\beta }})\right)\approx \Delta y_{i}-\sum _{s=1}^{n}J_{is}\Delta \beta _{s}.}
將上述表達式代入梯度方程,可以得到
−
2
∑
i
=
1
m
J
i
j
(
Δ
y
i
−
∑
s
=
1
n
J
i
s
Δ
β
s
)
=
0
,
{\displaystyle -2\sum _{i=1}^{m}J_{ij}\left(\Delta y_{i}-\sum _{s=1}^{n}J_{is}\ \Delta \beta _{s}\right)=0,}
以上方程可化簡為n 個聯立的線性方程,稱為正規方程 (normal equations):
∑
i
=
1
m
∑
s
=
1
n
J
i
j
J
i
s
Δ
β
s
=
∑
i
=
1
m
J
i
j
Δ
y
i
(
j
=
1
,
…
,
n
)
.
{\displaystyle \sum _{i=1}^{m}\sum _{s=1}^{n}J_{ij}J_{is}\ \Delta \beta _{s}=\sum _{i=1}^{m}J_{ij}\ \Delta y_{i}\qquad (j=1,\dots ,n).}
正規方程可用矩陣表示法寫成
(
J
T
J
)
Δ
β
=
J
T
Δ
y
.
{\displaystyle \left(\mathbf {J} ^{\mathsf {T}}\mathbf {J} \right)\Delta {\boldsymbol {\beta }}=\mathbf {J} ^{\mathsf {T}}\ \Delta \mathbf {y} .}
上述方程是使用高斯-牛頓算法 求解非線性最小二乘問題的的基礎。
需要注意的是雅可比矩陣定義中導數的符號約定。某些文獻中的J 可能與此處的定義相差一個負號。
權重擴展
不同數據點(觀測結果)的可靠性並不一定相同,此時可使用加權平方和
S
=
∑
i
=
1
m
W
i
i
r
i
2
.
{\displaystyle S=\sum _{i=1}^{m}W_{ii}r_{i}^{2}.}
權重矩陣W 是一個對角矩陣 ,理想情況下每個權重係數應等於觀測誤差方差 的倒數。[ 1] 此時,正規方程可擴展為
(
J
T
W
J
)
Δ
β
=
J
T
W
Δ
y
.
{\displaystyle \left(\mathbf {J} ^{\mathsf {T}}\mathbf {WJ} \right)\Delta {\boldsymbol {\beta }}=\mathbf {J} ^{\mathsf {T}}\mathbf {W} \ \Delta \mathbf {y} .}