根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。
1 大规模机器学习
随机梯度下降
以线性回归为例
解决问题:当(m)很大时,批量梯度下降的每一步都需要对所有微分求和,计算量很大
随机梯度下降只要考虑一个样本
- 将(m)个样本随机打乱
- 遍历所有的样本,只对当前样本进行梯度下降
收敛
在学习过程中,在使用第(i)个样本更新( heta)前,计算第(i)个样本的假设的表现。
每1000次迭代,就绘制出前1000个样本的cost函数的平均值。
一般情况下,我们保持(alpha)为一个常数。如果想要( heta)收敛,可以随着时间缓慢减小(alpha)的值。比如(alpha=frac{const1}{iterationNumber+const2})
Mini-batch梯度下降
使用b个样本大小,每一步对这(b)个微分求和,常用取值范围([2,100])
b就是mini-batch size。
在线学习
不会使用固定的数据集,而是获取一个用户样本,从那个样本中学习,然后丢弃它,继续处理下一个。如果应用有连续的数据流,该算法值得考虑。
优点:如果用户群变化/预测的事情在变化,那么在线学习算法也会慢慢调整。
MapReduce
许多涉及对训练集的求和的学习算法都可以用MapReduce表示。