机器学习(二十三)- Large Scale Machine Learning
来源:互联网 发布:淘宝男士羽绒服加厚 编辑:程序博客网 时间:2024/05/17 22:52
Gradient Descent with Large Datasets
我们之前也有提到过,对于机器学习任务来说,有时候数据量的大小会很大程度上决定我们模型的好坏。这里需要提及的是,假设我们现在有1亿的数据量,为了节约时间,我们最好先使用其中很少的数据(如1000条)进行模型检测,画出learning curve,来判断我们模型是否存在high bias的问题。如果我们的模型呈现出左下图,那么说明增大数据量是有意义的。
Batch Gradient Descent
批量梯度下降就是我们之前所有运用梯度下降的时候所运用的梯度下降算法,所谓批量就是我们每次梯度更新都要遍历我们训练集的所有数据,然后选出一个最优的梯度方向,这样就能保证我们每次的参数更新都是朝着一个局部最优解去的。但是当数据量增大,批量梯度下降算法将会非常缓慢,想象一下我有300,000,000的数据,每更新一小步就要遍历300,000,000。显然这就太耗时了。于是引入下面新的梯度下降算法。
Stochastic Gradient Descent
随机梯度下降随着数据量的增大将大大快于批量梯度下降算法。对于随机梯度下降算法,首先我们需要随机shuffle我们的训练集,保证相邻训练数据的非相关性和随机性。然后再进行梯度下降,所谓随机就是每次参数更新我们只使用一个数据,好了,这下你也知道它为什么快了,批量梯度花费300,000,000次计算走了一小步,而随机梯度已经走了300,000,000步了(理想情况),虽然每一次梯度下降的方向我们是没法保证朝着最优解去的,但是随着次数的增大,它会缓慢地向最优解移动,并最终在最优解附近徘徊(虽然它不会像批量梯度一样严格收敛于一点,但是最终在最优解附近徘徊已经非常接近最优解了,是可以达到实际要求的),如下图右。最终综合起来比较,在面临大数据上,随机梯度下降算法是要优于批量梯度的。最后提一点,随机梯度下降算法其实是个两层的循环,最外层的循环一般选取1-10。
Mini-Batch Gradient Descent
接下来,我们再讲解一种梯度下降变体,在实际应用中,它可能比随机梯度下降还要快速,也就是mini-batch梯度下降,其实它的核心思想就是将批量梯度和随机梯度结合起来,批量梯度每次参数更新使用所有训练集的数据,随机梯度每次使用一个数据,那么批量梯度自然是折中,每次使用
Stochastic Gradient Descent Convergence
对于梯度下降来说,我们是需要验证我们的算法是否,那么验证的方法就是画出目标函数对于迭代次数的折线图,如果一路下降达到收敛说明算法是正确的。那么对于批量下降来说,如果数据量巨大,每迭代完一次就需要计算一次目标函数,这个计算量是很大的。而对于随机梯度来说,在每次参数更新之前,我们计算接下来要使用的样本的代价函数值,然后每1000次迭代,我们提取这1000次的代价函数值求平均作为我们的参考依据。
对于随机梯度下降算法来说,代价函数对于迭代次数的折线图会呈现锯齿状,所取平均的次数越多,曲线会越平滑,我们需要看的是整体趋势,整体呈现下降趋势且慢慢收敛说明算法生效。
最后讲解一下对于随机梯度下降来说,学习率的选取。由于随机梯度下降最终会收敛在最优解的附近,并在最优解附近反复徘徊,但是不会停止于最优解,为了解决这个问题,我们可以随着迭代次数调小我们的学习率,这样最终它就会停止于最优解的位置。
- 机器学习(二十三)- Large Scale Machine Learning
- 大规模机器学习(Large Scale Machine Learning)
- Stanford 机器学习笔记 Week10 Large Scale Machine Learning
- Coursera机器学习-第十周-Large Scale Machine Learning
- Ng机器学习 Week10 Large Scale Machine Learning
- Andrew NG 机器学习 笔记-week10-大规模机器学习(Large Scale Machine Learning)
- Machine Learning - XVII. Large Scale Machine Learning大规模机器学习 (Week 10)
- Large Scale Machine Learning
- 学习笔记-Large scale machine learning
- Large Scale Machine Learning--An Engineering Perspective--1. 大规模机器学习平台的构成
- 15-Large Scale Machine Learning
- 【学习笔记】【Coursera】【MachineLearning】Large scale machine learning
- [Shogun] A large scale machine learning toolbox
- Large scale machine learning in Python
- Stanford Machine Learning: (6).Large Scale Machine Learning
- Andrew Ng Machine Learning 专题【Large Scale Machine Learning】
- Machine Learning week 10 quiz: Large Scale Machine Learning
- Coursera Machine Learning 第十周 quiz Large Scale Machine Learning
- 欢迎使用CSDN-markdown编辑器
- 2017 Multi-University Training Contest
- poj 1984 Navigation Nightmare
- 剑指offer 32---从1到n整数中1出现的次数
- etcd raft如何实现成员变更
- 机器学习(二十三)- Large Scale Machine Learning
- 矩表 – 现代数据分析中必不可少的报表工具
- JavaScript闭包与Groovy闭包区别
- sigaction介绍
- Netty系列之Netty百万级推送服务设计要点
- jmeter 参数化(函数助手对话框 _CVSRead 函数)遇到的问题和详解
- 求100以内的素数,全部打印出来
- [算法与数据结构]
- KPI、OKR与IDP