前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从零开始深度学习(四):梯度下降法

从零开始深度学习(四):梯度下降法

作者头像
我是管小亮
发布2020-04-20 16:36:22
发布2020-04-20 16:36:22
8180
举报

文章首发于本人CSDN账号:https://blog.csdn.net/tefuirnever

由于微信不允许外部链接,你需要点击页尾左下角的“阅读原文”,才能访问文中的链接。

1、梯度下降

梯度下降法可以做什么?

在测试集上,通过最小化 代价函数(成本函数) 来训练的参数 和 。

梯度下降法的形象化说明

在这个图中,横轴表示空间参数 和 ,代价函数(成本函数) 是曲面,因此曲面高度就是 在某一点的函数值。

而深度学习的最终目标就是找到代价函数(成本函数) 函数值为最小值时对应的参数 和 。梯度下降 可以分为三个步骤:

1. 随机初始化两个参数

以如图小红点的坐标来初始化参数 和 。

开始寻找代价函数(成本函数) 函数值的最小值。

2. 朝最陡的下坡方向走一步,不断地迭代

朝最陡的下坡方向走一步,如图,走到了如图中第二个小红点处。

可能停在这里,也有可能继续朝最陡的下坡方向再走一步,如图,经过两次迭代走到第三个小红点处。

3.直到走到全局最优解或者接近全局最优解的地方

通过重复以上的步骤,可以找到全局最优解,也就是代价函数(成本函数) 这个凸函数的最小值点。

梯度下降法的细节化说明

逻辑回归的代价函数(成本函数) 是含有两个参数的。

简要说明一下式子中的符号, 表示求偏导符号,可以读作 round; 就是函数 对 求偏导,在代码中为 ; 就是函数 对 求偏导,在代码中为 。

其实无论是 还是 都是求导数的意思,那么二者的区别是什么呢?

  • 用在 求导数(derivative),即函数只有一个参数
  • 用在 求偏导(partial derivative),即函数含有两个以上的参数
梯度下降法的具体化说明

梯度下降是如何进行的呢?这里任选一参数 进行举例:假定代价函数(成本函数) 只有一个参数,即用一维曲线代替多维曲线,这样可以更好画出如下图像。

迭代就是不断重复做如图的公式:

其中,:= 表示更新参数; 表示 学习率(learning rate),用来控制 步长(step); 就是函数 对 求导(derivative),在代码中为 。对于导数更加形象化的理解就是 斜率(slope)

如图该点的导数就是这个点相切于 的小三角形的高除宽(这是高中数学学过的,不会的去百度——导数)。假设初始化如图点为起始点,该点处的斜率的符号是正,即 ,所以接下来会向左走一步(假设该点处的斜率的符号是负的,则会向右走一步),如图:

不断地向左走,直至逼近最小值点,这就是梯度下降法的迭代过程。

2、逻辑回归的梯度下降法

逻辑回归的梯度下降算法,关键点是几个重要公式,虽然使用计算图来计算逻辑回归的梯度下降算法有点大材小用了,具体什么是导数,什么是计算图,可以看下一个文章。

下面来完完整整地进行这个梯度下降算法的过程演示,相信我,跟着你就能全懂了。


假设,单个样本样本只有两个特征 和 ,为了计算 ,需要输入参数 、 和 。

因此 。

回想一下逻辑回归的公式定义如下:,其中、。

损失函数 。

代价函数 。

若只考虑单个样本,代价函数变为 。

梯度下降法中 和 的修正表达为 ,。

现在画出表示这个计算过程的计算图,如下:

有了计算图,就不需要再写出公式了,只需修改参数 和 。前面已经讲解了前向传播,现在来说一下反向传播。

想要计算出代价函数 的导数,可以使用链式法则。

首先计算出 关于 的导数。通过计算可以得出

因此将这两项相乘,得到:

肯定会有小伙伴说自己不太会微积分,不知道链式法则。Don‘t worry!!!只需知道 已经计算好了,拿来主义,直接拿过来用就可以了。

最后一步反向推导,也就是计算 和 变化对代价函数 的影响

然后更新

这就是单个样本实例的梯度下降算法中参数更新一次的步骤,深度学习的过程可以简单理解为重复迭代优化的过程(肯定不准确,就是为了先理解一下而已)。吴恩达老师画的图,直观的体现了整个过程:

3、m个样本的梯度下降

我们想要的,肯定不是单个样本,而是在 个训练样本上,也就是训练集上。

首先,关于算法的带求和的全局代价函数 的定义如下:

实际上是1到 项各个损失的平均,所以对 的微分,对 的微分,也同样是各项损失对 微分的平均。

吴恩达老师手写稿如下:

而代价函数对权重向量 θ 求导过程如下,损失函数为交叉熵损失函数,整个过程如下:

通过 向量化 就可以得到

因此更新公式为:

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

本文分享自 程序员管小亮 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 梯度下降法可以做什么?
  • 梯度下降法的形象化说明
  • 梯度下降法的细节化说明
  • 梯度下降法的具体化说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档