最优化理论·非线性最小二乘
标签(空格分隔): 数学
非线性最小二乘问题是椭圆拟合中最易遇到的优化问题,本文主要对非线性二乘的基本分析做简单介绍
1. 什么是最小二乘问题
目标函数能够写为m个函数平方和的优化问题
其中,每个函数fi(x)f_i(x)fi(x)都是待优化向量xxx的函数。
2.非线性最小二乘问题
- 当fi(x)f_i(x)fi(x)是关于xxx的非线性函数时,即为非线性优化问题
- 此时,需要利用Taylor一阶展开近似fi(x)f_i(x)fi(x)
2.1 fi(x)f_i(x)fi(x)的一阶近似
-
设x(k)x^{(k)}x(k)是解xxx的第k次近似,在此处将fi(x)f_i(x)fi(x)进行一阶展开,并令一阶展开值为φi(x)\varphi_i(x)φi(x)
-
对上式进行整理,得到
-
可以看到,一阶近似φi(x)\varphi_i(x)φi(x)是关于待优化向量xxx的线性函数:
是fi(x)f_i(x)fi(x)的梯度【fi(x)f_i(x)fi(x)对向量x求导】在x(k)x^{(k)}x(k)处的取值
是fi(x)f_i(x)fi(x)在x(k)x^{(k)}x(k)处的取值
2.2 F(x)的近似
在得到fi(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)]=[ ▽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))]] \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)]=[ ▽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))] \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))⎦⎥⎥⎤ -
引入AkA_kAk和bbb!!!!!!
其中:
-
则有
[φ1(x)φ1(x)…φ1(x)]=Ak⋅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)=(Akx−b)T⋅(Akx−b) \Phi(x) = (A_kx-b)^T \cdot (A_kx-b) Φ(x)=(Akx−b)T⋅(Akx−b)
它为标准的线性最小二乘问题
2.4 转化为线性最小二乘后的分析
Φ(x)=(Akx−b)T⋅(Akx−b) \Phi(x) = (A_kx-b)^T \cdot (A_kx-b) Φ(x)=(Akx−b)T⋅(Akx−b)
-
一阶近似得到的优化问题就是线性最小二乘问题,可以利用最小二乘问题求解,直接求解梯度为0的点,即目标函数在x(k)x^{(k)}x(k)处的最小值点应该满足如下线性方程的解
-
当AKA_KAK为列满秩时,以上方程的解如下
这里注意,利用上述方法求得的最优解为目标函数在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)更新等式进一步分析化简
即有:
- HkH_kHk是目标函数F(x)F(x)F(x)的一阶近似函数Φ(x)\Phi(x)Φ(x)的Hessian矩阵,即可以说是目标函数F(x)F(x)F(x)的近似Hessian矩阵
- AkA_kAk是目标函数F(x)F(x)F(x)的梯度矩阵
注意:按照这里的推导,可以通过一步步迭代计算xxx的最优值,这种方法可以称之为Gaussian-Newton方法,但仔细观察发现,当近似Hessian阵奇异或者近似奇异时,以上算法无法使用!也就引出了著名的LM算法