继续是机器学习课程的笔记,本节内容主要是介绍大规模机器学习的内容。
大型数据集的学习
对于一个过拟合的模型,增加数据集的规模可以帮助避免过拟合,并获得一个更好的结果。
但是对于一个大规模的数据,比如有100万个数据量的训练集,其计算量是非常大的。以线性回归模型为例,每一次梯度下降迭代,我们都需要计算训练集的误差的平方和,对于训练集有上百万的数据量,如果学习算法需要有20次迭代,这就已经是一个非常大的计算代价。
因此,首先需要确定是否需要有这么大规模的训练集,也许只用1000个训练集就能获得比较好的结果,这一步可以通过绘制学习曲线来帮助判断,如下所示:
随机梯度下降法(Stochastic Gradient Descent)
如果一定需要一个大规模的训练集,我们可以尝试使用随机梯度下降法来代替批量梯度下降法。
批量梯度下降算法在每次迭代的时候需要计算整个训练集的和,其公式如下:
θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))x(i)j
如上公式可以知道,如果训练集的数量m非常大,那么计算量就非常大。
而在随机梯度下降法中,我们定义代价函数为一个单一训练实例的代价:
cost(θ,(x(i),y(i)))=