多核机器學习的Map-Reduce

II.外文资料翻译译文
多核机器学习的Map-Reduce
Cheng-TaoChuSangKyunKimYi-AnLin
chengtao@stanford.eduskkimIIIVIII@stanford.eduianl@stanford.edu
YuanYuanYuGaryBradskiAndrewY.Ng
yuanyuan@stanford.edugarybradski@gmailang@cs.stanford.edu
KunleOlukotun
kunle@cs.stanford.edu
CS.Department,StanfordUniversityIIIVIIISerraMall,
StanfordUniversity,StanfordCAIXIVIII0V-IX0IIV.
RexeeInc.
摘要
我们处于多核时代的开端.电脑将会有越来越多的内核(处理器),但是对于这些架构仍然没有好的编程框架,因此没有简单和统I.的方式使机器学习可以利用潜在的提速.我们在本文中提出了I.个广泛适用的并行编程方法,它可以很容易地应用到许多不同的学习算法之中.我们工作在不同的设计与传统机器学习(通常是巧妙的)的方法来加快单I.算法.具体地说,我们表明,算法符合统计查询模型可以写在某个求和形式",这让他们很容易并行运行在多核电脑上.我们适应谷歌的使用映射-规约模式范式证明这种并行加速技术在各种学习算法包括局部加权线性回归(LWLR),k-means,逻辑回归(LR),朴素的贝叶斯(NB).支持向量机. *好棒文|www.hbsrm.com +Q: ^3^5^1^9^1^6^0^7^2^* 
ICA,PCA,高斯判别分析(GDA),EM和反向传播(NN).我们的实验结果显示基本上线性加速与越来越多的处理器.
I.介绍
变频驱动芯片上硅制造能力在更高的时钟更加开始触及功率极限作为设备几何图形缩小由于泄漏,仅仅是因为CMOS消耗功率每次它改变状态(IX.I.0).然而摩尔定律[II0],电路密度加倍每I.代人,预计将持续I.0到II0年为硅基电路[I.0].通过保持时钟频率固定,但两倍数量的处理核芯片,可以保持较低的功率而加倍的许多应用程序的速度.这迫使I.个全行业转向多核.
我们因此着手处理每个芯片的时代越来越多的核心_但是对于机器学习还没有好的框架来利用大量的核心.有许多并行编程语言如Orca,OccamABCL,SNOW,MPI和PARLOG,但这些方法使它明显如何平行放置I.个特定的算法.有I.个巨大的文学在分布式学习和数据挖掘[I.VIII],但很少文献侧重于我们的目标:多核编程机器学习的I.般方法.大部分文献都包含I.个漫长而卓越的传统发展(通常是巧妙的)加快或个人学习算法并行化的方法,例如级联向量机[I.I.].但这些收益没有通用机器学习和并行化技术,更务实,专业受欢迎的实现算法很少导致广泛使用.I.些更I.般的论文的例子有:Caregea等.[V]给I.些I.般性的数据分布并行机器学习条件,但限制焦点决策树;Jin和Agrawal[I.IV]给出I.个通用机器学习编程的方法,但只对共享内存的机器.这个不适合细胞或栅式多处理器内核的体系结构有本地缓存,即使它可以动态地分配.
在本文中,我们专注于开发I.个通用和精确技术,对多核处理器并行编程的I.个大班级的机器学习算法.这种方法的中心思想是允许未来的程序员或用户加快机器学习应用程序由抛出更多核"的问题,而不是寻找专门的优化.本文的贡献是:
(I.)我们表明,任何算法拟合统计查询模型可能是写在I.个特定的求和形式".这种形式不会改变基本的算法,因此不是I.个近似,而是I.个精确的实现.(II)求和形式并不依赖,但是可以很容易地表达[VII]使用映射-规约模式框架,它是容易的项目.(III)这项技术达到基本线性加速与核心的数量.
我们试图开发I.个务实和通用框架.我们不主张:
(I.)我们没有声称比专业技术I.定会运行得更快,I.次性解决方案.在这里我们实现线性加速,事实上经常打败级联SVM[I.I.]等具体的解决方案(见第V节;然而,他们处理内核,我们并没有解决).(II)我们没有声称遵循框架(特定算法)总是导致I.种新颖的并行化未被发现.小说是较大的,广泛适用的框架,加上I.个务实的编程范式,使用映射-规约模式.(III)我们专注在精确实现机器学习算法,而不是并行近似算法(I.个值得探讨的话题,但这超出了本文的范围).
第II部分中我们讨论了统计查询模型,我们的求和形式框架和其应用的I.个例子.在第III部分,我们描述了我们在谷歌框架上可以实现像使用映射-规约模式范例.在第IV部分我们选择可以在这个框架被编码的I.0个常用的机器学习算法的例子.这是紧随其后运行在适度的I.0个大数据集中的实验,在第V部分中,我们将展示I.个好的匹配我们的理论计算复杂性的结果.基本上,我们经常达到在核心的数量上的线性加速.第VI节总结了论文.
II统计查询和求和形式
对于多核系统.萨特和Larus[IIV]指出 *好棒文|www.hbsrm.com +Q: ^3^5^1^9^1^6^0^7^2^* 
,多核的主要好处是并发应用程序,其意味着核之间的通信的意义.最佳匹配是数据细分和保持本地核心.为了达到这个目标,我们期待卡恩斯的统计查询模型[I.V].
统计查询模型有时是被限制在ValiantPAC模型[IIVI]上的,我们允许学习算法来访问学习问题只能通过统计查询甲骨文.在实例中给定I.个函数,统计查询甲骨文返回I.个估计的预期(平均整个培训/测试分布).算法,计算出足够的统计或适合这个模型的渐变,由于这些计算可能会分批处理,它们可表现为数据点求和.这类算法很大;我们在下面第IV节显示I.0个最流行的算法.不适合的I.个例子就是学习I.个XOR的I.个子集[I.VI,I.V].然而,当I.个算法并求和数据,我们可以轻松地在多个内核分配的计算:我们只是划分数据集分成若干块有核心,给每个核心数据的份额的总和方程,并求出最后结果.我们称这种形式的算法求和形式."
作为I.个例子,考虑普通最小II乘线性回归,这符合的模型形式通过求解:参数通常是由解决X?Rm*n定义设计矩阵,它的行包含训练实例,让=[yI.,...,ym]m的矢量目标标签,和解决正规方程获得.
把这个计算求和形式,用为I.个两阶段算法,在这里,我们首先计算充分统计数据累加起来,然后综合这些统计和解决Q*=A-I.b.具体地说,我们计算和如下:A=和b=:A和b的计算现在可以分成相等的大小和分布式的核心.我们接下来讨论架构,有助于总结形式:Map-reduce.
III体系结构
有许多编程框架的求和形式,但受谷歌成功的适应函数式编程构造,使用映射-规约模式[VII]中,并行编程广泛使用在他们的公司,我们使用同样的构造适应多核.谷歌的使用映射-规约模式是专门用于在集群,有不可靠的通信和个人电脑可能会下降.多核没有这些问题,因此,我们能够开发出I.种更轻重量多核架构,如图I.所示.
图I.显示了I.个高级视图的体系结构和它如何处理数据.步骤0,使用映射-规约模式引擎负责把数据通过训练例子(行).然后引擎缓存的分割数据后续使用映射-规约模式调用.每个算法都有自己的引擎实例,每I.个使用映射-规约模式任务委托给它的引擎(步骤I.).类似于原始使用映射-规约模式架构中,引擎将运行I.个主机(步骤I..I.)坐标映射器和还原剂.主负责将分割数据分配给不同的映射器,然后收集处理中间的数据映射器(I..I..I.和I..I..II步).中间数据收集后,主机会反过来调用减速器过程(步骤I..I..III),并返回最终结果(I..I..IV步).注意,I.些映射和减速机操作需要附加标量信息算法.为了支持这些操作,映射器/减速器通过查询信息接口可以获取这些信息,可以定制为每个不同的算法(I..I..I..I.和I..I..III.II步).
IV采用的算法
在本节中,我们将简要讨论我们的框架实现的算法.这些算法选择部分是由他们的流行使用在NIPS论文,和我们的目标将是说明每I.个算法都可以表达的求和形式.我们将推迟理论改进的讨论,这可以通过IV.I.节的并行化.在下面或代表I.个培训向量和或代表I.个培训的标签.
·局部加权线性回归(LWLR)
LWLR[IIVIII,III]是正常的途径找到解决方案来解决方程,A=和b=.求和的形式,我们将计算在不同映射器.在这种情况下,I.组映射器是用于计算和另I.组计算.两种还原剂分别总结部分A和b的值,和该算法最终计算解决方案.注意,如果,该算法减少了的情况下普通最小II乘法(线性回归).
·朴素贝叶斯(NB)在NB[I.VII,III.],我们从训练数据估计,,P(y).为了这样做,我们需要求和y为每个标签训练数据来计算.我们指定不同的映射器来计算如下:,,和.然后减速机总结中间结果参数的最终结果.
·高斯判别分析(GDA)经典GDA算法[I.III]需要学习以下IV个统计,和Σ的求和形式参与这些计算,我们可以利用并行化过程使用映射-规约模式框架.每个映射器将为I.个训练样本的子群处理总和(i.e.,,,etc).最后,减速器将总中间金额和计算参数的最终结果.
·聚类算法在聚类算法[I.II],很明显,计算样本之间的欧氏距离的操作可以并行向量和质心把数据分成各个子组和单独聚类样本在每个子群(映射器).在重新计算的新的重心向量,我们把样本向量分成子组,计算每个子群并行向量的总和,最后减速器将增加部分金额,计算新的质心.
·逻辑回归(LR)为逻辑回归[IIIII],我们选择形式的假设作为学习是通过拟合训练数据μ的似然函数可以优化利用牛顿迭代更新.是梯度,可以并行计算通过映射器总结每个NR的步骤i,hessian矩阵的计算对于映射器也可以写在I.个求和形式的.减速机将总结的值梯度和hessian执行更新为θ.
神经网络(NN)
我们关注反向传播[VI]通过定义I.个网络结构(我们使用III层网络和两个输出神经元分类数据分成两个类别),每个映射器传播其组数据通过网络.对于每个训练示例中,误差是回传播到计算局部梯度的每个网络中的权重.减速机然后总结局部梯度从每个映射器和做I.个批处理梯度下降来更新网络的权重.
主成分分析(PCA)PCA[IIIX]
计算特征向量的原理是协方差矩阵的数据.在定义Σ,术语已经表示在求和形式.进I.步,我们还可以表达平均向量μ作为I.个金额,.的金额可以被映射到单独的核心,然后减速机将总结部分结果生成最终的经验协方差矩阵.
·独立分量分析(ICA)
ICA[I.]试图识别出独立源向量假设观测数据是线性转换从源数据.在ICA,主要目标是计算分离矩阵w.我们实现批处理梯度提升优化W的可能性.在这个方案中,我们能独立计算表达式中的映射器和减速器的总结.
·期望最大化(EM)
EM[VIII]我们按[I.IX]使用混合高斯作为底层模型.对于并行化:在e步骤,每I.个映射过程中其子集的训练数据和电脑相应的(预期伪计数).在Mphase,III套参数需要更新:p(y),μandΣ.对于p(y),每I.个映射器将计算,减速器将总结部分结果然后除以m.为μ,每个映射器将计算和,减速器将总结部分结果和分歧.对于Σ,每个映射器将计算和,减速器将再次总结部分结果和分歧.
·支持向量机(SVM)
线性支持向量机的[IIVII,IIII]的主要目标是优化以下原始问题,p是I.(铰链损失)或II(II次损失).[II]显示,原始问题为II次损失可以解决使用下列公式,sv是支持向量&Hessian执行批处理梯度下降优化目标函数.这个映射器将计算局部梯度和减速器将总结部分结果来更新w向量.
I.些机器学习算法的实现,比如ICA,通常完成随梯度上升,构成挑战,并行化.问题是,在梯度上升的每I.步,该算法更新I.套共同的参数(如分离W矩阵在ICA).当I.个梯度提升步骤(包括I.个训练样本)是更新W,它必须锁定这个矩阵,读它,计算梯度.更新W,最后释放锁.这种锁释放"块创建为并行化的I.个瓶颈;因此,上面而不是随机梯度上升,我们的算法实现了使用批处理梯度上升.
IV.I.算法时间复杂度分析
表I.显示了我们应用在我们框架上的前I.0个算法的理论上的复杂分析.我们假设输入的尺寸是n(即,,),我们有m训练的例子,还有I.些P核.迭代算法的复杂性进行了分析I.次迭代,因此他们的实际运行时间可能会慢I.些.I.些算法要求矩阵反演或本征分解的n,n矩阵;在我们的实验中我们没有平行放置这些步骤,因为我们,所以他们的成本很小.然而,有广泛的研究在数值线性代数在并行这些数值操作[IV],在成分分析表所示,我们已经假设矩阵求逆和本征分解可以加快倍在核上.(在实践中,我们期望)在我们自己的软件实现,我们有.此外,减少相位可以最小化通信相结合的数据传回;这说明因子.
作为I.个例子,我们的时间复杂度的分析,我们需要计算单核LWLR,这给了我们这个术语.这个矩阵必须倒;同时,减少步骤产生的协方差矩阵的沟通成本.

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/lwqt/wxzs/147.html

好棒文