前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[DeeplearningAI 笔记]第二章 2.1-2.2_mini-batch 梯度下降法

[DeeplearningAI 笔记]第二章 2.1-2.2_mini-batch 梯度下降法

作者头像
演化计算与人工智能
发布2020-08-14 11:05:53
7810
发布2020-08-14 11:05:53
举报

2.1 mini-batch gradient descent mini-batch 梯度下降法

  • 我们将训练数据组合到一个大的矩阵中
X=\begin{bmatrix}x^{(1)}&x^{(2)}&x^{(3)}&x^{(4)}&x^{(5)}...x^{(n)}\end{bmatrix}
Y=\begin{bmatrix}y^{(1)}&y^{(2)}&y^{(3)}&y^{(4)}&y^{(5)}...y^{(n)}\end{bmatrix}
  • 在对整个数据集进行梯度下降时,你要做的是,你必须训练整个训练集,然后才能进行一步梯度下降法.然后需要重新训练整个数据集,才能进行下一步梯度下降法.所以你在训练整个训练集的一部分时就进行梯度下降,你的算法速度会更快.你可以把训练集分割为小一点的子训练集.这些小的训练集被称为 mini-batch.每次训练一个 mini-batch 后就对模型的权值进行梯度下降的算法叫做 mini-batch 梯度下降法.

2.2 理解 mini-batch 梯度下降

  • 在 batch 梯度下降中,每次迭代你都需要遍历整个训练集,可以预期正常情况下每次迭代的成本函数都会下降.
  • 使用 mini-batch 梯度下降法时,会发现 cost 并不是每次迭代都下降的,看到的图像可能是以下这种情况.总体走向朝下但是有更多的噪声.

你需要决定的变量之一就是 mini-batch 的大小,m 就是训练集的大小.

  • 极端情况下,如果 m=mini-batch,其实就是batch 梯度下降法.在这种极端情况下,假设 mini-batch 大小为 1 一次只处理一个,就有了新的算法,叫做随机梯度下降法.
  • 看两个极端情况下,成本函数的优化情况:
    • 假设图中蓝点是最小值点,其中 batch 梯度下降从某处开始,相对噪声低些,幅度也大一些:
  • 对于随机剃度下降,你只对一个样本进行梯度下降,大部分时候你向着全局最小值靠近,但是有时候你会偏离方向,因为那个样本恰好给你指的方向不正确.因此随机梯度下降法是有很多噪声的.平均来看会向着正确的方向,不过有时候也会方向错误.
  • 因为随机梯度下降法永远不会收敛,而是会一直在最小值附近波动.但它并不会达到最小值并停留于此.

不同的梯度下降算法的利和弊

  • 每次迭代需要处理大量训练样本,该算法主要弊端是特别是在训练样本数量巨大的时候,单次迭代耗时太长,如果训练样本不大,batch 梯度下降法运行的很好.
  • 相反如果使用随机梯度下降法,每次只训练一个训练样本,通过减少学习率,噪声也会相应的减少.但是其一大缺点是:你会失去所有向量化带给你的加速.

指导原则

如果训练集较小,就直接使用 batch 梯度下降法,样本集较小就没必要使用 mini-batch 梯度下降法.这里说的是少于 2000 个样本.这样比较适合使用 batch 梯度下降法.

不然如果数据量较大,一般的 mini-batch 大小为 64 到 512,考虑到计算机的结构,一般来说,mini-batch 的值取 2 的幂次方数比较合适,会相应的加快训练速度.

参考资料

[1]

吴恩达老师课程原地址: https://mooc.study.163.com/smartSpec/detail/1001319001.htm

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

本文分享自 DrawSky 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 mini-batch gradient descent mini-batch 梯度下降法
  • 2.2 理解 mini-batch 梯度下降
    • 你需要决定的变量之一就是 mini-batch 的大小,m 就是训练集的大小.
      • 不同的梯度下降算法的利和弊
        • 指导原则
          • 如果训练集较小,就直接使用 batch 梯度下降法,样本集较小就没必要使用 mini-batch 梯度下降法.这里说的是少于 2000 个样本.这样比较适合使用 batch 梯度下降法.
          • 不然如果数据量较大,一般的 mini-batch 大小为 64 到 512,考虑到计算机的结构,一般来说,mini-batch 的值取 2 的幂次方数比较合适,会相应的加快训练速度.
          • 参考资料
      相关产品与服务
      批量计算
      批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档