IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 数值计算之 Levenberg-Marquardt算法 -> 正文阅读

[人工智能]数值计算之 Levenberg-Marquardt算法

前言

本篇是牛顿法的最后一篇,Levenberg-Marquardt算法,也就是阻尼牛顿法。

高斯牛顿法

回顾上篇中的高斯牛顿法:
f ( x 0 + Δ x ) = f ( x 0 ) + J ( x 0 ) Δ x min ? Δ x 1 2 ∣ ∣ f ( x ) ∣ ∣ 2 = min ? Δ x 1 2 ( f ( x 0 ) + J ( x 0 ) Δ x ) T ( f ( x 0 ) + J ( x 0 ) Δ x ) J T J Δ x = ? J T f f({\bf x_0+\Delta x}) = f({\bf x_0}) + J({\bf x_0}){\bf \Delta x} \\ \quad \\ \min_{\bf \Delta x} \frac{1}{2} ||f({\bf x})||^2 \\ = \min_{\bf \Delta x} \frac{1}{2} (f({\bf x_0})+J({\bf x_0}){\bf \Delta x})^T(f({\bf x_0})+J({\bf x_0}){\bf \Delta x}) \\ \quad \\ J^TJ{\bf \Delta x} = -J^Tf f(x0?+Δx)=f(x0?)+J(x0?)ΔxΔxmin?21?f(x)2=Δxmin?21?(f(x0?)+J(x0?)Δx)T(f(x0?)+J(x0?)Δx)JTJΔx=?JTf
将牛顿法中的海森矩阵 H H H,使用一阶梯度 J T J J^TJ JTJ进行了替换,因而避免了计算二阶梯度。然而, J T J J^TJ JTJ并非正定,可能是奇异阵或者病态矩阵,求逆不稳定,使得迭代的稳定性和收敛性差。

LM算法

阻尼牛顿法

为了提升迭代的稳定性,在优化函数上添加阻尼(机器学习里有时称为正则项),来降低迭代步长:
min ? Δ x ( 1 2 ∣ ∣ f ( x ) ∣ ∣ 2 + 1 2 λ Δ x T Δ x ) = min ? Δ x 1 2 ( f ( x 0 ) + J ( x 0 ) Δ x ) T ( f ( x 0 ) + J ( x 0 ) Δ x ) + 1 2 λ Δ x T Δ x ) \min_{\bf \Delta x} (\frac{1}{2} ||f({\bf x})||^2+\frac{1}{2}\lambda{\bf \Delta x^T\Delta x}) \\ = \min_{\bf \Delta x} \frac{1}{2} (f({\bf x_0})+J({\bf x_0}){\bf \Delta x})^T(f({\bf x_0})+J({\bf x_0}){\bf \Delta x}) + \frac{1}{2} \lambda {\bf \Delta x^T\Delta x}) \\ Δxmin?(21?f(x)2+21?λΔxTΔx)=Δxmin?21?(f(x0?)+J(x0?)Δx)T(f(x0?)+J(x0?)Δx)+21?λΔxTΔx)
1 2 ∣ ∣ f ( x ) ∣ ∣ 2 \frac{1}{2}||f({\bf x})||^2 21?f(x)2后添加 1 2 λ Δ x T Δ x \frac {1}{2}\lambda {\bf \Delta x}^T {\bf \Delta x} 21?λΔxTΔx,当求出的 Δ x \bf \Delta x Δx比较大时,对函数值进行惩罚。

还是按照高斯牛顿法一样求一阶梯度等于零,获得迭代表达式:
J T J Δ x + λ Δ x = ? J T f ( J T J + λ I ) Δ x = ? J T f Δ x = ? ( J T J + λ I ) ? 1 J T f J^TJ{\bf \Delta x} +\lambda {\bf \Delta x} = -J^Tf \\ (J^TJ+\lambda I){\bf \Delta x}=-J^Tf \\ {\bf \Delta x} = -(J^TJ+\lambda I)^{-1}J^Tf \\ JTJΔx+λΔx=?JTf(JTJ+λI)Δx=?JTfΔx=?(JTJ+λI)?1JTf
可以看出,阻尼牛顿法通过 J T J + λ I J^TJ+\lambda I JTJ+λI替换 H H H,一方面避免二阶梯度计算,另一方面保证了矩阵的可逆性。

