梯度下降法里的error_梯度下降法系列—(1)原理与仿真

本文介绍了梯度下降法的基本原理,包括偏导数、方向导数和梯度的概念,并阐述了梯度下降法的迭代公式和矩阵形式。通过Matlab代码和仿真结果展示了梯度下降法的性能,讨论了其优点(低复杂度,适合大规模问题)和缺点(收敛速度慢,受初始点影响大)。
摘要由CSDN通过智能技术生成

79f73359f6f7ef4779080e13f523b813.png

接下来几期将陆续介绍一下梯度下降法及其衍生方法、牛顿迭代法及其变种、共轭梯度法等经典无约束优化方法,这篇是这个系列的第一篇。对这方面内容感兴趣的朋友们可以关注一下wx公号“优化与算法”,可以便捷及时的浏览相关内容,也可以与作者联系互相交流学习。其次也欢迎加入优化与算法扣扣群1032493483与各位同仁交流学习。

1 引言

梯度下降法(Gradient Descent)也称为最速下降法(Steepest Descent),是法国数学家奥古斯丁·路易·柯西 (Augustin Louis Cauchy) 于1847年提出来,它是最优化方法中最经典和最简单的一阶方法之一。梯度下降法由于其较低的复杂度和简单的操作而在很多领域得到广泛研究和应用,如机器学习。由梯度下降法衍生了许多其他算法,如次梯度下降法,近端梯度下降法,随机梯度下降法,回溯梯度发,动量加速梯度法等等。本文只介绍最基础的梯度下降法原理和理论分析,与此同时,通过仿真来说明梯度下降法的优势和缺陷。其他重要的梯度下降衍生方法会持续更新,敬请关注。

2 梯度下降法原理

2.1 偏导数,方向导数和梯度

在直角坐标系下,标量函数

equation?tex=f%3A%5Cmathbb%7BR%7D%5E%7Bn%7D%5Cmapsto+%5Cmathbb%7BR%7D 的梯度
equation?tex=%5Cnabla+f 定义为:

equation?tex=%5Cnabla+f+%3D+%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+x%7D%7D%7B%5Cbf%7Bi%7D%7D+%2B+%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+y%7D%7D%7B%5Cbf%7Bj%7D%7D+%2B+%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+z%7D%7D%7B%5Cbf%7Bk%7D%7D+%5C%5C

其中

equation?tex=%5Cbf%7Bi%7D
equation?tex=%5Cbf%7Bj%7D
equation?tex=%5Cbf%7Bk%7D 表示在三个维度的单位方向矢量。
equation?tex=%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+x%7D%7D
equation?tex=%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+y%7D%7D
equation?tex=%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+z%7D%7D 为对应的偏导数。
  • 方向导数:函数在某点处有无数条切线,沿着这些方向的斜率组成了方向导数,每一条切线都代表一个变化的方向。
  • 偏导数:函数在一个点处有无数个导数,而延着坐标轴方向对应的导数叫偏导数。
  • 梯度:是一个向量,它是的方向是最大方向导数所对应的方向。

梯度下降法就是以梯度为搜索方向的迭代优化算法

fefc23eacbe4736236e0c13a12a5b2d3.png

2.2 梯度下降法描述

对于无约束优化问题:

equation?tex=%5Cmathop+%7B%5Carg+%5Cmin+%7D%5Climits_%7B%7B%5Cbf%7Bx%7D%7D+%5Cin+%7B%5Cmathbb%7BR%7D%5En%7D%7D+f%28%7B%5Cbf%7Bx%7D%7D%29+%5C%5C

函数

equation?tex=f 可以是凸的,也可以是非凸的,在高维非凸的情况下,解这样一个优化问题可能很难计算解析解,而我们可以使用数值迭代法来求得一个局部最优解。这样的迭代方法有很多,比如本文讲的梯度下降法,牛顿迭代法,共轭梯度法等,其中梯度下降法利用了梯度信息,属于一阶方法,牛顿法利用了海森矩阵,属于二阶方法,而共轭梯度法是介于这二者之间的方法。

d0083998b5c86fb5cff2a6db7693cddd.png

我们先来看看梯度下降法是什么样子的,梯度下降法的迭代公式为:

equation?tex=%7B%7B%5Cbf%7Bx%7D%7D%5E%7Bk+%2B+1%7D%7D+%3D+%7B%7B%5Cbf%7Bx%7D%7D%5Ek%7D+%2B+%7B%5Calpha+_k%7D%7B%7B%5Cbf%7Bd%7D%7D%5Ek%7D+%5C%5C

式 (2) 中

equation?tex=%7B%7B%5Cbf%7Bx%7D%7D%5Ek%7D 表示第
equation?tex=k 次迭代时的位置,
equation?tex=%5Calpha_k 表示第
equation?tex=k 次迭代的步长,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值