前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度挖掘梯度下降算法原理

深度挖掘梯度下降算法原理

作者头像
深度学习与Python
发布2019-06-18 21:06:32
6810
发布2019-06-18 21:06:32
举报
文章被收录于专栏:深度学习与python

深度学习的三个重要部分包括损失函数、优化算法以及激活函数。通常在深度学习的问题中都会针对某一问题定义相应的损失函数,然后使用优化算法找到使损失函数最小的权重,所以越快越准确的找到最优权重值对优化算法来说至关重要。梯度下降算法是一种比较经典的优化算法,也是目前使用较多的优化算法,今天我们来详细了解一下梯度下降算法的工作原理。注意前方可能有公式出没!!

我们先来看一个简单的线性回归例子,假如我们有一组学生体重和身高的数据,现在我们想根据这组数据来分析身高与体重的关系以及根据身高来预测体重。那么我们可以在空间中将数据以散点图的方式画出来,然后绘制一条直线。将直线方程设为Y = mX + b,通过该直线方程对数据进行拟合。

那么这个直线方程就可以看成一个机器学习模型,通过拟合得到的曲线我们就可以根据输入来预测相应的输出。

接下来我们需要来定义一个损失函数评估模型的性能,这里是个回归问题,所以我们采用的是均方差函数:

我们定义误差为

将其代入替换得到

接下来就是梯度下降的过程,为了方便我们将求和部分去掉,只对其中单个误差进行分析,对单个误差求导得到

因此得到误差对变量m和b的梯度为:

这里我们要介绍一下梯度下降中的学习率,学习率是在下降过程中每一步的步长大小,通常我们需要调节参数找到一个最佳学习率。下面我们看一下不同学习率的不同结果:

我们看到,当学习率太低时,需要很多步才能收敛。另一方面,当学习率太高时,梯度下降未找到最小值。因此找到一个适当的学习率是很重要的。下面是将学习率加进去之后的结果。

其中m¹,b¹=下一个位置参数; m⁰,b⁰=当前位置参数因此,为了求解梯度,我们使用新的m和b值迭代我们的数据点并计算偏导数。这个新的梯度告诉我们当前位置损失函数的斜率以及我们应该更新参数的方向。我们的更新大小由学习率控制。下面的公式是对整个梯度下降算法的总结:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习与python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档