关于什么是梯度下降,请看我之前发的一个博文:http://blog.csdn.net/lilyth_lilyth/article/details/8973972
梯度下降能帮助我们找到局部最优值,取得很小的损失,但是在数据量达到数十万时,迭代次数高,运算速度慢,十分不适合。这时候可以考虑使用随机梯度下降算法。
所谓随机梯度下降是 每次用 每个样本的损失函数(即样本数为1时的损失函数)对theta求得的偏导,来跟新theta值。
对梯度下降中的例子我们采取随机梯度下降来解:
第i个样本数据为Xi,对应单个损失函数对theta的偏导数为:
算法伪代码:
for i=1 to m{
theta_j=theta_j-gamma*grad_i;(for every j)
}