机器学习中的梯度下降法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haishu_zheng/article/details/79978889

机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以使用梯度下降法(Gradient Descent)处理,那么搞懂什么是梯度,什么是梯度下降法就非常重要。
提到梯度,就必须从导数(derivative)、偏导数(partial derivative)和方向导数(directional derivative)讲起,弄清楚这些概念,才能够正确理解为什么在优化问题中使用梯度下降法来优化目标函数,并熟练掌握梯度下降法(Gradient Descent)。

一、导数

1-1.jpg

定义:
当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f’(x0)或df(x0)/dx。

1-2.png

二、偏导数

定义:

2.png

可以看到,导数与偏导数本质是一致的,都是当自变量的变化量趋于0时,函数值的变化量与自变量变化量比值的极限。

三、方向导数

定义:

3.png

在前面导数和偏导数的定义中,均是沿坐标轴讨论函数的变化率。那么当我们讨论函数沿任意方向的变化率时,也就引出了方向导数的定义,即:某一点在某一趋近方向上的导数值

四、梯度

定义:

4.png

梯度的提出只为回答一个问题:
函数在变量空间的某一点处,沿着哪一个方向有最大的变化率?

函数在某一点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。

这里注意三点:
1)梯度是一个向量,即有方向有大小;
2)梯度的方向是最大方向导数的方向;
3)梯度的值是最大方向导数的值。

五、梯度下降法

既然在变量空间的某一点处,函数沿梯度方向具有最大的变化率,那么在优化目标函数的时候,自然是沿着负梯度方向去减小函数值,以此达到我们的优化目标。

如何沿着负梯度方向减小函数值呢?既然梯度是偏导数的集合,那么我们在每个变量轴上减小对应变量值即可。
梯度下降法可以描述如下:

5.png

以上就是梯度下降法的由来,大部分的机器学习任务,都可以利用Gradient Descent来进行优化。

参考资料

1. 《高等数学》第五版,高等教育出版社
2. https://blog.csdn.net/walilk/article/details/50978864#reply


算法竞赛QQ交流群:648202993
更多内容请关注微信公众号
wechat_public.jpg

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页