PyTorch 深度学习实战
方远
LINE China 数据科学家
10381 人已学习
新⼈⾸单¥59
登录后,你可以任选3讲全文学习
课程目录
已完结/共 32 讲
开篇词 (1讲)
PyTorch 深度学习实战
15
15
1.0x
00:00/00:00
登录|注册

13 | 优化方法:更新模型参数的方法

你好,我是方远。
在上节课中,我们共同了解了前馈网络、导数、梯度、反向传播等概念。但是距离真正完全了解神经网络的学习过程,我们还差一个重要的环节,那就是优化方法。只有搞懂了优化方法,才能做到真的明白反向传播的具体过程。
今天我们就来学习一下优化方法,为了让你建立更深入的理解,后面我还特意为你准备了一个例子,把这三节课的所有内容串联起来。

用下山路线规划理解优化方法

深度学习,其实包括了三个最重要的核心过程:模型表示、方法评估、优化方法。我们上节课学习的内容,都是为了优化方法做铺垫。
优化方法,指的是一个过程,这个过程的目的就是,寻找模型在所有可能性中达到评估效果指标最好的那一个。我们举个例子,对于函数 f(x),它包含了一组参数。
这个例子中,优化方法的目的就是找到能够使得 f(x) 的值达到最小值对应的权重。换句话说,优化过程就是找到一个状态,这个状态能够让模型的损失函数最小,而这个状态就是模型的权重
常见的优化方法种类非常多,常见的有梯度下降法、牛顿法、拟牛顿法等,涉及的数学知识也更是不可胜数。同样的,PyTorch 也将优化方法进行了封装,我们在实际开发中直接使用即可,节省了大量的时间和劳动。
不过,为了更好地理解深度学习特别是反向传播的过程,我们还是有必要对一些重要的优化方法进行了解。我们这节课要学习的梯度下降法,也是深度学习中使用最为广泛的优化方法。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

