首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯度下降和随机梯度下降有什么区别?

梯度下降和随机梯度下降有什么区别?
EN

Data Science用户
提问于 2018-08-04 06:36:04
回答 6查看 144.1K关注 0票数 75

梯度下降和随机梯度下降有什么区别?

我对这些不太熟悉,你能用一个简短的例子来描述这种差异吗?

EN

回答 6

Data Science用户

发布于 2018-08-04 06:39:59

关于一个简单的快速解释:

在梯度下降(GD)和随机梯度下降(SGD)中,您可以以迭代的方式更新一组参数,以最小化错误函数。

在GD中,您必须运行培训集中的所有示例,以便对特定迭代中的参数执行单个更新,而在SGD中,则只使用培训集中的一个或部分培训样本来对特定迭代中的参数进行更新。如果你使用子集,它被称为小批量随机梯度下降。

因此,如果训练样本的数量很大,实际上非常大,那么使用梯度下降可能会花费太长时间,因为在每次迭代中,当您更新参数的值时,您正在运行完整的训练集。另一方面,使用SGD会更快,因为您只使用一个训练样本,并且它从第一个示例开始改进自己。

与GD相比,SGD的收敛速度通常要快得多,但错误函数的最小化程度不如GD。在大多数情况下,在SGD中得到的对参数值的逼近就足够了,因为它们达到了最优值并在那里保持振荡。

如果您需要一个实际案例的例子,请查看这里的Andrew注释,其中他清楚地向您展示了这两个案例所涉及的步骤。cs229 229-注释

来源:Quora螺纹

票数 84
EN

Data Science用户

发布于 2018-08-04 09:32:30

随机一词的加入仅仅是指在梯度下降的框架内,在每次运行中选择训练数据中的随机样本来更新参数。

这样做不仅可以在更快的迭代中计算错误和更新权重(因为我们一次只处理一小部分样本),而且它还常常有助于更快地实现最优。拥有一个看这里的答案,以获得更多关于为什么使用随机小型批次进行培训的优势的信息。

一个可能的缺点是,通往最佳状态的路径(假设它总是相同的最优)可能会更吵。因此,不是一条很好的平滑损失曲线,而是显示了在梯度下降的每一次迭代中,误差是如何减小的,您可能会看到这样的情况:

随着时间的推移,损失明显减少,但各时期(训练批次到训练批次)的变化很大,因此曲线噪声很大。

这只是因为我们在每次迭代中从整个数据集中计算随机/随机选择子集的平均误差。有些样本会产生很高的误差,有些则会产生较低的误差。因此,平均可能会有所不同,取决于我们随机使用哪些样本进行一次梯度下降迭代。

票数 18
EN

Data Science用户

发布于 2018-08-04 20:03:37

在梯度下降或间歇梯度下降中,我们使用每个时期的全部训练数据,而在随机梯度下降中,我们只使用单个训练实例,而最小批量梯度下降位于这两个极值之间,在这两个极值之间我们可以使用一个小批(小部分)训练数据,选择小批大小的经验规则是2,例如32,64,128等。

有关更多详细信息:cs231n课堂讲稿

票数 10
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/36450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档