做AI,底层框架or上层应用?.doc
《做AI,底层框架or上层应用?.doc》由会员分享,可在线阅读,更多相关《做AI,底层框架or上层应用?.doc(5页珍藏版)》请在三一文库上搜索。
1、做AI,底层框架or上层应用?做底层AI框架和上层AI应用,哪个对自己的学术水平(或综合能力)促进更大?这一问题引起了知乎上不少的讨论。本文对解浚源、微调等用户的精彩回答做了整理,与读者共享。左手“底层AI框架”,右手“上层AI应用”,如何选择?对于做AI相关工作的人来说,具体选择做哪个方向,可能是需要深深纠结的一个问题。知乎上就用户提出了此问题,引起了不小的关注和讨论:新智元获得了解浚源和微调两位用户的授权,将他们对此问题的深度解析做了整理,与读者共享。要有侧重,但两方面都需了解作为一个深度学习转系统的人,我最近也在反思一个问题:深度学习系统(Deep Learning System)的核心
2、到底是深度学习还是系统?先放结论:无论你想做深度学习还是深度学习系统,都需要同时了解两方面的知识,根据自己的方向可以有所侧重,但一定不能对一方面完全不懂,否则是很难做出在实践中有用的成果的。首先我们来看一下目前流行框架的开发团队和他们开发框架的驱动力:Caffe:贾扬清和伯克利视觉实验室的小伙伴们开发。开始主要是自己用,属于需求驱动。Torch:Yann LeCun的学生。需求驱动。Theano:Yoshua Benjio的学生。用于自己科研,但是也发了系统的paper,属于需求科研驱动。Tensorflow:Jeff Dean带领的Google员工,主要是系统出身。源于Google在AI领域
3、的布局需求,资本驱动。Neon:nervana员工,作为创业公司的产品。资本驱动。MXNet:DMLC(主要是华人机器学习和分布式系统学生)的小伙伴。主要是Minerva,Purine,和cxxnet的开发团队合在一起,一半搞机器学习的,一半搞系统的。需求兴趣驱动。剩下还有很多搞系统的人出于兴趣或者科研目的开发的框架,但大多没有流行起来,就不再赘述了。可以看出,除了Google强推的Tensorflow,大多都是从自用和兴趣开始的。而Tensorflow的开发经费比其他所有框架的经费加起来还要多出几十倍,但是一年下来并没能一统江湖。可见需求驱动的力量,所谓“需要是发明之母”。为什么主流深度学习
4、框架多数出自“懂一点系统的搞深度学习的人”之手,而不是“懂一点深度学习的搞系统的人”呢?我认为主要是因为深度学习系统和传统系统(比如操作系统,数据库)有一个本质区别:深度学习算法各部分的耦合非常紧密,牵一发而动全身。搞系统的人的思路是,我做一个系统,定义好接口,保证接口正确,用户用就可以了,不需要了解实现细节。毕竟你用操作系统并不需要了解文件系统格式,用数据库并不需要了解一致性是怎么实现的。但是这套思维用在深度学习系统上却不合适。其一,一个数据矩阵流过整个系统,每一步的细节都可能对一百步以后的结果造成影响。而对于中间结果,你无法严格定义什么是正确的,一个好的算法不是N个好的部分的简单叠加。Hi
5、nton就说过,Dropout看起来像个Bug,但是它提高了精度,所以是个“好bug”。其二,因为深度学习算法复杂,需要控制的因素多,一个固定接口很难满足所有用户的需要。还不如把系统写的简单灵活一点,让用户根据需要可以很方便的自己修改。反过来对搞深度学习的人来说,如果你不了解系统内部细节,当你的算法效果好的时候,你并不知道到底是哪些因素导致了效果好。可能换了一个框架,效果就不好了,而原因是你根本不知道的某个实现细节。当效果不好时,你也不知道如何改进。另一方面来说,当你需要实现一个新的算法的时候,经常会发现框架现有的接口不能解决你的问题,这时候就需要对系统内部的了解才能修改系统已实现自己的目的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AI 底层 框架 or 上层 应用
链接地址:https://www.31doc.com/p-3383082.html