对于值为标量的多变量函数 f(x),使用梯度; 如果是值为向量的多变量函数f(x),使用雅克比矩阵。
雅克比矩阵实际上是对于梯度的一种泛化,记m为函数值的维度,记n为变量维度;
- m=1时,函数的雅克比矩阵就是梯度。
- m=1且n=1时,函数的雅克比矩阵和梯度就是简单的导数。
优化算法:
梯度下降法和高斯牛顿法都是最优化方法。 其区别之处在于,梯度下降法在寻找目标函数极小值时,是沿着反梯度方向进行寻找的。梯度的定义就是指向标量场增长最快的方向,在寻找极小值时,先随便定初始点(x0,y0)然后进行迭代不断寻找直到梯度的模达到预设的要求。 缺点:在远离极小值的地方下降很快,而在靠近极小值的地方下降很慢。
高斯牛顿法是一种非线性最小二乘最优化方法。其利用了目标函数的泰勒展开式把非线性函数的最小二乘化问题化为每次迭代的线性函数的最小二乘化问题。高斯牛顿法的缺点在于:若初始点距离极小值点过远,迭代步长过大会导致迭代下一代的函数值不一定小于上一代的函数值。
所以在高斯牛顿法中加入了因子μ,当μ大时相当于梯度下降法,μ小时相当于高斯牛顿法。在使用Levenberg-Marquart时,先设置一个比较小的μ值,当发现目标函数反而增大时,将μ增大使用梯度下降法快速寻找,然后再将μ减小使用牛顿法进行寻找。