本文主要是介绍GD\BGD\SGD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在讨论GBDT前,先来看看什么是GD,BGD和SGD
GD(Gradient Descent,梯度下降):
求损失函数最小值:梯度下降;求损失函数最大值:梯度上升。
假设线性模型:
其中θ是参数。
损失函数为:
那么每次GD的更新算法为:
BGD(Batch Gradient Descent,批量梯度下降):
在更新参数时使用所有的样本来进行更新。
SGD(Stochastic Gradient Descent,随机梯度下降):
仅仅选取一个样本j来求梯度。
总结:
当训练数据过大时,用GD可能造成内存不够用,就可以用SGD。
这篇关于GD\BGD\SGD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!