大规模机器学习

数据集完整性检验

对于大规模的数据,如果直接将其用于机器学习,每一次迭代的计算代价都非常大,所以我们需要事先检验训练集的完整性

简单单说就是随机选取其中的部分数据,做出学习曲线,来帮助我们判断

如果是如左图所示的高方差情况,那说明增加训练集数据是对拟合模型有帮助的

如果如右图所示,两条曲线已经接近贴合在一起,那我们不认为增加数据集的数量对模型拟合有帮助

随机梯度下降算法

定义代价函数为对单一的训练例子的代价:

算法解释

先将训练集随机打乱,然后对训练集中的每个用例重复梯度下降的操作

通常情况下这个大循环,即遍历整个训练集的次数为1-10次

算法优劣

优点:相对于批量梯度下降来说,大大提升了运算速度

缺点:并不会直接走向全局全局最优解,而是以一种迂回曲折的路线靠近,而且最终的走向只是靠经最优值,而不会站在最优值那个电上,不过在应用层面来说也足够了

判断收敛

不再像批量梯度下降一样,每次的代价函数针对整个训练集

而是在每次训练下一个样例之前,先算出它的单个代价函数

然后一般是每1000个取一次均值做出图像

理想的情况如图一,红线是选择了更小的学习速率α

图二的红线是每5000次取一次均值,所以更加平滑

图三蓝线的毛刺太多,红线每5000次取均值更加平滑,也能看出下降趋势

图四曲线上升说明函数发散了,需要选择更小的学习速率α

关于α的选择

因为我们最终的值实在最优值附近徘徊,所以如果我们能做到,当参数逼近最优值时,降低学习速率,可能结果更逼近最优值

iterationNumber是已经训练过的样例数量

这样的缺点是还需要花时间调整两个参数的值

Mini-Batch 梯度下降

小批量梯度下降算法是介于批量梯度下降算法和随机梯度下降算法之间的算法,每计算常数次b训练实例,便更新一次参数θ

b的范围在2-100之间,一般取10

如果向量化做得够好的话,该算法的速度比批量梯度优化和随机梯度优化更快

在线学习机制

这个和随机梯度下降也非常的类似

对于不断进入的数据流,对单个数据进行学习,一旦对一个数据的学习完成了,我们便可以丢弃该数据,不需要再存储它了。

这种方式的好处在于,我们的算法可以很好的适应用户的倾向性,算法可以针对用户的当前行为不断地更新模型以适应该用户。

映射化简

Map Reduce

简单来说如果代价函数和偏导可以写成求和项的形式,那我们可以将数据集分成n份,分别发给不同的计算机,最后再在中心服务器上将其汇总,这样可以节约大量时间

另外,运用多核CPU的不同内核也可以在一台计算机上实现该操作

机器学习之大规模数据处理相关推荐

  1. 大规模数据处理Apache Spark开发

    大规模数据处理Apache Spark开发 Spark是用于大规模数据处理的统一分析引擎.它提供了Scala.Java.Python和R的高级api,以及一个支持用于数据分析的通用计算图的优化引擎.它 ...

  2. 大规模数据处理的演化历程(2003-2018)

    转自:https://www.iteblog.com/archives/2430.html 本文翻译自<Streaming System>最后一章<The Evolution of ...

  3. 3个步骤,4大平台,完成大规模数据处理

    本文由百度智能云大数据平台技术架构师--李莅在百度开发者沙龙线上分享的演讲内容整理而成.本次分享围绕云原生数据湖架构的价值展开,深度数据湖计算和统一元数据的技术架构.希望开发者能够通过本文对一站式大数 ...

  4. 那些优雅的数据结构(1) : BloomFilter——大规模数据处理利器

    BloomFilter--大规模数据处理利器 https://www.cnblogs.com/heaad/ Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通 ...

  5. 大规模数据处理的演变

    AI 前线导读:本文重点讨论了大数据系统发展的历史轨迹,行文轻松活泼,内容通俗易懂,是一篇茶余饭后用来作为大数据谈资的不严肃说明文.本文翻译自<Streaming System>最后一章& ...

  6. DataScience:深入探讨与分析机器学习中的数据处理之非线性变换—log对数变换、sigmoid/softmax变换

    DataScience:深入探讨与分析机器学习中的数据处理之非线性变换-log对数变换.sigmoid/softmax变换 目录 深入探讨与分析机器学习中的数据处理之非线性变换 log对数变换 sig ...

  7. DataScience:深入探讨与分析机器学习中的数据处理之线性变换—标准化standardization、归一化Normalization/比例化Scaling的区别与联系

    DataScience:深入探讨与分析机器学习中的数据处理之线性变换-标准化standardization.归一化Normalization/比例化Scaling的区别与联系 目录 深入探讨与分析机器 ...

  8. BloomFilter–大规模数据处理利器(转)

    BloomFilter–大规模数据处理利器 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求1 ...

  9. Serverless 在大规模数据处理的实践

    作者 | 西流  阿里云技术专家 <关注阿里巴巴云原生公众号,后台回复 606 即可下载相关 PPT> 前言 当您第一次接触 Serverless 的时候,有一个不那么明显的新使用方式:与 ...

最新文章

  1. 高速跟踪--High-Speed Tracking-by-Detection Without Using Image Information
  2. SAP 序列号里主批次与库存批次不同,会有什么后果
  3. C# 使用Awaiter
  4. 实例快速上手shell脚本
  5. mysql时间日期函数
  6. 小游戏开发 手机QQ 微信 浏览器 扫码 Debug 调试输出 查看日志
  7. 修改Spring Boot自定义图标
  8. 三下乡心得——勿忘农村
  9. JAVA毕业设计Web企业客户管理系统计算机源码+lw文档+系统+调试部署+数据库
  10. Win10“混合现实门户”图标更新:加入Fluent Design风格
  11. GBase 8c 迁移工具 DMT 简述
  12. 语音识别之语音特征提取一
  13. oracle如何在月份前面加0,怎么快速的给月份、日期前面补“0”
  14. Java实现旅游app_基于安卓Android平台的旅游系统APP的设计(Eclipse,MySQL)
  15. ubuntu22.04开机后黑屏的解决方法
  16. 20221218-19英语学习
  17. 百度Aistudio飞桨七日游体验python爬虫和分析数据
  18. Android Drawable 那些不为人知的高效用法
  19. 恶搞神器:蓝屏模拟器(C++)
  20. hid keyboard device异常,电脑键盘驱动出现问题,无法输入,利用虚拟键盘解决问题

热门文章

  1. 全国专业技术人员计算机D级,2019年全国专业技术人员计算机应用能力考试最新题库.doc...
  2. 控制算法学习 一、卡尔曼滤波(1)以小车为例
  3. 一文带你了解“AGC AVC ”
  4. Python推荐系统学习笔记(3)基于协同过滤的个性化推荐算法实战---ItemCF算法(下)
  5. 计算机英语第三版司爱侠pdf百度云,计算机专业英语教程(第3版)宋德福 司爱侠 练习参考答案...
  6. 阿里云和腾讯云,最终谁会成为中国的AWS?
  7. LeetCode刷题-独一无二的出现次数
  8. I.MX RT1170之FlexSPI(1):FlexSPI功能框图和特性
  9. jsfiddle 国内镜像
  10. 【第四次实验进度博客】C#可视化登陆界面的完善以及数据库信息的完善