机器学习10:大规模数据学习

大规模数据集学习

得数据者得天下,一般而言,在进行机器学习时,比较好的情况时拥有大量的数据以及高方差(过拟合)的模型。

在处理大量数据前,可以利用之前在另一篇博文中提到的学习曲线,查看模型是高偏差还是高方差,确定是高方差后再处理大量数据:
在这里插入图片描述

随机梯度下降

原梯度下降(批量(Batch)梯度下降)过程:
在这里插入图片描述
如上图,每更新一个参数,便需要循环m次

随机梯度下降过程:
在这里插入图片描述

如上图,用一个样本来更新所有模型参数θ\theta,即可使参数立刻获得更新,加快迭代速度,且所有样本都遍历更新的这个大循环过程,重复1至10次即可。
PS:注意上图,需要先把样本的顺序打乱再进行梯度下降,以免产生影响。

批量梯度下降与随机梯度下降在下降过程中的区别在于,批量梯度下降直接逼近最小值,而随机梯度下降则曲折接近最小值,最后在最小值附近徘徊

小批量梯度下降

小批量梯度下降介于批量梯度下降和随机梯度下降之间,其过程为:
在这里插入图片描述

如上图,用不断用b个样本更新参数,直至遍历所有样本为一个大循环。

随机梯度下降的收敛

对于批量梯度下降而言,在每次迭代后,都计算损失函数J值,并画出J的曲线图,看是否收敛

对于随机梯度下降而言,在每次更新模型参数后,计算的是cost函数,不过由于数据量太大,所以不一次性画出,而是:
每循环x(如1000)个样本,计算这1000次过程计算得到的cost函数值的平均值,再把这些平均值画成曲线图。

在这里插入图片描述
如果如上图,则需要减小α\alpha的值

随机梯度下降算法的cost函数是:
在这里插入图片描述

J值是:
在这里插入图片描述

一般而言,α\alpha值在梯度下降算法中为常数,但是由于随机梯度下降算法越下降,则波折越大,所以,为了减小波折,可能需要在迭代过程中减小α\alpha的值,如,令α=const1+const2\alpha=\frac{const1}{迭代次数+const2}(一般很少采用这种算法,因为又引入了两个额外值const1和const2,使得调整参数更为复杂)

在线学习

  1. 比如航运服务,用户输入的始发地和目的地,然后根据始发地和目的地向用户提供一些报价,用户有时候同意(选择)了该航运服务(y=1),有时候不同意(y=0)

根据用户的特性,包裹的目的地和始发地,以及报价,预测同意的概率p

利用逻辑回归进行学习,有点类似随机梯度下降,利用实时数据更新模型,每用完一个样本便扔掉:
在这里插入图片描述

这样,对于用户需求的变化,模型也能更为敏感,能跟随用户的需求而变化报价。

  1. 比如产品搜索,用户使用“安卓 手机 1080p 相机”,店里有100种手机,需要从这100个手机返回10个搜索结果。

构建这100种手机的样本:

样本的输入特征可以设置为:手机参数,搜索词与手机名称的匹配度,搜索词与手机描述的匹配度

样本输出特征为:当用户点击了该手机(y=1),用户没有点击(y=0)

然后学习是否点击该手机的模型,以便求得该手机被点击的概率p,然后展示被点击的概率最高的10部手机。

  1. 其他应用还包括:
    在这里插入图片描述

映射约减

找到可以分别同时进行的计算的参数,并分配到不同的机器(或利用多核芯片)运行,以空间换时间,最后再将结果回馈到中央计算机:
在这里插入图片描述

在这里插入图片描述

发布了28 篇原创文章 · 获赞 9 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览