机器学习中的数学——拟牛顿法(Quasi-Newton Methods)
分类目录:《机器学习中的数学》总目录
相关文章:
· 梯度下降法(Gradient Descent)
· 随机梯度下降(Stochastic Gradient Descent, SGD)
· 牛顿迭代法(Newton‘s Method)
· 拟牛顿法(Quasi-Newton Methods)
· Momentum(Gradient Descent with Momentum, GDM)
· Nesterov Momentum
· AdaGrad
· RMSProp
· Adam(Adaptive Moments)
· 共轭梯度法(Conjugate Gradient)
· 遗传算法(Genetic Algorithm)
· 粒子群算法
\qquad· 基础知识
\qquad· 带惯性权重的粒子群算法
\qquad· 改进的粒子群算法
· 模拟退火算法(Simulated Annealing,SA)
与一阶方法相比,二阶方法使用二阶导数改进了优化。最广泛使用的二阶方法是牛顿法。在牛顿法的迭代中,需要计算Hessian矩阵的逆矩阵H−1H^{-1}H−1,这一计算比较复杂,考虑用一个nnn阶矩阵Gk=G(θ(k))G_k=G(\theta^{(k)})Gk=G(θ(k))来近似代替Hk−1(θ(k))H^{-1}_k(\theta^{(k)})Hk−1(θ(k)),这就是拟牛顿法的基本想法。
先看牛顿法迭代中Hessian矩阵HkH_kHk满足的条件。首先,HkH_kHk满足以下关系:
gk+1−gk=Hk(θ(k+1)−θ(k))g_{k+1}-g_k=H_k(\theta^{(k+1)}-\theta^{(k)})gk+1−gk=Hk(θ(k+1)−θ(k))
令yk=gk+1−gky_k=g_{k+1}-g_kyk=gk+1−gk和δk=θ(k+1)−θ(k)\delta_k=\theta^{(k+1)}-\theta^{(k)}δk=θ(k+1)−θ(k)则:
yk=Hkδk或Hk−1yk=δky_k=H_k\delta_k\quad\text{或}\quad H_k^{-1}y_k=\delta_kyk=Hkδk或Hk−1yk=δk
上式就是拟牛顿条件。
如果HkH_kHk是正定的(Hk−1H_k^{-1}Hk−1也是正定的),那么可以保证牛顿法搜索方向pkp_kpk是下降方向。这是因为搜索方向是pk=−λgkp_k=-\lambda g_kpk=−λgk,所以f(θ)f(\theta)f(θ)在θ\thetaθ的泰勒展开式可以近似写成::
f(θ)=f(θ(k))−λgkTHk−1gkf(\theta)=f(\theta^{(k)})-\lambda g_k^TH^{-1}_kg_kf(θ)=f(θ(k))−λgkTHk−1gk
因H−1H^{-1}H−1正定,故有gkTHk−1gk>0g_k^TH^{-1}_kg_k>0gkTHk−1gk>0。当λ\lambdaλ为一个充分小的正数时,总有f(θ)<f(θ(k))f(\theta)<f(\theta^{(k)})f(θ)<f(θ(k)),也就是说pkp_kpk是下降方向。
拟牛顿法将GkG_kGk作为Hk−1H^{-1}_kHk−1的近似,要求矩阵GkG_kGk满足同样的条件。首先,每次迭代矩阵GkG_kGk是正定的。同时,GkG_kGk满足下面的拟牛顿条件:
Gk+1yk=δkG_{k+1}y_k=\delta_kGk+1yk=δk
按照拟牛顿条件选择GkG_kGk作为Hk−1H^{-1}_kHk−1的近似或选择BkB_kBk作为HkH_kHk的近似的算法称为拟牛顿法。按照拟牛顿条件,在每次迭代中可以选择更新矩阵Gk+1G_{k+1}Gk+1:
Gk+1=Gk+ΔGkG_{k+1}=G_k+\Delta G_kGk+1=Gk+ΔGk
这种选择有一定的灵活性,因此有多种具体实现方法。
DFP(Davidon-Fletcher-Powell)算法
DFP算法选择Gk+1G_{k+1}Gk+1的方法是,假设每一步迭代中矩阵Gk+1G_{k+1}Gk+1是由GkG_kGk,加上两个附加项构成的,即:
Gk+1=Gk+Pk+QkG_{k+1}=G_k+P_k+Q_kGk+1=Gk+Pk+Qk
其中PkP_kPk和QkQ_kQk是特定矩阵:
Gk+1yk=Gkyk+Pkyk+QkykG_{k+1}y_k=G_ky_k+P_ky_k+Q_ky_kGk+1yk=Gkyk+Pkyk+Qkyk
为了使Gk+1G_{k+1}Gk+1满足拟牛顿的条件,可使PkP_kPk和QkQ_kQk满足:
Pkyk=δkQkyk=−GkykP_ky_k=\delta_k \\ Q_ky_k=-G_ky_kPkyk=δkQkyk=−Gkyk
事实上,不难找出这样的PkP_kPk和QkQ_kQk,比如:
Pk=δkδkTδkTykQk=−GkykykTGkykGkykTP_k=\frac{\delta_k\delta_k^T}{\delta_k^Ty_k}\\ Q_k=\frac{-G_ky_ky_k^TG_k}{y_kG_ky_k^T}Pk=δkTykδkδkTQk=ykGkykT−GkykykTGk
可以证明,如果初始矩阵G0G_0G0。是正定的,则迭代过程中的每个矩阵GkG_kGk,都是正定的。
DFP算法
输入:目标函数f(θ)f(\theta)f(θ);精度要求ϵ\epsilonϵ
输出:f(θ)f(\theta)f(θ)的极小值点θ∗\theta^*θ∗
(1) 取初始点θ(0)\theta^{(0)}θ(0),取G0G_0G0为正定对称矩阵,并置k=0k=0k=0
(2) gk=g(θ(0))=∇f(θ(0))g_k=g(\theta^{(0)})=\nabla f(\theta^{(0)})gk=g(θ(0))=∇f(θ(0))
(3) while∣∣gk∣∣>ϵ\quad||g_k||>\epsilon∣∣gk∣∣>ϵ
(4) pk=−Gkgk\quad p_k=-G_kg_kpk=−Gkgk
(5) λk=argminλf(θ(k)+λpk)\quad \lambda_k=\arg\min_\lambda f(\theta^{(k)}+\lambda p_k)λk=argminλf(θ(k)+λpk)
(6) θ(k+1)=θ(k)+λkpk\quad \theta^{(k+1)} = \theta^{(k)}+\lambda_kp_kθ(k+1)=θ(k)+λkpk
(7) gk+1=g(θ(k+1))=∇f(θ(k+1))\quad g_{k+1}=g(\theta^{(k+1)})=\nabla f(\theta^{(k+1)})gk+1=g(θ(k+1))=∇f(θ(k+1))
(8) k=k+1\quad k=k+1k=k+1
(9) returnθ∗=θ(k)\quad \theta^*=\theta^{(k)}θ∗=θ(k)
BFGS(Broyden-Fletcher-Goldfarb-Shanno)算法
可以考虑用GkG_kGk逼近Hessian矩阵的逆矩阵H−1H^{-1}H−1,也可以考虑用BkB_kBk逼近海赛矩阵HHH,这时,相应的拟牛顿条件是:
Bk+1δk=ykB_{k+1}\delta_k=y_kBk+1δk=yk
可以用同样的方法得到另一迭代公式。首先令:
Bk+1=Bk+Pk+QkBk+1δk=Bkδk+Pkδk+QkδkB_{k+1}=B_k+P_k+Q_k\\ B_{k+1}\delta_k=B_k\delta_k+P_k\delta_k+Q_k\delta_kBk+1=Bk+Pk+QkBk+1δk=Bkδk+Pkδk+Qkδk
考虑PkP_kPk和QkQ_kQk满足:
pkδk=ykQkδk=−Bkδkp_k\delta_k=y_k\\ Q_k\delta_k=-B_k\delta_kpkδk=ykQkδk=−Bkδk
找出合适的PkP_kPk和QkQ_kQk,就得到了BFGS算法矩阵Bk+1B_{k+1}Bk+1d=的迭代公式:
Bk+1=Bk+ykykTykTδk−BkδkδkTBkδkTBkδkB_{k+1}=B_k+\frac{y_ky_k^T}{y_k^T\delta_k}-\frac{B_k\delta_k\delta_k^TB_k}{\delta_k^TB_k\delta_k}Bk+1=Bk+ykTδkykykT−δkTBkδkBkδkδkTBk
可以证明,如果初始矩阵B0B_0B0,是正定的,则迭代过程中的每个矩阵BkB_kBk都是正定的。
BFGS算法
输入:目标函数f(θ)f(\theta)f(θ);精度要求ϵ\epsilonϵ
输出:f(θ)f(\theta)f(θ)的极小值点θ∗\theta^*θ∗
(1) 取初始点θ(0)\theta^{(0)}θ(0),取B0B_0B0为正定对称矩阵,并置k=0k=0k=0
(2) gk=g(θ(0))=∇f(θ(0))g_k=g(\theta^{(0)})=\nabla f(\theta^{(0)})gk=g(θ(0))=∇f(θ(0))
(3) while∣∣gk∣∣>ϵ\quad||g_k||>\epsilon∣∣gk∣∣>ϵ
(4) pk=−gkBk−1\quad p_k=-g_kB_k^{-1}pk=−gkBk−1
(5) λk=argminλf(θ(k)+λpk)\quad \lambda_k=\arg\min_\lambda f(\theta^{(k)}+\lambda p_k)λk=argminλf(θ(k)+λpk)
(6) θ(k+1)=θ(k)+λkpk\quad \theta^{(k+1)} = \theta^{(k)}+\lambda_kp_kθ(k+1)=θ(k)+λkpk
(7) gk+1=g(θ(k+1))=∇f(θ(k+1))\quad g_{k+1}=g(\theta^{(k+1)})=\nabla f(\theta^{(k+1)})gk+1=g(θ(k+1))=∇f(θ(k+1))
(8) k=k+1\quad k=k+1k=k+1
(9) returnθ∗=θ(k)\quad \theta^*=\theta^{(k)}θ∗=θ(k)
Broyden类算法
我们可以从BFGS算法矩阵BkB_kBk,的迭代公式得到BFGS算法关于GkG_kGk的迭代公式。事实上,若记Gk=Bk−1G_k=B_k^{-1}Gk=Bk−1和Gk+1=Bk+1−1G_{k+1}=B_{k+1}^{-1}Gk+1=Bk+1−1,那么两次应用Sherman-Morrison公式即得:
Gk+1=(I−δkykTδkTyk)Gk(I−δkykTδkTyk)T+δkδkTδkTykG_{k+1}=(I-\frac{\delta_ky_k^T}{\delta_k^Ty_k})G_k(I-\frac{\delta_ky_k^T}{\delta_k^Ty_k})^T+\frac{\delta_k\delta_k^T}{\delta_k^Ty_k}Gk+1=(I−δkTykδkykT)Gk(I−δkTykδkykT)T+δkTykδkδkT
上式称为BFGS算法关于GkG_kGk的迭代公式。
由DFP算法GkG_kGk的迭代公式得到的Gk+1G_{k+1}Gk+1,记作GDFPG^{\text{DFP}}GDFP,由BFGS算法GkG_kGk的迭代公式得到的Gk+1G_{k+1}Gk+1,记作GBFGSG^{\text{BFGS}}GBFGS,它们都满足方程拟牛顿条件式,所以它们的线性组合:
Gk+1=αGDFP+(1−α)GBFGSG_{k+1}=\alpha G^{\text{DFP}}+(1-\alpha)G^{\text{BFGS}}Gk+1=αGDFP+(1−α)GBFGS
也满足拟牛顿条件式,而且是正定的。其中0≤α≤10\leq\alpha\leq10≤α≤1.这样就得到了一类拟牛顿法,称为Broyden类算法。
机器学习中的数学——拟牛顿法(Quasi-Newton Methods)相关推荐
- 什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么?
什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么? 牛顿法的最初提出是用来求解方程的根的.对于最优化问题,其极值 ...
- 机器学习中的数学——牛顿迭代法(Newton‘s Method)
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- 机器学习中的数学知识(part4)--拟牛顿法
学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 拟牛顿法 面临的问题(局部极小/鞍点) 机器学习中的数学知识 拟牛顿法
- 机器学习中的数学——Adam(Adaptive Moments)
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- 机器学习中的数学——粒子群算法(Particle Swarm Optimization, PSO)(三):改进的粒子群算法
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- 机器学习中的数学——模拟退火算法(Simulated Annealing,SA)
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- 机器学习中的数学——遗传算法(Genetic Algorithm)
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- 机器学习中的数学——RMSProp
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- 机器学习中的数学——共轭梯度法(Conjugate Gradient)
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
最新文章
- Angular实现虚拟滚动多选下拉框笔记
- python处理excel大数据-Python实现大数据收集至excel的思路详解
- 成功解决win系统电脑中网络仅看到自己计算机图文教程
- 关于PR转PO的注意事项
- 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)
- Android之用命令uninstall卸载apk和用 -i 过滤日志忽略大小写
- javaScript学习笔记总结(一)
- java executor spring_Spring+TaskExecutor实例
- 微软全球AI负责人沈向洋博士:下一个智能终端的风口 | IoT in Action
- 360搜索引擎能否给苦逼的站长们带来希望?
- 三级等级保护之安全物理环境
- jQuery写登录弹窗并居中显示
- 台式计算机可以连接蓝牙吗,台式电脑可以连接蓝牙音响吗
- 1.6 SSH免密登录
- 华为5G手机+鸿蒙系统,还能这么玩儿?
- 【题解】A1004 求三个数的平均数
- Unreal 入门-AO贴图
- ARM汇编指令MRS和MSR
- 等价类划分和边界值法
- JUC之ForkJoin框架
热门文章
- 儿童学习桌有哪些升降方式
- x64 汇编跟 rax , eax ,ax ,ah ,al 的关系
- 声明:博客内容不得用于商业用途,仅做学习交流。
- php 风水起名网站源代码_202002年PHP开运网运势测算网站源码 鼠年风水起名/八字算命/算财运姻缘/易经周易/占卜+安装说明...
- 爱情三十九课,爱的礼物
- 3.3KW车载充电机开关电源设计方案资料数字控制单相PFC与全桥LLC 3.3KW 车载充电机OBC
- 常见开关电源优缺点对比
- Uni-app 小程序 APP 的广告变现之路:插屏广告
- js的间隔调用和延迟调用
- python调用360浏览器浏览网页