人工智能这个江湖,怎么可能风平浪静。
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里。
来源:创事记
以上是网络信息转载,信息真实性自行斟酌。










