机器学习(9)- 大规模机器学习

根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。

1 大规模机器学习

随机梯度下降

以线性回归为例

解决问题:当\(m\)很大时,批量梯度下降的每一步都需要对所有微分求和,计算量很大

随机梯度下降只要考虑一个样本

  1. \(m\)个样本随机打乱
  2. 遍历所有的样本,只对当前样本进行梯度下降

收敛

在学习过程中,在使用第\(i\)个样本更新\(\theta\)前,计算第\(i\)个样本的假设的表现。

每1000次迭代,就绘制出前1000个样本的cost函数的平均值。

一般情况下,我们保持\(\alpha\)为一个常数。如果想要\(\theta\)收敛,可以随着时间缓慢减小\(\alpha\)的值。比如\(\alpha=\frac{const1}{iterationNumber+const2}\)

Mini-batch梯度下降

使用b个样本大小,每一步对这\(b\)个微分求和,常用取值范围\([2,100]\)

b就是mini-batch size。

在线学习

不会使用固定的数据集,而是获取一个用户样本,从那个样本中学习,然后丢弃它,继续处理下一个。如果应用有连续的数据流,该算法值得考虑。

优点:如果用户群变化/预测的事情在变化,那么在线学习算法也会慢慢调整。

MapReduce

许多涉及对训练集的求和的学习算法都可以用MapReduce表示。

posted @ 2019-06-02 17:07  白芷呀  阅读(145)  评论(0编辑  收藏  举报