技术
首页  >  技术  >  技术要闻

深度学习框架的前世今生

2018-09-18  来源:中国信息产业网-人民邮电报  作者:中国信息通信研究院泰尔终端实验室 曾晨曦 段虎才

  开源框架github排名

前世:深度学习异军突起

一切还要从人工智能说起。

人工智能的兴起,离不开机器学习。机器学习是实现人工智能的途径,赋予非生物体一定思考和学习能力的方式与手段。机器学习现阶段最热门最有效的方法就是深度学习算法。

在深度学习兴起之前,机器学习的主要方法是以做特征工程为主流的统计学算法,即通过参数调节不断提取优化特征。此类方法的一大弊端就是对于语音视频等多维度信号,很难进行特征提取。通过深度学习,在神经网络的每一层,计算机都可自动学习出特征,从而解决了多维度信号特征提取困难的问题。

为了实现深度学习中的神经网络,深度学习框架工具应运而生。研究人员和开发者可以借助其更方便、快速地搭建自己的神经网络,训练和验证网络的学习能力。由于框架是对底层语言和重要算法模型的封装,使用者可省去大量工程开发精力,投入算法、网络和模型问题的研究。

今生:框架市场百家争鸣

纵观当今深度学习框架市场,可谓是百家争鸣。各大巨头纷纷意识到通过开源技术建立产业生态是抢占产业制高点的重要手段,争相推出了自家的框架。

按照框架面世的大概时间排列,其出现的先后顺序如下:Theano(2012年以前)、Caffe(2013年底)、Torch(2014年)、DeepLearning4J(2014年)、TensorFlow(2015年)、Keras(2015年)、Neon(2015年)、Chainer(2015年)、PaddlePaddle(2016年)、PyTorch(2017年初)、Caffe2(2017年)。

根据github上的星级,目前市场上的开源框架可大致按下表排序:

国内的互联网企业也推出了自己的框架,如百度的PaddlePaddle、小米的MACE、腾讯的ncnn等。但由于篇幅限制,本文仅对排名前三的框架以及框架鼻祖Theano以及刚刚崛起颇具潜力的新生代框架Pytorch予以介绍。

TensorFlow由谷歌大脑团队开发,其特点是使用数据流图进行数值计算。图中的节点表示数学运算,线表示它们之间通信的多维数据数组即张量。数据流图用“结点”和“线”的有向图来描述数学计算。这些数据“线”可以输运大小可动态调整的“张量”。张量从图中流过的直观图像是这个工具取名为“TensorFlow”的原因。TensorFlow是目前使用最广的深度学习框架,但是却非常底层,使用TensorFlow需要编写大量的代码。

Caffe支持视觉领域的算法框架,对基于深度卷积神经网络的学习框架支持效果很好,可以方便地进行CNN模型的训练和测试。其代码易懂、高效、上手简单,实现基础算法方便快捷,作为快速开发和工程应用非常适合;劣势是开发新算法不是特别灵活,需要使用C 和CUDA编程,安装过程也是比较费事耗时的庞大工程。因此,我们建议可以用Keras进行实验和测试,然后迁移到Caffe中进行生产。基于Caffe,Facebook又推出了Caffe2,能够支持大规模分布式计算和移动部署。未来Caffe2有望完全取代Caffe。

关键词:学习算法 框架 谷歌 有向图 ncnn