2019-01-29 映射约减 (map reduce)

大规模机器学习的方法称为映射约减 (map reduce) 方法,相比于随机梯度下降方法,映射化简方法能够处理更大规模的问题。

映射化简的基本思想:将训练集划分成几个不同的子集,多台计算机并行的处理我的训练数据,每台计算机将参与处理这的结果记成临时变量。当这些计算机全都完成了各自的工作,临时变量收集到一起送到一个中心计算服务器。这台服务器会将这些临时变量合并起来( j等于0的情况我们需要单独处理 )负责对结果进行汇总。

映射约减

特别的,如果没有网络延时,也不考虑通过网络来回传输数据所消耗的时间,那么你可能可以得到4倍的加速。当然 在实际工作中,因为网络延时,数据汇总额外消耗时间以及其他的一些因素,你能得到的加速总是略小于4倍的。

如果你打算将映射化简技术用于加速某个机器学习算法,训练样本的求和可以考虑使用映射化简技术来将算法并行化。某种高级优化算法比如说LBFGS算法或者共轭梯度算法,逻辑回归也适用。

映射化简技术在多台计算机上实现并行计算,也许是一个计算机集群,也许是一个数据中心中的多台计算机,有时即使我们只有一台多核计算机。

映射化简

在单台计算机上使用映射化简技术的一个优势在于不需要担心网络延时问题,因为所有的通讯所有的来回数据传输都发生在一台计算机上,相比于使用数据中心的多台计算机,网络延时的影响小了许多。关于在一台多核计算机上的并行运算取决于你的编程实现细节:1.使用了某个线性代数函数库会自动利用多个核并行地完成线性代数运算2. 并不是每个函数库都会自动并行,但如果你用了这样一个函数库,并且你有一个矢量化得很好的算法实现,那么有时你只需要按照标准的矢量化方式实现机器学习算法,而不用管多核并行的问题,你的线性代数函数库会自动帮助你完成多核并行的工作。因此这时你不需要使用映射化简技术

优秀的开源映射化简实现:Hadoop开源系统

映射化简
多核计算
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,039评论 2 89
  • 1. 如何理解“分布式”? 经常听到”分布式系统“,”分布式计算“,”分布式算法“。分布式的具体含义是什么?狭义的...
    java后端学习阅读 6,887评论 0 2
  • http://geek.csdn.net/news/detail/210469http://www.36dsj.c...
    Albert陈凯阅读 5,364评论 1 21
  • 调休,周六上班,有点冷清,在网上随意转转,看到个帖子,大意是问三十岁大概有多少存款,看完跟帖不免有些心虚。我拿出我...
    简茉阅读 296评论 0 1
  • 冬天刚刚过去,似未走远 看,它的足迹还在星空里 月亮斟满美酒 醉倒了冬天,于是春天来了 我在如此慵懒的季节遇到你 ...
    一言尔阅读 166评论 0 0