大规模机器学习

学习地址

学习数据集

机器学习问题往往大量数据集训练效果比算法更有优势,但大量数据集带来的问题就是计算问题,如何快速计算梯度、误差等?

随机梯度下降

之前的线性回归模型、逻辑回归、神经网络等模型都是提出一个优化目标/函数,然后使用梯度下降寻找最优点。但普通梯度法并不适用大数据集(计算梯度需要对数据集求和),这种每次都要考虑所有数据集或者说一批数据集叫做批量梯度下降。而随机梯度下降则适用于大数据集。
例,计算一个梯度就要遍历整个数据集
批量梯度下降

随机梯度下降:

  • 不需要考虑所有样本,只需对单个样本进行考虑,单个样本的代价函数
  • 这样,在梯度下降时不需要遍历整个数据集更新参数θ ,而是一点一点更新
  • 最重要的一点是随机打乱数据集
    随机梯度下降
    随机梯度下降

Mini-Batch 梯度下降

  • 批量梯度下降每次迭代使用所有m个样本
  • 随机梯度下降每次迭代使用 1个样本
  • Mini-batch梯度下降每次迭代使用b个样本,b表示Mini-batch size
  • Mini-batch 是介于批量梯度下降和随机梯度下降之间的一种方法,有时候比随机梯度下降还要快

假设 b=10
Mini-batch梯度下降
完整计算方法:
Mini-batch梯度下降

随机梯度下降收敛

本节介绍关于随机梯度下降过程中,学习率α的选取?

检查随机梯度下降是否收敛?

  1. 计算代价函数
  2. 在学习过程中,在更新参数θ之前计算代价函数
  3. 画图检查收敛性
  4. 通过其它常数慢慢减小学习率
    学习率计算

减少映射与数据并行

根据代价函数计算性质,将大数据集划分成若干小的数据集分给其他计算机并行计算,中心处理器再进行收集计算。