13 | 优化方法:更新模型参数的方法
用下山路线规划理解优化方法
- 深入了解
- 翻译
- 解释
- 总结
梯度下降是深度学习中的重要优化方法之一,本文介绍了梯度下降的原理和常见方法。通过生活化的例子解释了梯度下降的概念,详细介绍了批量梯度下降法(BGD)的原理和公式推导。随机梯度下降(SGD)以及小批量梯度下降(MBGD)方法也被提及,强调了它们在训练速度和效果之间的权衡。文章还通过一个抽象例子展示了深度学习模型训练的基本步骤,包括模型定义、损失函数定义和优化器定义。总结强调了梯度下降的核心意义,介绍了常用的梯度下降方法以及训练模型所需的关键内容。整体而言,本文通过简洁易懂的语言和例子,帮助读者快速了解了梯度下降的基本原理和常见方法,以及深度学习模型训练的关键步骤。
《PyTorch 深度学习实战》,新⼈⾸单¥59
全部留言(14)
- 最新
- 精选
- vcjmhg不是 1. batch_size越大显存占用会越多,可能会造成内存溢出问题,此外由于一次读取太多的样本,可能会造成迭代速度慢的问题。 2. batch_size较大容易使模型收敛在局部最优点 3. 此外过大的batch_size的可能会导致模型泛化能力较差的问题
作者回复: 👍🏻👍🏻👍🏻^^,厉害。
2021-11-09319 - clee你好,最近3节课是理论偏多,实际动手部分偏少,那这部分内容应该怎么实际动手练习才能和理论想结合的更好,这方面有什么建议呢?
作者回复: 你好,clee,感谢你的留言。 先恭喜你坚持到这了^^。在14节课里会把前面的知识串起来,讲讲如何自己构建一个模型,然后训练它。 在后续的实战篇里,会讲解在工业中一些CV与NLP的应用,在实战篇里都能看到这些理论知识的影子。
2021-11-085 - 和你一起搬砖的胡大爷老师,吴恩达老师的ml课上说不管什么gd都没法确定打到全局最优,在高维数据下几乎必然只能到局部最优,所以初始化的技巧就比较重要。 老师您说的就无法得到全局最优我不大理解
作者回复: hello, 其实这跟Andrew Ng大神的说法不冲突的,咱们在这里讨论的是一种相对简单(特征没有那么多)的情况,形象化的比喻的话,还是下山的问题,高维数据相当于不是一座山,而是一片片山脉,模型在寻找最优的过程中因为步长的原因,极大概率就会进入到局部最优。这也就是为什么有时候会加入一个momentum的原因,让模型再冲出去到别的山谷试试。
2021-11-173 - 马克图布文章里说: > 越小的 batch size 对应的更新速度就越快,反之则越慢,但是更新速度慢就不容易陷入局部最优。 「更新速度慢就不容易陷入局部最优」这不是说「越大的 batch size 越不容易陷入局部最优」么?看了其他人和老师的留言被整晕了……😂
作者回复: hello。 batch size太小的话,那么每个batch之间的差异就会很大,迭代的时候梯度震荡就会严重,不利于收敛。 batch size越大,那么batch之间的差异越小,梯度震荡小,利于模型收敛。 但是凡事有个限度,如果batch size太大了,训练过程就会一直沿着一个方向走,从而陷入局部最优。 这也就是为什么我们要不断的尝试一个相对合理的mini batch
2021-11-123 - 官并不是,batchsize越大更新越慢,而且对显存要求变高,在配置较低的机器会出现显存不足的问题
作者回复: ^^,👍🏻👍🏻。是的,除此之外,较大的batch_size容易使模型收敛在局部最优点,特别小则容易受噪声影响。
2021-11-083 - tombatch size过大,有可能会爆显存。。。😂
作者回复: 你好,tom,谢谢你的留言。 是的,batch size太大显存会爆掉。 除此之外,较大的batch_size容易使模型收敛在局部最优点,特别小则容易受噪声影响。^^
2021-11-081 - ifelse老师我不太明白梯度下降。 梯度下降最快,但是风险最大,所以损失函数最大。反方向就是下降最慢,风险最小,所以损失函数最小吗? 那反方向,听字面意思不是朝山上回去了吗?
作者回复: 你好,似乎你有点混淆这几个概念。 1. “反方向”是梯度下降法的反方向是指梯度的负方向。可以复习下高等数学的内容:) 2. 梯度下降的方向: 在梯度下降中,我们通过计算损失函数关于参数的梯度,并沿着梯度的反方向更新参数,以减小损失函数的值。这样可以走到谷底,也就是获得最小值或极小值。 3. 我们的目标是获得损失函数的最小值。 4. 梯度下降确实存在风险。可能陷入局部最小值,而非全局最小值。 总之,梯度下降的目标是通过调整参数来最小化损失函数,而非最大化。在训练过程中,通过沿着梯度的反方向更新参数,模型逐渐接近最小值。
2023-12-01归属地:浙江 - 人间失格老师,请问"迭代速度慢"这个问题 1、随机梯度下降和批量梯度下降都是对每个样本求损失,理论上是不是计算次数一样呢,这个慢是指的参数更新慢吗,总体上是不是批量下降更快一点。 2、小批量梯度下降和随机梯度下降的epoch理论上次数差别大吗,随机梯度下降每个样本更新一次,epoch会不会少一点也能达到相同的收敛效果。
作者回复: hello,你好。谢谢你的留言。 1. 随机梯度下降是每个样本计算之后都要更新模型参数,批量梯度则是一个batch之后再更新模型参数。2. 有区别的,建议采用批量梯度
2021-11-22 - IUniversebatchsize越大,更新模型的也会越慢。同时太大了也会爆显存
作者回复: 你好,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-3013