随机梯度下降和批量梯度下降的原理和区别

在默认读者已经有一定的数学基础和算法基础的前提下,废话少说,直接上干货。

1,Batch gradient descent

随机梯度下降和批量梯度下降的原理和区别_第1张图片

最外层的Repeat until convergence,就是可以设置收敛条件的。

下面一点代码来解释这个公式:

随机梯度下降和批量梯度下降的原理和区别_第2张图片

这里设置循环100000代,在这里默认程序跑到100000代就收敛了,并且预测的和实际的之要大于0.000000001。

看j循环:q[j]代表权重,从代码中可以看到,四个样本先计算差值的和之后再更新权重q[j]。这是批量梯度下降和随机梯度下降的不同之处。


2,Stochastic gradient descent

随机梯度下降是用每一个样本来更新权重参数一次。

接着是代码实现

随机梯度下降和批量梯度下降的原理和区别_第3张图片

现在是仔细分析上面两张图:

可以看到循环(i是从0到2),三个权重的一次更新是用了一个样本(j是从0到3).


区别:

批量梯度下降是权重参数的一次更新需要所有样本的差值之和。

随机梯度下降是利用一个样本的差值将所有的权重参数更新一次。所以在一个一个样本遍历过程中,权重参数可能在所有样本用一遍之前已经收敛。


最后来一个代码实现的地址分享,http://daweibalong.iteye.com/blog/1660169。

你可能感兴趣的:(学习类文章,数据挖掘,机器学习)