最小二乘法是估计带有噪声模型中未知参量的一种常用的方法,下面我将详细说明一下最小二乘法问题及其解法。
1.最小二乘法的引入
已知我们有一个模型f(x,θ),θ是有m个未知参数的向量向量,x向量中的n个值都有对应的观察值,(n>=m)如图1所示:
我们通过最小化观察值与模型之间误差的平方来拟合模型,即求解未知参量,如图2所示。通常,由于噪声的存在或者模型过于简单,观察值不能精确地拟合模型,导致观察值与模型之间的最小误差(残差residual)不等于零。
令其偏导数等于零来求解未知参数,如图3所示:
2.高斯牛顿法求解非线性最小二乘问题
虽然上面我们给出了未知参数求解的直接办法,但是,我们经常遇到的问题中,残差和θ是相互独立的,因此求解θ是一个非线性最小二乘问题。为了将其线性化,使得残差与θ成线性关系,我们对残差进行泰勒展开(Taylor expansion),如图4所示:
由于泰勒展开只是对残差的近似,因此我们需要一个迭代过程,每一次迭代都计算一个Δθ,增量式地加到原来的θ上去。下一次迭代再在上一次求解的基础上进行线性化。迭代过程如图5所示:
对线性化的残差平方和求θk+1处的偏导数,并令其为零,求得该次迭代中的Δθ,如图6所示:
这里的jacobian矩阵维度为nxm,在jacobian矩阵与其转置的乘积称为Hessian矩阵,是一个近似的二阶偏导数。以上这种迭代式估计未知参数的方法称之为高斯牛顿法(Gauss-Newton)。