通过求解
我可以在一些文献中发现,可以通过求解 来计算步长。 据说这对误差谷问题很有帮助,误差表面在最小值平坦且长。我无法决定是否的对角线用于所有情况,或者单位矩阵更合适。
一些信息:
Levenberg-Marquardt 算法:一种迭代技术,用于定位函数的最小值,该函数表示为非线性函数的平方和。 : 梯度矩阵 (Jacobian x 函数值) : 近似 Hessian 矩阵 (JacobianTransposed x Jacobian) : 阻尼因子 : 步长
通过求解
我可以在一些文献中发现,可以通过求解 来计算步长。 据说这对误差谷问题很有帮助,误差表面在最小值平坦且长。我无法决定是否的对角线用于所有情况,或者单位矩阵更合适。
一些信息:
Levenberg-Marquardt 算法:一种迭代技术,用于定位函数的最小值,该函数表示为非线性函数的平方和。 : 梯度矩阵 (Jacobian x 函数值) : 近似 Hessian 矩阵 (JacobianTransposed x Jacobian) : 阻尼因子 : 步长
这与其说是一个答案,不如说是一个注释,但您不能总是将表单与一起使用。特别是,如果您遇到在对角线上有零或负元素的情况,则不再保证您获得下降方向,因此您可能不会收敛。
使用而不是通常更好。当你使用你有步宽在各个方向。如果你使用, 这第一个组件是, 什么时候是主对角线元素在位置. 因此,您在每个方向都有一个可变的步长。由于 Levenberg-Marquardt 本质上是高斯-牛顿和梯度下降的混合,具体取决于阻尼参数是小还是大,您可以将这两种算法组合在一个迭代步骤中以用于不同的方向。
Seber 和 Wild 所著的“非线性回归”一书在这方面引用了相当多的论文。我认为大多数实现都使用代替一般来说,虽然我不能证明它在所有情况下都表现得更好。
回答 Umesh Tiwari 的评论(我自己无法评论): 确实相当于马夸特确实提出的。他制定了: 可以修改如下:
形式总是可以使用,并且在实践中它比给出更好的结果。OP给出的理由是正确的。它在误差谷中沿着更平坦的方向移动得更快,因为它更好地考虑了曲率信息。然而,Levenberg-Marquardt 是一种启发式方法,对速度和收敛性没有明确的保证。
此外,Levenberg-Marquardt 处理了没有给出下降方向的情况。请注意,此方法是信任区域方法的祖先之一。因此,如果一次迭代没有给出下降方向,则不要采取该步骤,增加并继续下一次迭代。