当前位置:   article > 正文

机器学习—梯度下降—批量梯度下降法、随机梯度下降法、小批量梯度下降法_梯度下降、批量梯度下降、随机梯度下降

梯度下降、批量梯度下降、随机梯度下降
一、批量梯度下降法(Batch Gradient Descent,BGD)

有N个样本,求梯度的时候就用了N个样本的梯度数据
优点:准确 缺点:速度慢

二、随机梯度下降法(Stochastic Gradient Descent,SGD)

和批量梯度下降法原理类似,区别在于求梯度时没有用所有的N个样本的数据,而是仅仅选取一个样本来求梯度
优点:速度快 缺点:准确度低

三、小批量梯度下降法(Mini-batch Gradient Descent)

批量梯度下降法和随机梯度下降法的折衷,比如N=100
spark中使用的此方法

四、小结

1、
Adagrad、RMSprop、Adam等算法都是建立在偏导数之上的,他们并不关心上式中N的取值,N取1,取100,还是取N,Adagrad、RMSprop、Adam等算法都可以运行。

而随机梯度下降法(Stochastic Gradient Descent,SGD),批量梯度下降法(Batch Gradient Descent,BGD),小批量梯度下降法(Mini-batch Gradient Descent,Mini-batchGD)则是研究这里的N的大小的。

如果N=1,此时为SGD,计算代价函数梯度的时候只考虑一个样本;

如果N=样本容量,此时为BGD,计算代价函数梯度的时候考虑全部样本;

如果N=m,1<m<N,此时为Mini-batchGD,计算代价函数梯度的时候考虑一小批样本。

2、
SGD计算根据随机一个样本构造出来的代价函数的梯度,这与计算根据全部样本构造出来的代价函数的梯度肯定有偏差,也许是一个不好的梯度方向,下降时候并不沿着最有的方向下降,但是优点是可以快速的计算一个近似梯度,因为计算量缩减到原来的1/N。

BGD计算根据全部样本的构造出来的代价函数的梯度,方向肯定是沿着当前最优的下降方向,但是计算代价较高,当数据集较大时,相当耗时。

Mini-batchGD是前两者的折中。

大佬的详细理解!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/319094
推荐阅读
相关标签
  

闽ICP备14008679号