不同的梯度下降算法

来源:互联网 发布:f.lux for mac下载 编辑:程序博客网 时间:2024/04/27 16:22

参考http://www.cnblogs.com/richqian/p/4549590.html

梯度下降(Gradient Descent)算法只需要计算损失函数的一阶导数,计算代价小,适合训练数据量大的应用。
梯度下降法是沿着当前点的梯度方向搜索,找到下一个迭代点。
不同的梯度下降算法如batch,mini-batch,SGD,online等区别在于训练数据的选择上。
这里写图片描述

1.batch GD
每次迭代的梯度方向计算由所有训练样本共同投票决定。
这里写图片描述

batch GD算法是计算损失函数在整个训练集上的梯度方向,然后沿着该方向搜索下一个迭代点。batch的含义是训练样本中每一个样本都参与每一轮迭代。
2.mini-batch GD
batch GD需要所有样本参与每一轮迭代,计算复杂度比较高。为此产生mini-batch。
假设训练集有m个样本,每次取mini-batch(训练集的子集)b个样本。相当于训练集分为m/b个 mini-batch。每次迭代需要的样本数是一个mini-batch。
3.Stochastic GD(SGD)
sgd相当于mini-batch在b=1的时候的特例。也就是每次只有一个训练样本参与迭代。
4.online GD
online GD和sgd/mini-batch GD的区别在于,所有训练数据只用一次。这样的好处是可以实时最终模型的变化趋势。

0 0
原创粉丝点击