分类目录:《机器学习中的数学》总目录
相关文章:
· 梯度下降法(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−1​yk​=δ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))−λgkT​Hk−1​gk​

因H−1H^{-1}H−1正定,故有gkTHk−1gk>0g_k^TH^{-1}_kg_k>0gkT​Hk−1​gk​>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+1​yk​=δ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+1​yk​=Gk​yk​+Pk​yk​+Qk​yk​

为了使Gk+1G_{k+1}Gk+1​满足拟牛顿的条件,可使PkP_kPk​和QkQ_kQk​满足:
Pkyk=δkQkyk=−GkykP_ky_k=\delta_k \\ Q_ky_k=-G_ky_kPk​yk​=δk​Qk​yk​=−Gk​yk​

事实上,不难找出这样的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​=δkT​yk​δk​δkT​​Qk​=yk​Gk​ykT​−Gk​yk​ykT​Gk​​

可以证明,如果初始矩阵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​=−Gk​gk​
(5) λk=arg⁡min⁡λ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)+λk​pk​
(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​+Qk​Bk+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​=yk​Qk​δk​=−Bk​δk​

找出合适的PkP_kPk​和QkQ_kQk​,就得到了BFGS算法矩阵Bk+1B_{k+1}Bk+1​d=的迭代公式:
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​δk​yk​ykT​​−δkT​Bk​δk​Bk​δk​δkT​Bk​​

可以证明,如果初始矩阵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​=−gk​Bk−1​
(5) λk=arg⁡min⁡λ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)+λk​pk​
(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−δkT​yk​δk​ykT​​)Gk​(I−δkT​yk​δk​ykT​​)T+δkT​yk​δ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)相关推荐

  1. 什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么?

    什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么? 牛顿法的最初提出是用来求解方程的根的.对于最优化问题,其极值 ...

  2. 机器学习中的数学——牛顿迭代法(Newton‘s Method)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  3. 机器学习中的数学知识(part4)--拟牛顿法

    学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 拟牛顿法 面临的问题(局部极小/鞍点) 机器学习中的数学知识 拟牛顿法

  4. 机器学习中的数学——Adam(Adaptive Moments)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  5. 机器学习中的数学——粒子群算法(Particle Swarm Optimization, PSO)(三):改进的粒子群算法

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  6. 机器学习中的数学——模拟退火算法(Simulated Annealing,SA)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  7. 机器学习中的数学——遗传算法(Genetic Algorithm)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  8. 机器学习中的数学——RMSProp

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  9. 机器学习中的数学——共轭梯度法(Conjugate Gradient)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

最新文章

  1. Angular实现虚拟滚动多选下拉框笔记
  2. python处理excel大数据-Python实现大数据收集至excel的思路详解
  3. 成功解决win系统电脑中网络仅看到自己计算机图文教程
  4. 关于PR转PO的注意事项
  5. 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)
  6. Android之用命令uninstall卸载apk和用 -i 过滤日志忽略大小写
  7. javaScript学习笔记总结(一)
  8. java executor spring_Spring+TaskExecutor实例
  9. 微软全球AI负责人沈向洋博士:下一个智能终端的风口 | IoT in Action
  10. 360搜索引擎能否给苦逼的站长们带来希望?
  11. 三级等级保护之安全物理环境
  12. jQuery写登录弹窗并居中显示
  13. 台式计算机可以连接蓝牙吗,台式电脑可以连接蓝牙音响吗
  14. 1.6 SSH免密登录
  15. 华为5G手机+鸿蒙系统,还能这么玩儿?
  16. 【题解】A1004 求三个数的平均数
  17. Unreal 入门-AO贴图
  18. ARM汇编指令MRS和MSR
  19. 等价类划分和边界值法
  20. JUC之ForkJoin框架

热门文章

  1. 儿童学习桌有哪些升降方式
  2. x64 汇编跟 rax , eax ,ax ,ah ,al 的关系
  3. 声明:博客内容不得用于商业用途,仅做学习交流。
  4. php 风水起名网站源代码_202002年PHP开运网运势测算网站源码 鼠年风水起名/八字算命/算财运姻缘/易经周易/占卜+安装说明...
  5. 爱情三十九课,爱的礼物
  6. 3.3KW车载充电机开关电源设计方案资料数字控制单相PFC与全桥LLC 3.3KW 车载充电机OBC
  7. 常见开关电源优缺点对比
  8. Uni-app 小程序 APP 的广告变现之路:插屏广告
  9. js的间隔调用和延迟调用
  10. python调用360浏览器浏览网页