Andrew Ng带我漫步机器学习 - 第十周 处理大数据

大数据梯度下降


机器学习近阶段的进步很大一部分来自数据集和算力的爆炸性增长,比如神经网络算法


面对大数据时,仍然使用常规的梯度下价格算法会带来巨大的计算量
Andrew Ng带我漫步机器学习 - 第十周 处理大数据
根据学习曲线,减少数据集时可行的。随着训练样本增多,误差值越来越平稳,不需要重复计算

随机梯度下降

随机梯度下降算法

随机梯度下降是最常用的处理大数据的梯度下降算法
Andrew Ng带我漫步机器学习 - 第十周 处理大数据
随机梯度下降公式的代价函数和梯度下降公式都没有样本总量m

  1. 随机洗乱数据
  2. 重复随机梯度下降算法,每次只使用一个数据对进行修正


    Andrew Ng带我漫步机器学习 - 第十周 处理大数据
  • 随机梯度下降算法极大缓解了算法压力
  • 随机梯度下降趋于收敛的路径时随机方向的,但是总体仍然倾向于收敛点(需要足够多的样本)

算法评估

Andrew Ng带我漫步机器学习 - 第十周 处理大数据

  • 批量梯度下降使用学习曲线
  • 随机梯度下降在每次更新θ\theta之前计算代价函数12(hθ(x(i))y(i))2\dfrac{1}{2}(h_{\theta}(x^{(i)})-y^{(i)})^2,然后绘制前1000个样本获得的代价函数曲线

Andrew Ng带我漫步机器学习 - 第十周 处理大数据

  • 左上为正常情况,减小学习率α\alpha可能获得更准确的曲线(红线部分)
  • 右上为增加绘制的样本数量的情况,收敛趋势更加明显了
  • 左下收敛趋势不明显,一可能为梯度下降失败,二可能为随机梯度下降的波动完全掩盖了下降趋势(红线部分)
  • 右下情况说明随机梯度下降算法失败了

随机梯度下降优化

Andrew Ng带我漫步机器学习 - 第十周 处理大数据

为了更好地使随机梯度下降算法收敛到收敛点附近,我们可以随着随机梯度下降的进行逐渐减少学习率α\alphaα=const1iterationNumber+const2\alpha=\dfrac{const1}{iterationNumber + const2}

不用也问题不大,因为又多了两个常量要处理

小批量梯度下降

Andrew Ng带我漫步机器学习 - 第十周 处理大数据

  • 批量梯度下降使用所有样本进行参数更新
  • 随机梯度下降使用单个样本进行参数更新
  • 小批量梯度下降更新使用的样本量处于两者之间,一般为2-100

Andrew Ng带我漫步机器学习 - 第十周 处理大数据
小批量梯度下降引入了新的参数b,为每一次运行梯度下降用到的样本量

在线学习


在线学习主要应用于网站,主要是数据的来源和处理方式不同。在线学习需要注意的地方是每次采用一个样本(用户)来优化算法,优化结束后弃置这个样本

分布式计算机系统和数据平行


Andrew Ng带我漫步机器学习 - 第十周 处理大数据
将训练集拆分为多个部分,分散到不同的机器进行计算,最后汇总到主机进行求和优化

Andrew Ng带我漫步机器学习 - 第十周 处理大数据

这个图大概的意思就是使用分布式计算机系统都是在累加的i出上的,求偏导项往往也是累加的,有利于在主机上运算


使用多核计算机可以起到类似于分布式计算机系统的任务,使用不同的计算核心完成分布式任务