阻尼系数 λ \lambda λ

上面的惩罚项中, λ \lambda λ用于控制 Δ x \bf \Delta x Δx对迭代步长的影响。当 f ( x 0 + Δ x ) f(\bf x_0 +\Delta x) f(x0?+Δx)与一阶泰勒展开 f ( x 0 ) + J ( x 0 ) Δ x f({\bf x_0}) +J({\bf x_0}){\bf\Delta x} f(x0?)+J(x0?)Δx足够近似,迭代步长可以大一些,加速收敛;如果函数值与泰勒展开不够近似,迭代步长要小一些,增加稳定。

因此,可以设计以下策略调整阻尼系数:
ρ = f ( x 0 + Δ x ) ? f ( x 0 ) J ( x 0 ) Δ x 0 i f ρ > 3 4 : λ = 1 2 λ i f ρ < 1 2 : λ = 2 λ \rho = \frac {f({\bf x_0 + \Delta x})-f({\bf x_0})} {J({\bf x_0}){\bf \Delta x_0}} \\ \quad \\ if \quad \rho > \frac{3}{4}: \quad \lambda=\frac{1}{2}\lambda \\ \quad \\ if \quad \rho < \frac{1}{2}: \quad \lambda= 2\lambda ρ=J(x0?)Δx0?f(x0?+Δx)?f(x0?)?ifρ>43?:λ=21?λifρ<21?:λ=2λ

置信域法

LM算法还可以通过置信域思想实现:
min ? Δ x 1 2 ∣ ∣ f ( x ) ∣ ∣ 2 s . t . Δ x T Δ x ≤ d \min_{\bf \Delta x} \frac{1}{2} ||f({\bf x})||^2 \\ \quad \\ s.t. \quad {\bf \Delta x}^T{\bf \Delta x} \le d Δxmin?21?f(x)2s.t.ΔxTΔxd
通过限制 Δ x \bf \Delta x Δx的长度来约束迭代步长。这时可以通过拉格朗日乘子法把有约束的优化问题转换成无约束的优化问题:

1 2 ∣ ∣ f ( x 0 ) + J ( x 0 ) Δ x ∣ ∣ 2 + 1 2 λ ( Δ x T Δ x ? d ) \frac{1}{2}||f({\bf x_0})+J({\bf x_0}){\bf \Delta x}||^2+\frac{1}{2}\lambda({\bf \Delta x}^T{\bf \Delta x} - d) 21?f(x0?)+J(x0?)Δx2+21?λ(ΔxTΔx?d)
这个优化问题涉及到KKT收敛性等等判定,最后的迭代表示式形式与阻尼牛顿法相同

置信域 d d d

置信域法中的 λ \lambda λ是求解拉格朗日乘子法计算出来的,而我们需要调节的是 Δ x \bf \Delta x Δx的置信域 d d d
ρ = f ( x 0 + Δ x ) ? f ( x 0 ) J ( x 0 ) Δ x 0 i f ρ > 3 4 : d = 2 d i f ρ < 1 2 : d = 1 2 d \rho = \frac {f({\bf x_0 + \Delta x})-f({\bf x_0})} {J({\bf x_0}){\bf \Delta x_0}} \\ \quad \\ if \quad \rho > \frac{3}{4}: \quad d=2d \\ \quad \\ if \quad \rho < \frac{1}{2}: \quad d=\frac{1}{2}d ρ=J(x0?)Δx0?f(x0?+Δx)?f(x0?)?ifρ>43?:d=2difρ<21?:d=21?d

LM算法的流程

最后给出LM算法的整体流程:

  1. 根据迭代表达式计算 Δ x \bf \Delta x Δx
  2. 计算 ρ \rho ρ,判断是否满足终止条件,不满足则计算 x = Δ x + x 0 \bf x=\Delta x+ x_0 x=Δx+x0?,否则迭代结束
  3. 调节阻尼系数 λ \lambda λ,或者调节置信域 d d d,返回步骤1
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:43:23  更:2021-12-11 15:44:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:30:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码