小标
2018-10-18
来源 :
阅读 1327
评论 0
摘要:本文主要向大家介绍了机器学习入门之如何提高分布式机器学习系统的执行效率?通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之如何提高分布式机器学习系统的执行效率?通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
目前有很多开源的分布式机器学习和深度学习系统,例如DMLC,Spark,MLlib,Petuum,parameter server,Caffe,Torch,Theano和TensorFlow等等。然而,如何在集群上高效的执行分布式机器学习过程呢?
这要从机器学习算法的特点说起,机器学习算法与排序或数据库查询等算法不同,它是基于爬山(hill-climbing)的算法,通过多个计算步骤到达最优解(对应山顶或谷底,此时机器学习模型具有最高的预测准确度)。在计算过程中,算法每次计算出距离最近的山顶或谷底方向,并向该方向移动一小步。当算法靠近山顶时,移动的步长越来越小,直到最后收敛。
上述爬山算法具有以下特征:
1)容错性(error tolerance)。即便是在爬山过程中有多次方向错误,但最终仍然能够达到最优解。因此可利用算法的容错性,在计算过程中引入某种程度上的误差(例如在worker间采用异步通信模式,而不是mapreduce式的严格同步模式),提高计算效率。
2)结构依赖性(dependency structure)。爬山的路径可能会比较复杂,到达山顶或谷底的过程比较复杂,然而大部分并行机器学习算法往往需要收集齐所有机器的计算结果才能确定最终的爬山方向,因此使用100台机器并行执行一个机器学习算法并不能达到100倍的加速比。
3)不均匀的收敛性(uneven convergence)。机器学习模型往往包含多个模型参数,每个模型参数相当于爬山方向的一个维度。通常有80~90%的样本在迭代计算初期已经收敛,然而绝大部分并行机器学习算法并没有利用这一特征,从而重复计算这些已收敛的参数,浪费计算资源。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号