非线性最小二乘法

简单的最小二乘问题:
非线性优化 - 图1
令目标函数的导数为零,然后解非线性优化 - 图2的最优值,就像求二元函数的极值一样:
非线性优化 - 图3
它们可能是极大、极小或鞍点处的值。如果非线性优化 - 图4为简单的线性函数,那么这个问题就是简单的线性最小二乘问题,否则在无法知道目标函数全局性质的情况下可以采用迭代的方式:

  1. 给定某个初始值非线性优化 - 图5
  2. 对于地非线性优化 - 图6次迭代,寻找一个增量非线性优化 - 图7,使得非线性优化 - 图8达到极小值
  3. 非线性优化 - 图9足够小则停止
  4. 否则,令非线性优化 - 图10,返回第二步

这让求解导数为零的问题变成一个不断寻找下降增量非线性优化 - 图11的问题

一阶和二阶梯度法

考虑非线性优化 - 图12次迭代,假设在非线性优化 - 图13处,想要得到增量非线性优化 - 图14,那么最直接的方式就是将目标函数在非线性优化 - 图15附近进行泰勒展开:
非线性优化 - 图16
其中非线性优化 - 图17非线性优化 - 图18关于非线性优化 - 图19的一阶导数(雅可比(Jacobian)矩阵),非线性优化 - 图20则是二阶导数(海塞(Hessian)矩阵)

如果保留泰勒展开的一阶梯度,那么取增量为反向的梯度,即可保证函数下降:
非线性优化 - 图21
当然这只是个方向,通常我们还要再指定一个步长非线性优化 - 图22
保留二阶梯度信息的情况下,增量方程为:
非线性优化 - 图23
求右侧等式关于非线性优化 - 图24的导数并令它为零,得到:
非线性优化 - 图25
求解这个线性方程,就得到了增量,称为牛顿法

高斯牛顿法

思想是将非线性优化 - 图26进行一阶泰勒展开,不是目标函数非线性优化 - 图27而是非线性优化 - 图28,否则就变成牛顿法了
非线性优化 - 图29
这里非线性优化 - 图30非线性优化 - 图31关于非线性优化 - 图32的导数,为非线性优化 - 图33的列向量。根据前面的框架,当前的目标是寻找增量非线性优化 - 图34,使得达到最小。为了求非线性优化 - 图35,我们需要解一个线性的最小二乘问题:
非线性优化 - 图36
将上述目标函数对非线性优化 - 图37求导:
非线性优化 - 图38
求上式关于非线性优化 - 图39的导数,并令其为零:
非线性优化 - 图40
得到:
非线性优化 - 图41
这个方程是关于非线性优化 - 图42变量非线性优化 - 图43线性方程组,我们称它为增量方程。把左边的稀疏定义为非线性优化 - 图44,右边的定义为非线性优化 - 图45,那么上式变为:
非线性优化 - 图46
对比牛顿法,高斯牛顿法用非线性优化 - 图47作为牛顿法中二阶Hessian矩阵的近似,从而省略了计算非线性优化 - 图48的过程。求解增方程是整个优化问题的核心所在

  1. 给定某个初始值非线性优化 - 图49
  2. 对于地非线性优化 - 图50次迭代,求出当前的雅可比矩阵非线性优化 - 图51和误差非线性优化 - 图52
  3. 求解增量方程:非线性优化 - 图53
  4. 非线性优化 - 图54足够小,则停止。否则,令非线性优化 - 图55,返回第二步

为了求解非线性优化 - 图56,需要非线性优化 - 图57矩阵可逆,但是非线性优化 - 图58却只有半正定性,可能出现非线性优化 - 图59为奇异矩阵或者病态(ill-condition)的情况,此时增量的稳定性差。

补充资料

泰勒公式

image.png