分享

分布式云端机器学习

问题导读:

1、如何选择正确的机器学习平台?
2、机器学习的查询统计模型是什么?
3、机器学习的瓶颈是什么、以及如何突破瓶颈?




机器学习.png


      来自不同行业的企业们正在积累着海量宝贵的数据资源,如用户登陆行为、系统访问、使用习惯等不一而足。这些企业从包括微软云在内 的云端服务平台受益无穷—不仅能够掌握这些数据,为商业决策积累经验,更能将它们运用于基于云端的预测分析中。配备了先进的Azure 机器学习工具,企业就能获取可行性较强、有助于业务不断拓展的市场洞察- 这种洞察力将是决定企业能否抢占竞争优势的关键。

     获取和管理“大数据”在许多应用场景中日渐成为普遍需求。随着数据量爆炸式增长,分布式地将数据存储起来显得愈发必要。在许多场 景中,数据的采集过程本身就是去中心化的,这就要求数据存储也需去中心化,即分布式。由此,针对分布式数据,采取分布式计算的机 器学习解决方案是非常必要的。此类案例包括:运用逻辑回归预估在线广告点击率、深度学习大型图像及语音训练数据集、以及检测异常 登陆行为等。

因此在各种机器学习解决方案中,有效的集群分布式学习,成为本文作者们从属的微软云端及信息服务实验室(CISL,读作“撕肉”)的重点关注领域。下文中,我们将进一步探究这一命题,讨论几个近期研究中涉及的问题。尽管有些太过技术性的细节无可回避,我们 仍尽力尝试简单扼要地阐述核心思想。如果您对于大数据的分布式机器学习感兴趣,相信能从本文中受益。我们期待您的评论与反馈。

1,选择正确的平台     
     在近期文章中,John Langford描述了基于Vowpal Wabbit (VW)系统的快速学习,主要涉及了兆级数据集的分布式学习。由于许多机器学习 算法具有迭代性质,选取一个正确的分布式框架显得尤为重要。

     Map Reduce及旗下开源工具Hadoop,是广受欢迎的分布式数据处理平台。但是,它们对于具有迭代性质的机器学习算法并非完美,因为每 次迭代都会产生大量冗余数据 - 如任务分配、数据转换、以及数据检查。

     较好的替代方案是加入用于协调的配件,如能与Hadoop协同工作的All Reduce;或配备更先进的分布式框架,如能支持高效迭代计算的 REEF。

2,统计查询模型(SQM)
     当前最先进的分布式机器学习算法,包括VW系统中的算法,均建立在统计查询模型(SQM)上。在该模型中,学习过程基于对不同数据点的 计算以及如何采集全部信息点的计算结果。例如,对于线性机器学习问题,输出结果有赖于每个特征向量的点积以及向量自身权重。这就 涉及到一些重要的预测模型,如逻辑回归、状态变量模型(SVMs)、以及最小二乘拟合。在本例中,学习梯度的总目标基于与每个独立数 据点相关的梯度总量。每个节点形成了与该点代表的学习数据一致的梯度,All Reduce即是用于汇集总梯度。

3,通信瓶颈
     在进行大倍率计算时,分布式计算经常面临一些决定性的通信瓶颈。例如,常见通信速度慢于计算速度10倍至50倍。
设单次迭代的通信耗时与计算耗时分别为Tcomm与Tcomp。则一个迭代的机器学习算法总耗时可表示为:
迭代总耗时=(Tcomm+Tcomp)*迭代次数。

     随着节点增加,Tcomp呈显著的线性递减或持平趋势(在最好的All Reduce工具包中)。机器学习解决方案涉及到的大数据,在每次迭代时 ,通常包含大量需要在群组计算节点之间实时更新与通信的权重参数(d)。并且在一些其他步骤中,如SQM中的梯度计算,也要求此类O通 信。甚至,Map Reduce中的每次迭代都要求一项单独的Map Reduce任务。因此,权重参数量越大,Tcomm越长。SQM并未对这种低效率的通 信给予重视。

4,突破通信瓶颈
     我们最近的研究即是致力于解决上述问题。在观察中我们发现在Tcomm较长的情况下,当一个常见运算,如SQM,应用于单次迭代时,Tcomp 大大低于Tcomm。由此我们提出以下问题:能否通过改进算法及其迭代,使得Tcomp增加至与Tcomm接近,并在此过程中尽可能精简算法,以 较少的迭代次数达到理想结果?

     当然,问题的答案并不简单,因为这要求改进基础算法。

5,更多实操细节

     考虑到机器学习的线性学习模式,在我们的算法中,节点中的权重更新和梯度建立与SQM方法相似。但是在每个节点中,通过一个复杂计算 ,将All Reduce得出的估算梯度与节点中的本地数据结合,能够得出一个近似全局问题的本地映射,进而得出本地估算结果。然后,汇总 估算结果即可得出加权的全局更新。值得注意的是,计算映射问题将导致单个节点的计算量增加,但不会要求任何额外通信,最终Tcomp增 加。但由于Tcomm足够长,单次迭代耗时并未受到显著影响。不过,由于每个节点此时计算的只是全局问题的一部分,所需的迭代次数大幅 减少了。假设存在一组数据,数据量极大且其中每个节点都能进行高效学习,那么单个节点中的映射问题就十分接近全局问题。结果显示 ,相较于需要迭代数百上千次的SQM,我们的算法仅仅要求一两次迭代。并且此算法非常灵活,允许不同层次的映射方式。基本上,我们的 算法都快于SQM,平均快两至三倍。

      如果使一个权重系数的仅在特定的一组节点进行更新,则可将权重参数分发至不同节点,并在此基础上布置分布式数据存储和计算。这种 方式能解决许多问题,例如,消除线性机器学习中的非相关变量或进行分布式深度网络学习。这种特殊的迭代算法是以增加单个节点计算 量来降低迭代次数的。

6,评估
     我们的算法适用于要求大量通信的问题,但实际中此类情况并不多见。近期,学界涌现出一批不错的、针对一般情况的分布式机器学习算 法。目前它们还缺乏严谨的评估,不过,优秀的算法出现在云端机器学习的殿堂已是指日可待。

7,适应用户需求的自动分布式机器学习
     还有一个不可忽视的方面是,云端机器学习用户们的需求千差万别。有的要求尽量降低耗时,有的要求成本较低的解决方案。除了尽力优 化上述因素,有的用户也愿意从结果的精确性上作出妥协。与之对照的,另一些用户则希望不计成本地实现最佳方案。为了适应不同用户 的需求,同样一个问题也可能产生差异化的解决方案及系统配置,所以一套能够自动选择最优算法及权重设置的方案显得尤为重要,而我 们的研究正着力于此。
随着不断的升级换代和产品拓展,自动分布式机器学习解决方案必将成为Azure机器学习下一个极具潜力的领域。


来自群组: about云小组群
欢迎加入about云群425860289432264021 ,云计算爱好者群,亦可关注about云腾讯认证空间||关注本站微信

已有(3)人评论

跳转到指定楼层
feng01301218 发表于 2015-4-1 08:59:37
回复

使用道具 举报

lovelan 发表于 2015-4-1 11:38:11
回复

使用道具 举报

Redgo 发表于 2015-4-1 21:14:28
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条