批量梯度下降BGD、随机梯度下降SGD、小批量随机梯度下降MSGD

问题提出

假设有这样一个数据样本
y=3x1+4x2

x1 x2 y
1 4 19
2 5 26
5 1 19
4 2 29

x1和x2是样本值,y是预测目标,我们需要以一条直线来拟合上面的数据,待拟合函数如下:

h(θ)=θ1x1+θ2x2

梯度下降法:

确定一个损失函数 xi,yii

J(θ)=12mi=1m[hθ(xi)yi]2

其中, J(θ) 是损失函数,m代表每次取多少样本进行训练,如果采用SGD进行训练,那每次随机取一组样本,m=1。
我们的目标是让损失函数 J(θ) 的值最小,根据梯度下降法,首先对 J(θ) 求偏导:
J(θ)θj=212mi=1m[hθ(xi)yi]xij

由于是要最小化损失函数,所以参数 θ 按其梯度方向来更新, α 为更新步长:

θ=θjαJ(θ)θj=θj+α1mi=1m(yihθ(xi))xij

随机梯度下降法

以上是批量梯度下降法的推导,下面介绍一下随机梯度下降法。
随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本j来求梯度。对应的更新公式是:
参数 θ 更新过程就是:

Loop{

for i=1 to m,{

θ=θjαJ(θ)θj=θj+α(yihθ(xi))xij

}

你可能感兴趣的:(神经网络,梯度下降算法)