梯度下降是深度学习中的重要优化方法之一,本文介绍了梯度下降的原理和常见方法。通过生活化的例子解释了梯度下降的概念,详细介绍了批量梯度下降法(BGD)的原理和公式推导。随机梯度下降(SGD)以及小批量梯度下降(MBGD)方法也被提及,强调了它们在训练速度和效果之间的权衡。文章还通过一个抽象例子展示了深度学习模型训练的基本步骤,包括模型定义、损失函数定义和优化器定义。总结强调了梯度下降的核心意义,介绍了常用的梯度下降方法以及训练模型所需的关键内容。整体而言,本文通过简洁易懂的语言和例子,帮助读者快速了解了梯度下降的基本原理和常见方法,以及深度学习模型训练的关键步骤。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《PyTorch 深度学习实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • vcjmhg
    不是 1. batch_size越大显存占用会越多,可能会造成内存溢出问题,此外由于一次读取太多的样本,可能会造成迭代速度慢的问题。 2. batch_size较大容易使模型收敛在局部最优点 3. 此外过大的batch_size的可能会导致模型泛化能力较差的问题

    作者回复: 👍🏻👍🏻👍🏻^^,厉害。

    2021-11-09
    3
    19
  • clee
    你好,最近3节课是理论偏多,实际动手部分偏少,那这部分内容应该怎么实际动手练习才能和理论想结合的更好,这方面有什么建议呢?

    作者回复: 你好,clee,感谢你的留言。 先恭喜你坚持到这了^^。在14节课里会把前面的知识串起来,讲讲如何自己构建一个模型,然后训练它。 在后续的实战篇里,会讲解在工业中一些CV与NLP的应用,在实战篇里都能看到这些理论知识的影子。

    2021-11-08
    5
  • 和你一起搬砖的胡大爷
    老师,吴恩达老师的ml课上说不管什么gd都没法确定打到全局最优,在高维数据下几乎必然只能到局部最优,所以初始化的技巧就比较重要。 老师您说的就无法得到全局最优我不大理解

    作者回复: hello, 其实这跟Andrew Ng大神的说法不冲突的,咱们在这里讨论的是一种相对简单(特征没有那么多)的情况,形象化的比喻的话,还是下山的问题,高维数据相当于不是一座山,而是一片片山脉,模型在寻找最优的过程中因为步长的原因,极大概率就会进入到局部最优。这也就是为什么有时候会加入一个momentum的原因,让模型再冲出去到别的山谷试试。

    2021-11-17
    3
  • 马克图布
    文章里说: > 越小的 batch size 对应的更新速度就越快,反之则越慢,但是更新速度慢就不容易陷入局部最优。 「更新速度慢就不容易陷入局部最优」这不是说「越大的 batch size 越不容易陷入局部最优」么?看了其他人和老师的留言被整晕了……😂

    作者回复: hello。 batch size太小的话,那么每个batch之间的差异就会很大,迭代的时候梯度震荡就会严重,不利于收敛。 batch size越大,那么batch之间的差异越小,梯度震荡小,利于模型收敛。 但是凡事有个限度,如果batch size太大了,训练过程就会一直沿着一个方向走,从而陷入局部最优。 这也就是为什么我们要不断的尝试一个相对合理的mini batch

    2021-11-12
    3
  • 并不是,batchsize越大更新越慢,而且对显存要求变高,在配置较低的机器会出现显存不足的问题

    作者回复: ^^,👍🏻👍🏻。是的,除此之外,较大的batch_size容易使模型收敛在局部最优点,特别小则容易受噪声影响。

    2021-11-08
    3
  • tom
    batch size过大,有可能会爆显存。。。😂

    作者回复: 你好,tom,谢谢你的留言。 是的,batch size太大显存会爆掉。 除此之外,较大的batch_size容易使模型收敛在局部最优点,特别小则容易受噪声影响。^^

    2021-11-08
    1
  • ifelse
    老师我不太明白梯度下降。 梯度下降最快,但是风险最大,所以损失函数最大。反方向就是下降最慢,风险最小,所以损失函数最小吗? 那反方向,听字面意思不是朝山上回去了吗?

    作者回复: 你好,似乎你有点混淆这几个概念。 1. “反方向”是梯度下降法的反方向是指梯度的负方向。可以复习下高等数学的内容:) 2. 梯度下降的方向: 在梯度下降中,我们通过计算损失函数关于参数的梯度,并沿着梯度的反方向更新参数,以减小损失函数的值。这样可以走到谷底,也就是获得最小值或极小值。 3. 我们的目标是获得损失函数的最小值。 4. 梯度下降确实存在风险。可能陷入局部最小值,而非全局最小值。 总之,梯度下降的目标是通过调整参数来最小化损失函数,而非最大化。在训练过程中,通过沿着梯度的反方向更新参数,模型逐渐接近最小值。

    2023-12-01归属地:浙江
  • 人间失格
    老师,请问"迭代速度慢"这个问题 1、随机梯度下降和批量梯度下降都是对每个样本求损失,理论上是不是计算次数一样呢,这个慢是指的参数更新慢吗,总体上是不是批量下降更快一点。 2、小批量梯度下降和随机梯度下降的epoch理论上次数差别大吗,随机梯度下降每个样本更新一次,epoch会不会少一点也能达到相同的收敛效果。

    作者回复: hello,你好。谢谢你的留言。 1. 随机梯度下降是每个样本计算之后都要更新模型参数,批量梯度则是一个batch之后再更新模型参数。2. 有区别的,建议采用批量梯度

    2021-11-22
  • IUniverse
    batchsize越大,更新模型的也会越慢。同时太大了也会爆显存

    作者回复: 你好,IUniverse,谢谢你的留言。 是的, 除此之外,较大的batch_size容易使模型收敛在局部最优点,特别小则容易受噪声影响。^^

    2021-11-08
  • 白色纯度
    batch_size理解: 1) Batch_size 设为 2 的幂,是为了符合 CPU、GPU 的内存要求,利于并行化处理 2) Batch_size 设置的大(视数据集而定,一般上千就算比较大了),意味着守旧派系 a) 优点是:梯度震荡小,训练结果更稳定,训练时间相对更短。 b) 缺点:泛化能力差,因为相同epoch的情况下,参数更新的次数减少了,增大迭代次数可以适当提高模型表现;内存可能会溢出,训练速度变慢;容易陷入局部最优(毕竟全局最优只有一个,局部最优有很多,收敛太过平稳,一旦陷入某个极小值便很难逃离) 3)batch_size设置的小,意味着创新派 a) 更新频繁,会受到噪声数据的影响,容易逃离局部最优 b) 泛化能力往往更强,在数据标注没有大范围出错的情况下,参数更新次数频繁,更新方向整体都是对的,方向错的次数占比更低,容易被纠正 按照极限法的思路,batch_size为1,代表着参数更新极不稳定;batch_size为全体数据样本量,更新非常稳定。但参数更新本就是个追逐最优的过程,遇到极值前需要稳定更新,遇到极值后需要不稳定的更新逃离马鞍面。所以衍生出 mini-batch_size的办法。权衡之下的取舍吧。
    2021-11-30
    13
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部