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