欢迎来到天天文库
浏览记录
ID:28108977
大小:165.00 KB
页数:14页
时间:2018-12-08
《深度学习开源框架,AI从业者的选择之路.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、深度学习开源框架,AI从业者的选择之路 本文内容来自微软美国总部机器学习科学家彭河森博士的分享,并由彭河森博士亲自整理成文。 正如程序语言一样,深度学习开源框架同样各有优劣和适用的场景,那么AI从业者该如何有针对性地选择这些平台来玩转深度学习? 本期特邀了先后在谷歌、亚马逊、微软供职的机器学习科学家彭河森博士为大家讲述《MXNet火了,AI从业者该如何选择深度学习开源框架》。彭河森博士亲眼见证并深入参与了这三家巨头布局深度学习的过程。 嘉宾介绍 彭河森,埃默里大学统计学博士。现担任微软美国总部的机器学习科学家、微软必应广告部应用资深研究员,当前主要研究
2、方向是自然语言处理和机器学习在广告和推荐系统中的应用。此外,彭河森博士曾是亚马逊最年轻的机器学习研究员,之前还供职于谷歌计量经济学部和中科院。 深度学习是一个非常热门的领域,现在市面上也有很多非常优秀的平台,相信大家在入行之初都在想,这么多平台应该怎么选择? 我先提两点,可能是一般测评没有考虑到的东西: 一个是图像计算和符号求导,这是深度学习一个非常有意思且非常重要的副产物。 另一个是深度学习框架的可触碰深度,这点直接关系到深度学习系统的发展未来和用户的自由度。 这两点对于初学者和从业人员都非常重要,我在后面详细讲述。 首先要恭喜MXNet近日获得了
3、亚马逊的背书,MXNet平台本身非常优秀,具有很多优良的性质:例如多节点模型训练,目前是我知道最全面的多语言支持。此外,也有评测说MXNet性能方面可以高出同行平台很多,我们将会在后面的讨论中提到。现在进入正题,我们该如何选择深度学习开源平台,参考标准应该是什么样的? 一、深度学习开源平台的5大参考标准 今天主要探讨的平台(或者软件)包括:Caffe,Torch,MXNet,CNTK,Theano,TensorFlow,Keras。 如何选择一个深度学习平台?我总结出了下面的这些考量标准。因人而异,因项目而异。可能你是做图像处理,也可能是自然语言处理,或是
4、数量金融,根据你不同的需求,对平台做出的选择可能会不同。 标准1:与现有编程平台、技能整合的难易程度 无论是学术研究还是工程开发,在上马深度学习课题之前一般都已积累不少开发经验和资源。可能你最喜欢的编程语言已经确立,或者你的数据已经以一定的形式储存完毕,或者对模型的要求(如延迟等)也不一样。标准1考量的是深度学习平台与现有资源整合的难易程度。这里我们将回答下面的问题: 是否需要专门为此学习一种新语言? 是否能与当前已有的编程语言结合? 标准2:和相关机器学习、数据处理生态整合的紧密程度 我们做深度学习研究最后总离不开各种数据处理、可视化、统计推断
5、等软件包。这里我们要回答问题: 建模之前,是否具有方便的数据预处理工具?当然大多平台都自身带了图像、文本等预处理工具。 建模之后,是否具有方便的工具进行结果分析,例如可视化、统计推断、数据分析? 标准3:通过此平台做深度学习之外,还能做什么? 上面我们提到的不少平台是专门为深度学习研究和应用进行开发的,不少平台对分布式计算、GPU等构架都有强大的优化,能否用这些平台/软件做其他事情? 比如有些深度学习软件是可以用来求解二次型优化;有些深度学习平台很容易被扩展,被运用在强化学习的应用中。哪些平台具备这样的特点? 这个问题可以涉及到现今深度学习平台的一个
6、方面,就是图像计算和自动化求导。 标准4:对数据量、硬件的要求和支持 当然,深度学习在不同应用场景的数据量是不一样的,这也就导致我们可能需要考虑分布式计算、多GPU计算的问题。例如,对计算机图像处理研究的人员往往需要将图像文件和计算任务分部到多台计算机节点上进行执行。 当下每个深度学习平台都在快速发展,每个平台对分布式计算等场景的支持也在不断演进。今天提到的部分内容可能在几个月后就不再适用。 标准5:深度学习平台的成熟程度 成熟程度的考量是一个比较主观的考量因素,我个人考量的因素包括:社区的活跃程度;是否容易和开发人员进行交流;当前应用的势头。
7、讲了5个参考标准后,接下来我们用上面的这些标准对各个深度学习平台进行评价: 二、深度学习平台评价 评判1:与现有编程平台、技能整合的难易程度 标准1考量的是深度学习平台与现有资源整合的难易程度。这里我们将回答下面的问题:是否需要专门为此学习一种新语言?是否能与当前已有的编程语言结合? 这一个问题的干货在下面这个表格。这里我们按照每个深度学习平台的底层语言和用户语言进行总结,可以得到下表。 其中Keras通过Theano,TensorFlow作为底层进行建模。 我们可以看到这样的趋势: 深度学习底层语言多是C++/C这样可以达到高运行效率的语
此文档下载收益归作者所有