吴恩达《机器学习》第十七章:大规模机器学习

十七、大规模机器学习

17.1 大型数据集的学习

大型数据集的学习带来的是计算问题;
本章学习如何处理上亿级别的大型数据集;
在这里插入图片描述

17.2 随机梯度下降法

本节问题

  • 随机梯度对比于普通梯度下降法,改进在哪?

批量梯度下降:
在这里插入图片描述
       ~~~~~~       默认的是(批量)梯度下降法,Batch Gradient Descent:即每次都要考虑一批(所有)的训练样本这才完成迭代的一步,所以,它的计算复杂度太高;

随机梯度下降:
在这里插入图片描述
代价函数为当前样本上的表现;
对每个样本都遍历,遍历时调整θ使图像在该样本处拟合得好一点,cost代价低一点;
每次只关注一个训练样本 ;遍历过程中,虽然很曲折,但也是朝着全局最优前进(偶尔会有例外,因为是随机的 ),它可能在最小值周围徘徊;

也可能不止一次遍历所有样本,但次数不会超过10次;

17.3 随机梯度下降收敛

本节问题

  • 随机梯度下降过程中如何调整参数:学习率α等等,确保正确收敛;
    在这里插入图片描述
    先更新θ前,我们必然会得到当前样本点的cost值;
    用若干样本的cost平均值来判断是否收敛;

在这里插入图片描述
在这里插入图片描述
随着算法进行,迭代次数(遍历的样本数增加),iterationNumber增加,α越来越小;
小的α能让算法更接近最小值;

17.4 小批量梯度下降

Mini-batch,小型的梯度下降;
假设一次处理的小批量为10个样本:
在这里插入图片描述
夹在批量梯度下降和随机梯度下降中间,下降路线曲折度没有随机梯度的曲折,计算速度也比批量梯度的快(有时候比随机梯度下降还要好);
在这里插入图片描述
缺点就是:要根据小批量样本数的个数B,来确定组数;

17.5 在线学习

从用户身上的数据流上学习;
在这里插入图片描述
如果你有源源不断地数据(大量用户涌入网站),那么你就不需要多次使用一个数据了,也没必要标号了,用完就丢;
对不同的用户群体分配不同的方案,杀熟;
在这里插入图片描述
比如我有100台手机,当用户搜索1080P时,我要选择性的根据用户群体的不同,列出10台最适合该用户的手机,以最大化可能性促使他购买;;以10步梯度下降法来更新参数;

17.6 映射化简和数据并行

本节问题

  • 了解MapReduce的原理;
  • 为什么MapReduce过时了;
    在这里插入图片描述
    比如400个样本的批量梯度下降法,分割成4组,每组100样本,由四台机器并行完成,然后汇总到中心服务器,速度提升四倍(由于网络通信等外部因素,不会刚好提升四倍);

把MapReduce看成一台机器的多核并行,而不是多台机器并行,这样就不用担心网络延迟了,通信传输也需要时间;

mapreduce为什么被淘汰了?

原文地址:https://www.cnblogs.com/Luweir/p/14147208.html