应用领域
LM 算法用于解决非线性最小二乘问题,问题定义如下:
LM 算法有两种推导和实现,一种是算法发明者使用的 阻尼法,一种是后来学者补充的 置信域法。这里分别作出推导。
阻尼法推导 Damped Method
1. 一阶泰勒展开近似
对 在
处泰勒展开:
将问题转化为:对于每次迭代,求最优的 。表达如下:
2. 加入阻尼项
-
为阻尼系数
阻尼项 可以看作是对于过大的
的惩罚。
3. 求极值
令关于 的导数=0 :
得最优解:
简化表示:
简化后的最优解:
4. 阻尼系数 μ 的调节
上面的最优解表达式中还有一个阻尼系数 没有确定,这里给出它的确定方法。
定义增益率(gain ratio) :(也有叫它下降率的reduction ratio)
表达了一阶泰勒展开近似与真实函数的相似程度,分子部分是
函数在经历了自变量
变化后的变化情况,分母部分是一阶泰勒展开近似在经历了
后的变化情况。
- 分子越大,
下降的大,
越大 → 说明这里的泰勒展开近似是比较准确的,应减小阻尼系数
- 分子越小,
下降的小,
越小 → 说明这里的泰勒展开近似不太准确,应增大阻尼系数
介绍两种阻尼系数的调节方案:
方案一 (Marquardt 1963):
时会增大阻尼系数,
时减少阻尼系数。
方案二 (Nielsen 1999):
方案二中,对于错误的 ,也就是
的情况,将会迅速增大阻尼系数,使下一步的
趋向于更小。比方案一多了一个参数
。
5. 总结
阻尼法的LM算法的每步迭代过程为:
- 计算迭代增量
,依据
- 计算增益率
,用于调节
,依据
- 调节阻尼系数
,用于下一次迭代计算
置信域法推导 Trust Region Method
1. 一阶泰勒展开近似
这一步与阻尼法是一致的。
对 在
处泰勒展开:
将问题转化为:对于每次迭代,求最优的 。表达如下:
2. 加入置信域约束项
对于每一步迭代,使用 来约束增量
,构成如下带小于等于号的约束优化问题
-
是置信域的范围,对于每一步的迭代,
是一个已知量。
3. 求解约束优化问题
对于这种小于等于号的约束优化问题,是需要分两情况进行考虑。
情况1:
假设最优解 位于
的范围内,则此时带约束的最优解就是无约束情况下的最优解,通过以下方式对这种假设进行求解和验证:
- 求无约束的最优解,得
;
- 验证此最优解是否满足
;
- 如果满足则此解为带约束的最优解, 如果不满足说明最优解不在
的范围内,而在
的范围上,此时应通过下一种情况继续求解。
情况2:
假设最优解位于 的范围上,此时就是一个等式约束优化问题:
需要引入拉格朗日乘子 (为方便写成
),构成拉格朗日方程:
此时最优解需满足如下条件:
可以看到上面的等式 1) 是与阻尼法的最优解的形式是一样的,但是阻尼法中的阻尼系数 是已知的,在每一个迭代中都需要调节,而这里的拉格朗日乘子
是未知的而且也是无需知道的,在每一步迭代中需要调节的是置信域范围
。所以两个式子形式相同但是含义不一样。
联立 1) 2) 可解此等式约束问题得最优解 。
4. 置信域范围
的调节
上面的求解约束优化问题的过程中,还有一个置信域范围 需要在每一步迭代的事先确定。这里给出它的确定方法。
与阻尼法一样,首先需要计算
然后调节置信域范围 :
5. 总结
置信域法的LM算法的每步迭代过程为:
- 计算迭代增量
,通过求解约束优化问题得到
- 计算增益率
,用于调节
,依据
- 调节置信域范围
,用于下一次迭代计算