这里我们对梯度下降算法,随机梯度下降算法和小批次梯度下降算法这三个优化算法进行辨析。
参考书中关于这三个算法的描述:
梯度下降算法:
随机梯度下降算法:
小批次梯度下降算法:
注意:会平均批内的导数。
三个算法的关系:
整批随机梯度(Full-Batch Stochastic Gradient):如果在随机梯度下降中选择整个训练数据集作为数据集合S,那么这个过程实际上等同于经典的梯度下降算法。在这种情况下,梯度是基于整个数据集计算的,因此每次更新都会稳定地朝着最小化方向移动。
小批随机梯度(Mini-Batch Stochastic Gradient):当在随机梯度下降中只选择一部分(小批次)数据点作为数据集合S时,这就是小批次梯度下降算法。在这种情况下,虽然每次更新依赖于随机选取的小批数据,但整体算法在计算效率和收敛性上表现更好。
但是注意到一般来说传统意义上的梯度下降算法就是计算一个样本点的梯度,这本书上的概念有点不同。
三个算法的对比表格:
对比维度 |
梯度下降算法 |
随机梯度下降算法 |
小批次梯度下降算法 |
定义 |
使用整个训练数据集来计算梯度并更新参数 |
每次使用一个样本点来计算梯度并更新参数 |
使用一小部分(批次)数据集样本来计算梯度并更新参数 |
数据量 |
使用整个训练数据集 |
使用一个样本点 |
使用部分样本(小批次) |
计算效率 |
计算量较大,计算资源消耗高 |
计算量小,计算资源消耗低 |
介于两者之间,效率较高 |
更新频率 |
每轮训练仅更新一次 |
每次使用一个样本点即更新一次 |
每批次更新一次,更新频率适中 |
稳定性 |
梯度更新方向稳定,但可能导致局部极小值 |
更新方向不稳定,梯度波动大 |
更新方向较平稳,相对随机梯度下降更稳定 |
收敛速度 |
收敛较慢,但在全局方向上精度高 |
收敛快,易于逃离局部极小值 |
收敛速度适中,兼具收敛性和计算效率 |
优点 |
能够稳定地朝着全局最优方向收敛 |
收敛速度快,易于逃离局部极小值 |
计算高效,收敛更平稳,在效率和精度上较为平衡 |
缺点 |
计算量大,训练时间长 |
更新不稳定,可能导致发散 |
效率虽高但依赖小批次大小,需进行批次大小的调优 |
适用场景 |
数据量较小的场景,适合需要高稳定性的任务 |
适合大数据量、实时学习的场景 |
适合数据量较大,需兼顾效率和稳定性的场景 |
三个算法的实际例子:
梯度下降算法GD:
随机梯度下降算法SGD:
小批次梯度下降算法Mini-batch GD:
点击下方公众号名片关注该栏目吧:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-xnyh/44037.html