如果我们想要求解一系列对应点的对应关系,但此关系并不是一个简单的线性关系而是一个复杂的非线性关系。那么为了判断求解出的非线性关系的拟合效果,就要引入非线性优化目标函数。而我们想要求解的图像坐标(Ui,Vi)与像素坐标(ui,vi)的对应关系就是一个复杂的非线性关系。
取函数:
;其中
=
。非线性优化的过程即使F(x)极小化的过程,即寻取
,此即最小二乘法的思想的核心。这里要注意的是:
的函数关系是我们已知的(因为这个目标函数是人为设定的,目的是为了衡量最终非线性函数的拟合效果)也就是说最小二乘法思想就是借助
,求解出最优x,求出的x即为我们想要的最佳关系,或者在求解过程中我们可以获得这个关系。
然后就是如何令F(x)最小,这里可以借助矩阵去计算(这样做能很好分析,并运用到算法里)。
假设
=-
,这里的
是n维的列向量,
是实数,则有
;
;这里的A是m行n列的矩阵,b是m维列矩阵。则有
若
为x的线性函数,则
称为线性最小二乘问题。(因为非线性最小二乘的计算会用到线性的结论,所以先介绍线性)求F(x)的平稳点,由于F(x)是凸函数,所以令
得:
(式①)所以:
(式②)这样就可求出极小点x。(注:此处要求矩阵A列满秩,则
为n阶正定矩阵,这样
才存在)
对于非线性最小二乘法问题,不可以直接使用式②,解这类问题的思想是通过解一系列线性最小二乘问题来求非线性最小二乘问题的解。
我们设
是解的第k次近似,利用
将函数
线性化,此时就可以把非线性问题转化成线性问题。然后可以利用公式②,求出这个问题的极小点
,然后再从
出发重复以上过程。下面我们来推导迭代公式,即通过公式去不断求解x。这里我们需要再设一个目标函数,此目标函数与
相关,是
在点
的一阶泰勒展开后得。设
所以
,利用
的极小值点作为目标函数
的极小点估计。 现在求解线性最小二乘问题
记:
其中:
所以:
,可得:
(用式①)变换后:
(式③)③是一个线性方程组,常数包含在
处的函数值
及一阶偏导数。若满秩,则可以通过③得到
的极小点。令
,把
作为
的极小点的k+1次近似。
利用③两边×2,可得:
所以
是目标函数
在
的梯度。设
,则③式两端×2后可转化为:
即:
。式③为高斯-牛顿公式,向量
称为在点
处的高斯牛顿方向。为了保证每次迭代都能使得目标函数值下降,在求出方向
后,不直接用
作为第k+1次近似,而是从
出发,沿这个方向进行一维搜索得出
),求出步长
。再令
,把
作为第k+1次近似。以此类推,直到求出满意的解为止。 可以看出,这个过程大体上是通过
和
,求得和
,进而求出向量
,然后再通过
求出步长
,最终求得第k+1次近似
。
归纳上述过程,非线性最小二乘法的计算步骤为:
1、给定初点
,允许误差0
,置k=1。2、计算函数值
,(i=1、2、…、m),得到向量
。3、再求一阶偏导数
(i=1、2、…、m;j=1、2、…、n),从而得到m×n矩阵;
。4、求解方程组
,求出高斯-牛顿向量(方向)
。5、从
出发,沿dk
方向做一维搜索,求出步长
,使得:
,令
。6、最后当
时,停止计算,解得:
;否则置k=k+1,返回第2步。