上海列举网 > 生活服务 > 其他生活服务 > 智能数据解决大规模机器学习问题
上海
[切换城市]

智能数据解决大规模机器学习问题

更新时间:2017-06-01 14:17:26 浏览次数:69次
区域: 上海 > 静安 > 北京西路

  首先是怎么去突破计算上的瓶颈。刚才也谈到了计算上的瓶颈,在这里说的更细一点,为什么计算量是随着数据超线性增长的?这边引用了非常有名的Machine Learning一篇文章,里面总结了机器学习的算法的复杂度。M是数据量,N是数据的维度,可以看到所有的算法要么是跟维度乘平方或三次方的关系,或者是跟M是平方或三次方的关系。

  在小数据上不太突出的问题,比如在算法上需要多次迭代,在大数据的情况下,由于必须把数据放在HDFS上面, I/O的代价是非常庞大的。我们自己测算过一些,实际上真正计算的开销仅仅占到全部开销的5%到10%,90%到95%的时间都花在I/O上面。

  为了解决大规模机器学习问题,工业界和学习界都做了很多努力。开始是运用MPI,这个相对来说比较古老的并行接口来做大规模机器学习。MPI肯定本身还是比较灵活的,但是因为本身不是为大数据、以数据为中心的计算来设计的,所以在处理做大规模机器学习的时候还是有不少问题,首先开发不够友好,学习曲线比较高。容错性也比较差,如果跑一个大规模机器学习任务,跑了很久突然出问题了就不好处理。

  hadoop兴起后,很多人也尝试用Hadoop来实现机器学习算法。但是很快大家认识到在Hadoop上的MapReduce有很大的问题,一是BSP模式,所以同步代价很大。同时要做Shuffle,网络瓶颈也比较大。因为单个节点上的内存限制,也不能把规模放得特别大。为了解决MapReduce,后面又提出了AllReduce,通过树形通信来减少通信开销,这个机制在Spark里面就实现了。当然还有一波人认为MapReduce太粗了,所以就提出了Graph-Base的模型,这套模型的表达能力比较强、比较灵活,也可以处理比较大的模型。我个人认为,这个模型稍微复杂了一点,对于开发者来说学习曲线相对高了一点,而且也不是对所有算法有比较好的效率。
本文来源:http://www.chi***.cn/news/company-news
上海其他生活服务相关信息
11小时前
14小时前
注册时间:2013年07月12日
UID:78774
---------- 认证信息 ----------

查看用户主页