最优化问题一般可表示为如下形式:
min
其中x为n维向量,
为一个从欧式n维空间到欧式m维空间(
)的函数,
。
这种最优化问题一般用最小二乘法求解。
若为x的线性函数:
此问题可以简化为:
这种线性最小二乘法问题可以直接用单纯性法,求广义逆或者不动点法等方法求解。
若为x的非线性函数,因为非线性导致无法直接写出其导数形式,无法准确求解函数的全局最优解,因此退一步通过迭代法求解目标函数的局部最小值,并设法跳出局部最优找到全局最优解。
传统的非线性最小二乘法有两种方法,最速下降法和GaussNewton法。
最速下降法
F(x)可以使用泰勒展开一阶近似:
于是有:
其中θ是矢量h和矢量的夹角
由此可见,当θ=π时,F(x)下降最快,即是最快的下降方向。
具体的也就是F(x)的梯度
可以用f(x)有关的函数表示
其中为f(x)的Jacobian矩阵,具体如下:
采用的方式迭代的最速下降法实际上是收敛很慢的,它的优点在于收敛速度稳定。
GaussNewton法
选取h利用泰勒展开求解的二阶近似
其中为hessian矩阵
在此直接计算比较麻烦,因此可以利用Jacobian矩阵估计hessian矩阵
因此可以认为
当时,记录
为
,此时要使
最小,需要使
,即有:
当非奇异的时候,
,且有
。
当奇异时,GaussNewton法失效,而当迭代初始点
离极小点较远时可能导致发散。
L-M法
GaussNewton是采用来确定的,现在在矩阵
的对角线上元素都加上同一个大于0的数u,即有:
这样即使当奇异时,只要U取的充分大,总能使
正定,则
必有一个准确解,这个解依赖于u,记作
。
为了更好的确定u的取值,我们定义一个增益比:
实际上文中所说的一阶近似和二阶近似并不是在所有定义域都满足的,而是在[x-ε, x+ε](ε>0,且足够小)作用域内满足这个近似。正好可以通过评价这种近似来确定u的取值。
当较大时,表明F(x+h)的二阶近似L(h)比F(x+h)更加接近于F(x),因此可以说二阶近似比较好,所以可以减小u的值,采用更大的迭代步长,使更接近于GaussNewton法来加快收敛;
当较小时,表明采取的二阶近似效果比较差,因此采用增大u,从而采用更小的步长,使得接近最快下降法来稳定的迭代。
关于阻尼参数u的设定,首先给定初始值,
,
,其中τ可以任意取值,u值的迭代选取过程如下:
具体的给出LM算法的流程图