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

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

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

映射约减

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

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

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

映射化简

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

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

映射化简
多核计算

你可能感兴趣的:(2019-01-29 映射约减 (map reduce))