吴恩达机器学习笔记9-大规模机器学习

最强的机器学习方法:使用低偏差的算法和大量的数据

使用大量数据前先检查一下使用少量的数据行不行,也要通过训练集和验证集的cost图来判断是否需要继续增加数据

随机梯度下降

很多学习算法使用了梯度下降的算法。当m很大时,计算梯度就会变得很复杂,这种算法叫做批量梯度下降,每次考虑所有的样本。假如有3亿的数据,每次求梯度都会很慢。
随机梯度下降每次只考虑一个训练样本
1. 将所有数据打乱,将m个样本重新排列
2. 遍历每个样本,对所有参数进行梯度下降
实际上就是每次只学习一个样本

Mini-batch梯度下降

每次学一个batch,batch size一般在[10,100]范围内
Mini batch比随机梯度更快
额外的缺点是参数batch size,需要花时间来确定

SGD是否收敛

在训练第i个样本之前测试一下它的cost,最后把所有的cost画出来,观察是否在下降

在线学习

连续的数据流输入的时候

repeat forever
{
  Get (x,y) from user
  update parameters using (x,y)
}

它可以对用户的改变进行自动适配

Map Reduce

将数据划分为几个子集,分给每个计算机
假如有400个样本,在计算线性回归的梯度时每台计算机只计算梯度公式中求和的一部分,最后把4个部分和加起来求梯度

如果想要应用到其它算法上,应该看是否可以表示为训练样本的一个求和。

在同一台电脑的不同CPU上也可以实现并行

猜你喜欢

转载自blog.csdn.net/zic234gh9/article/details/81590405