人工智能这个江湖,怎么可能风平浪静。
Pytorch,一个新的开源深度学习框架,昨天正式发布。Twitter上一时热议纷纷,各路人工智能专家毫不吝惜溢美之词:优雅、简洁、超强大、很酷……不过这些都是虚词,这个新出现的Pytorch到底是凭什么赢得称赞呢?
主要还是“动态”这个特性。
最近一段时间,很多“动态”深度学习库涌现出来,例如Chainer、MinPy、DyNet等。动态库的好处很明显,那就是易于调试和推导。Matroid创始人Reza Zadeh总结说,利用Pytorch这个深度学习框架,想要在神经网络中新加一层,再也不必全部推倒重来。
有人在reddit上举了一个例子,他之前一直用TensorFlow或者Keras框架构建RNN(循环神经网络),但是这样就不得不指定句子的长度,每个实例必须有相同的长度, 较短的句子必须填充。但如果使用动态库,就可以处理几乎任意长度的句子。
神经模块网络,就非常适用于Pytorch这样的动态架构。例如指定一张图片,让人工智能回答:图中小猫右边的物体是什么颜色?解决这个问题,包括几个子任务模块:首先是识别出小猫,然后找到小猫右边的物体,再识别出具体的颜色。
当然Pytorch的新特性不止于此,但这也足以让搞AI的工程师们兴奋一阵,尤其是Google旗下的深度学习框架TensorFlow,还不具备动态的特性。而且,Pytorch虽然没有大声宣扬,但大家都知道这个深度学习框架,属于Facebook。
Pytorch,能帮助Facebook挑战Google在深度学习框架领域的统治地位么?
针对上面这个疑问,云知声资深AI技术专家、NLP负责人刘升平博士对量子位表示,动态神经网络是很好的特性,但目前Pytorch在Beta阶段,缺乏一些关键特性,短期难以撼动TensorFlow的地位。但他也表示,框架的竞争还会继续下去。
继续讨论这个话题,我想还是再解释一下,什么是深度学习框架。我们谈到的人工智能、深度学习,都是依靠软件构成的系统。搭建这套系统,至少有两种途径:一是从零开始,一步步写出整个神经网络的代码;另外,就是利用成型的模块,直接进行组装。
所谓的框架,就是一套已经组装好基本部件的软件包。你可以把一个深度学习框架,想象成一套积木,工程师利用不同的积木,可以快速搭建出不同的建筑。各种框架之间的差异,可以简单理解为向用户提供的积木形状各不相同。
目前主流的深度学习框架,背后多是不同的科技巨头。对应关系如下:
TensorFlow —— Google
MXNet —— 亚马逊
paddle —— 百度
CNTK —— 微软
Torch、Caffe —— Facebook
想要在人工智能的争夺中占据主动,这些科技巨头只能在深度学习框架领域也展开激烈的竞争。而这种竞争的意义,也是显而易见的。谁家的深度学习框架能够赢得更多的用户,谁就能构建起更好的生态系统,进而获得更多的活力和更快的发展。
想象一下Android之于Google的意义。
坦白的说,目前人工智能领域,TensorFlow在深度学习框架上的优势相当明显。但各个科技巨头早已各自招募了大批人工智能精英,谁说变数一定不会发生?必须得抱有希望才行。
前两天,刚刚就任百度COO的陆奇谈到人工智能战略时,也明确表示百度在人工智能方面的投入,并不是希望自己推出什么人工智能的产品,而是希望搭建一个开放的平台,让百度的技术能够应用到不同的领域、不同的企业之中。
刘升平博士指出,深度学习平台入口和话语权的竞争将会越来越激烈,即使强如Google,也不大可能一口气吞下整块蛋糕; 对于业界来说,竞争可以避免出现一家独大。
然而变成最终承载各种人工智能应用的基础,才是这场技术争夺背后的商业目的。所以,人工智能这个江湖,怎么可能就此风平浪静。
也许很快,Pytorch的特性就会出现在TensorFlow里。
地址:中国·合肥市高新区创新大道5089号中科大先进技术研究院一号嵌入式研发楼4F
400-168-9850
皖公网安备34019202000142号版权所有 © 安徽天恩信息科技有限公司 皖ICP备15021665号-6
建筑行业信息化软件服务提供商智慧工地整体解决方案服务商做建筑行业数智产品领跑者