最优化理论·非线性最小二乘
标签(空格分隔): 数学
非线性最小二乘问题是椭圆拟合中最易遇到的优化问题,本文主要对非线性二乘的基本分析做简单介绍
1. 什么是最小二乘问题
目标函数能够写为m个函数平方和的优化问题
其中,每个函数 f i ( x ) f_i(x) fi(x)都是待优化向量 x x x的函数。
2.非线性最小二乘问题
- 当 f i ( x ) f_i(x) fi(x)是关于 x x x的非线性函数时,即为非线性优化问题
- 此时,需要利用Taylor一阶展开近似 f i ( x ) f_i(x) fi(x)
2.1 f i ( x ) f_i(x) fi(x)的一阶近似
-
设 x ( k ) x^{(k)} x(k)是解 x x x的第k次近似,在此处将 f i ( x ) f_i(x) fi(x)进行一阶展开,并令一阶展开值为 φ i ( x ) \varphi_i(x) φi(x)
-
对上式进行整理,得到
-
可以看到,一阶近似 φ i ( x ) \varphi_i(x) φi(x)是关于待优化向量 x x x的线性函数:
是 f i ( x ) f_i(x) fi(x)的梯度【 f i ( x ) f_i(x) fi(x)对向量x求导】在 x ( k ) x^{(k)} x(k)处的取值
是 f i ( x ) f_i(x) fi(x)在 x ( k ) x^{(k)} x(k)处的取值
2.2 F(x)的近似
在得到
f
i
(
x
)
f_i(x)
fi(x)的一阶近似后,便可以计算得到F(x)的一阶近似,该一阶近似为
Φ
(
x
)
\Phi(x)
Φ(x):
2.3 分析 Φ ( x ) \Phi(x) Φ(x)的具体形式
-
将平方和形式写为行向量、列向量乘积形式
Φ ( x ) = [ φ 1 ( x ) , φ 2 ( x ) , ⋯ φ m ( x ) ] ⋅ [ φ 1 ( x ) φ 2 ( x ) … φ m ( x ) ] \Phi(x) = \left [ \varphi_1(x),\varphi_2(x),\cdots\,\varphi_m(x) \right ] \cdot \begin{bmatrix} \varphi_1(x)\\ \varphi_2(x)\\ \dots\\ \varphi_m(x) \end{bmatrix} Φ(x)=[φ1(x),φ2(x),⋯φm(x)]⋅⎣⎢⎢⎡φ1(x)φ2(x)…φm(x)⎦⎥⎥⎤ -
将 φ i ( x ) \varphi_i(x) φi(x)的具体形式代入
[ φ 1 ( x ) φ 1 ( x ) … φ 1 ( x ) ] = [ ▽ f 1 ( x ( k ) ) T ⋅ x − [ ▽ f 1 ( x ( k ) ) T − f 1 ( x ( k ) ) ] ▽ f 2 ( x ( k ) ) T ⋅ x − [ ▽ f 2 ( x ( k ) ) T − f 2 ( x ( k ) ) ] … ▽ f m ( x ( k ) ) T ⋅ x − [ ▽ f m ( x ( k ) ) T − f m ( x ( k ) ) ] ] \begin{bmatrix} \varphi_1(x)\\ \varphi_1(x)\\ \dots\\ \varphi_1(x) \end{bmatrix} = \begin{bmatrix} \ \bigtriangledown f_1(x^{(k)})^T \cdot x-\left [ \bigtriangledown f_1(x^{(k)})^T -f_1(x^{(k)})\right ]\\ \ \bigtriangledown f_2(x^{(k)})^T \cdot x-\left [ \bigtriangledown f_2(x^{(k)})^T -f_2(x^{(k)})\right ]\\ \dots\\ \ \bigtriangledown f_m(x^{(k)})^T \cdot x-\left [ \bigtriangledown f_m(x^{(k)})^T -f_m(x^{(k)})\right ]\\ \end{bmatrix} ⎣⎢⎢⎡φ1(x)φ1(x)…φ1(x)⎦⎥⎥⎤=⎣⎢⎢⎡ ▽f1(x(k))T⋅x−[▽f1(x(k))T−f1(x(k))] ▽f2(x(k))T⋅x−[▽f2(x(k))T−f2(x(k))]… ▽fm(x(k))T⋅x−[▽fm(x(k))T−fm(x(k))]⎦⎥⎥⎤ -
继续整理得到
[ φ 1 ( x ) φ 2 ( x ) … φ m ( x ) ] = [ ▽ f 1 ( x ( k ) ) T ▽ f 2 ( x ( k ) ) T … ▽ f m ( x ( k ) ) T ] ⋅ x − [ ▽ f 1 ( x ( k ) ) T ▽ f 2 ( x ( k ) ) T … ▽ f m ( x ( k ) ) T ] ⋅ x ( k ) + [ f 1 ( x ( k ) ) f 2 ( x ( k ) ) … f m ( x ( k ) ) ] \begin{bmatrix} \varphi_1(x)\\ \varphi_2(x)\\ \dots\\ \varphi_m(x) \end{bmatrix}= \begin{bmatrix} \ \bigtriangledown f_1(x^{(k)})^T \\ \ \bigtriangledown f_2(x^{(k)})^T \\ \dots\\ \ \bigtriangledown f_m(x^{(k)})^T \\ \end{bmatrix} \cdot x -\begin{bmatrix} \ \bigtriangledown f_1(x^{(k)})^T \\ \ \bigtriangledown f_2(x^{(k)})^T \\ \dots\\ \ \bigtriangledown f_m(x^{(k)})^T \\ \end{bmatrix} \cdot x^{(k)}+ \begin{bmatrix} \ f_1(x^{(k)})\\ \ f_2(x^{(k)})\\ \dots\\ \ f_m(x^{(k)})\\ \end{bmatrix} ⎣⎢⎢⎡φ1(x)φ2(x)…φm(x)⎦⎥⎥⎤=⎣⎢⎢⎡ ▽f1(x(k))T ▽f2(x(k))T… ▽fm(x(k))T⎦⎥⎥⎤⋅x−⎣⎢⎢⎡ ▽f1(x(k))T ▽f2(x(k))T… ▽fm(x(k))T⎦⎥⎥⎤⋅x(k)+⎣⎢⎢⎡ f1(x(k)) f2(x(k))… fm(x(k))⎦⎥⎥⎤ -
引入 A k A_k Ak和 b b b!!!!!!
其中:
-
则有
[ φ 1 ( x ) φ 1 ( x ) … φ 1 ( x ) ] = A k ⋅ x − b \begin{bmatrix} \varphi_1(x)\\ \varphi_1(x)\\ \dots\\ \varphi_1(x) \end{bmatrix}= A_k \cdot x - b ⎣⎢⎢⎡φ1(x)φ1(x)…φ1(x)⎦⎥⎥⎤=Ak⋅x−b -
那么,目标函数 F ( x ) F(x) F(x)的一阶近似 Φ ( x ) \Phi(x) Φ(x)的简洁形式为
Φ ( x ) = ( A k x − b ) T ⋅ ( A k x − b ) \Phi(x) = (A_kx-b)^T \cdot (A_kx-b) Φ(x)=(Akx−b)T⋅(Akx−b)
它为标准的线性最小二乘问题
2.4 转化为线性最小二乘后的分析
Φ ( x ) = ( A k x − b ) T ⋅ ( A k x − b ) \Phi(x) = (A_kx-b)^T \cdot (A_kx-b) Φ(x)=(Akx−b)T⋅(Akx−b)
-
一阶近似得到的优化问题就是线性最小二乘问题,可以利用最小二乘问题求解,直接求解梯度为0的点,即目标函数在 x ( k ) x^{(k)} x(k)处的最小值点应该满足如下线性方程的解
-
当 A K A_K AK为列满秩时,以上方程的解如下
这里注意,利用上述方法求得的最优解为目标函数在 x ( k ) x^{(k)} x(k)处的一阶近似最小值,不能作为全局最优解,只能说明在局部向最优解点又进一步走近了,记为 x ( k + 1 ) x^{(k+1)} x(k+1)
2.5 对 x ( k + 1 ) x^{(k+1)} x(k+1)更新等式进一步分析化简
即有:
- H k H_k Hk是目标函数 F ( x ) F(x) F(x)的一阶近似函数 Φ ( x ) \Phi(x) Φ(x)的Hessian矩阵,即可以说是目标函数 F ( x ) F(x) F(x)的近似Hessian矩阵
- A k A_k Ak是目标函数 F ( x ) F(x) F(x)的梯度矩阵
注意:按照这里的推导,可以通过一步步迭代计算 x x x的最优值,这种方法可以称之为Gaussian-Newton方法,但仔细观察发现,当近似Hessian阵奇异或者近似奇异时,以上算法无法使用!也就引出了著名的LM算法