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

来源:互联网 发布:js字符split 编辑:程序博客网 时间:2024/06/01 07:41

问题提出

假设有这样一个数据样本
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

}

阅读全文
0 0