机器学习(11)--大数据的机器学习(随机梯度下降、mini-batch梯度、在线学习与并行计算)

吴恩达ML课程课后总结,以供复习、总结、温故知新,也欢迎诸位评论讨论分享,一起探讨一起进步:


上一篇:机器学习(10)--推荐系统https://blog.csdn.net/qq_36187544/article/details/88529608

下一篇:机器学习(12)--机器学习工程思想(划分流水线、分析学习曲线判断是否人工数据合成及上限分析)https://blog.csdn.net/qq_36187544/article/details/88604130


本篇主要对大数据时机器学习应当如何处理以及一些机器学习的思想总结

毋庸置疑,数据对算法的重要性甚至超乎算法本身。若数据集数量很大,不要直接使用全部的数据训练算法,先绘制学习曲线,观察是高方差还是高偏差,对高方差的数据进行大数据的训练(之前提过,如果是高偏差的模型进行增大数据也不会改善)

随机梯度下降: 之前使用的方法是批量(batch)梯度下降,需要对所有数据进行计算梯度项进行迭代,而随机梯度下降是每次对一个数据进行迭代,使训练模型拟合这个数据,然后下一个数据再下一个数据等,所以初始化把数据集顺序打乱很重要。之前网上看过别人的算法代码,很多都是用的这种方法而不是每次循环都遍历一次所有数据。当数据集数据很大,甚至执行一次就够了,就是遍历一次每个数据,总之,视数据集大小而定。下图左是之前的梯度下降法,下图右是随机梯度下降针对的对象。


mini-batch梯度下降:有时甚至比随机梯度下降还要快, mini-batch的大小b(最小堆的大小)一般在2到100之间,核心思想就是每次循环都使用b个数据进行循环。是介于随机梯度下降和普通梯度下降之间的方法。如果有一个好的向量化方法,b个数据更具有统一代表性。就是相当于10个数据为一组训练算法模型


使用随机或者mini-batch怎么判断收敛性判断与选择α: 绘制横坐标为迭代次数纵坐标为last 1000个(前1000个还是最开始1000固定的?没懂)样本例子的代价函数J,观察是否收敛。如果换用更大的数字如换成5000画一个点(下图中右上,换大间隔后平滑),则曲线更加平滑,噪声过大可增大样本均值数量。如果函数图像持平(下图中左下),则不知因为什么原因,可能是特征选择或者是数据等出现问题。如果发散(下图中右下),调小α即可。


注意:随机迭代会一直在最优解附近徘徊,因为每次都用了一部分数据。所以采取随迭代次数减小学习率α,但因此需要多花时间确定常数。下图的const1,const2


在线学习:通常而言是用一个固定的数据集训练算法模型,但如果有连续的数据流输入,比如有一个大型网站一直有人进入留下数据,就可以每次用这些数据进行更新算法模型。比如点击率预测学习问题,搜索几个词推荐几个商品,记录推荐商品是否被点击评估算法是否正确.就是利用不断的数据流不断训练算法模型

减少映射与数据并行(MapReduce):就是并行计算,因为在训练时会有大量的数据求和或者偏导求和等就可以并行计算。多核处理甚至多计算机处理,有的线性代数库直接是并行计算(numpy就是,所以推荐使用它进行计算,而非自己写矩阵乘法等)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值