十七、大规模机器学习和随机梯度下降(SGD)

1、随机梯度下降-Stochastic Gradient Descent

\qquad 随机梯度下降是相对于批量梯度下降(batch gradient descent)提出的,目的在训练集数据非常大时,加快求解梯度的速度。不同于梯度下降中,每次计算梯度的时候需要计算所有训练数据的梯度,SGD每次只计算一个样本的梯度,使用计算出来的梯度对参数θ \thetaθ进行更新,SGD的流程如下所示:
在这里插入图片描述
\qquad外层循环的次数通常选取1-10次。

2、小批量梯度下降 - Mini-batch Gradient descent

\qquad 小批量梯度下降介于批梯度下降和随机梯度下降之间,批梯度下降使用全部的训练样本来计算梯度;随机梯度下降每次只使用一个训练样本来计算梯度;而小批量梯度下降每次使用b ∈ [ 2 , 100 ] b \in [2,100]b[2,100](mini batch size)个训练样本来计算梯度。小批量梯度下降的流程如下所示:
在这里插入图片描述

3、随机梯度下降算法的收敛性

\qquad 在使用批梯度下降算法时,判断收敛的方法是通过绘制成本函数J θ J_{\theta}Jθ关于迭代次数的图像来观察成本是否随着迭代次数增加而减小;而在SGD中,通常采用的方法是:每隔1000次迭代,绘制前1000次迭代中单个样本的成本c o s t ( θ , ( x i , y i ) ) cost(\theta,(x_i,y_i))cost(θ,(xi,yi)),从而观察成本是否随着迭代次数增大而减小。
在这里插入图片描述
\qquad在SGD中,学习率α \alphaα通常是保持不变的,但是如果我们想得到更好的收敛效果,可以让α \alphaα随着迭代次数的增加而逐渐减小,α = c o n s t 1 i t e r a t i o n N u m + c o n s t 2 \alpha = \frac{const1}{iterationNum+const2}α=iterationNum+const2const1,但是这种方法需要仔细校准参数c o n s t 1 const1const1c o n s t 2 const2const2的值。

4、在线学习-Online Learning

\qquad 在线学习处理的是连续输入的数据流,同时需要一个模型从这些连续输入的数据中进行学习。下面是一个在线学习的情景:某个提供运输服务的网站,会不断有顾客点进网站,规定起终点,然后通过网站的报价来购买运输服务;当得到网站的报价之后,某些顾客选择使用网站提供的运输服务(y=1),有些顾客选择不使用网站提供的运输服务(y=0)。令特征x xx记录顾客的特征,如规定的起终点,询问的报价等,在线学习模型需要优化网站的报价价格,p ( y = 1 ∣ x ; θ ) p(y=1|x;\theta)p(y=1x;θ)。运输网站的在线学习的模型如下所示:
在这里插入图片描述

5、映射约减-map reduce

\qquad 映射约减的思想是将本来一台计算机需要完成的任务分给几台计算机进行并行计算,从而提高计算效率。
在这里插入图片描述

THE END


版权声明:本文为weixin_43160744原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。