![79f73359f6f7ef4779080e13f523b813.png](https://i-blog.csdnimg.cn/blog_migrate/29bc049e792201e05c8afe2528864282.jpeg)
接下来几期将陆续介绍一下梯度下降法及其衍生方法、牛顿迭代法及其变种、共轭梯度法等经典无约束优化方法,这篇是这个系列的第一篇。对这方面内容感兴趣的朋友们可以关注一下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](https://i-blog.csdnimg.cn/blog_migrate/d0d8b015307f72bf8da64807433fdaf0.png)
![equation?tex=%5Cnabla+f](https://i-blog.csdnimg.cn/blog_migrate/62004be9800803bdd75e327088a41e68.png)
![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](https://i-blog.csdnimg.cn/blog_migrate/62004be9800803bdd75e327088a41e68.png+%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](https://i-blog.csdnimg.cn/blog_migrate/0b90536e36e872c2066f7d6b250f4f2e.png)
![equation?tex=%5Cbf%7Bj%7D](https://i-blog.csdnimg.cn/blog_migrate/3e0ca945accfad7f60d96cf6860a2014.png)
![equation?tex=%5Cbf%7Bk%7D](https://i-blog.csdnimg.cn/blog_migrate/f63713cd9ffb748f8de3694b962e2893.png)
![equation?tex=%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+x%7D%7D](https://i-blog.csdnimg.cn/blog_migrate/696e3ac943503724fd11454bb9f9b7b7.png)
![equation?tex=%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+y%7D%7D](https://i-blog.csdnimg.cn/blog_migrate/a70488356f6205db9ba9942b8be96c48.png)
![equation?tex=%5Cfrac%7B%7B%5Cpartial+f%7D%7D%7B%7B%5Cpartial+z%7D%7D](https://i-blog.csdnimg.cn/blog_migrate/38d7d03bf9cad3feae8c571ad828bb1a.png)
- 方向导数:函数在某点处有无数条切线,沿着这些方向的斜率组成了方向导数,每一条切线都代表一个变化的方向。
- 偏导数:函数在一个点处有无数个导数,而延着坐标轴方向对应的导数叫偏导数。
- 梯度:是一个向量,它是的方向是最大方向导数所对应的方向。
梯度下降法就是以梯度为搜索方向的迭代优化算法
![fefc23eacbe4736236e0c13a12a5b2d3.png](https://i-blog.csdnimg.cn/blog_migrate/b8e10ff47354722756bf8ba3f27aad78.jpeg)
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](https://i-blog.csdnimg.cn/blog_migrate/3b07a954551fa7cad4821409dbc70105.png)
函数
![equation?tex=f](https://i-blog.csdnimg.cn/blog_migrate/b1546fe57556d315e29ee6712725da66.png)
![d0083998b5c86fb5cff2a6db7693cddd.png](https://i-blog.csdnimg.cn/blog_migrate/456b94ae4e475f76e27a98899761a013.jpeg)
我们先来看看梯度下降法是什么样子的,梯度下降法的迭代公式为:
![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](https://i-blog.csdnimg.cn/blog_migrate/b46bd04ab6b60810ba763d9c29f32755.png)
式 (2) 中
![equation?tex=%7B%7B%5Cbf%7Bx%7D%7D%5Ek%7D](https://i-blog.csdnimg.cn/blog_migrate/4ed5732e9fa87305570a71f6aa8636d8.png)
![equation?tex=k](https://i-blog.csdnimg.cn/blog_migrate/9d4a1163d2eb1bb72228d1279049c2d8.png)
![equation?tex=%5Calpha_k](https://i-blog.csdnimg.cn/blog_migrate/e6841fa747413b5ceac32fdfd7d27bed.png)
![equation?tex=k](https://i-blog.csdnimg.cn/blog_migrate/9d4a1163d2eb1bb72228d1279049c2d8.png)