人工智能平台选择


机器学习

机器学习主要研究机器模拟人的学习行为,以获取新的知识或技能。机器学习是人工智能基础技术层的软件核心。

机器学习一般分为训练(Training)和推断(Inference)两个阶段。在训练阶段,机器需要读取大量的训练数据(类似人类的经验)经过大规模的训练生成一个模型(类似人类学习得到的技能)。在推断阶段,机器利用训练得到的模型,可以预测新数据的结果。

目前主流的机器学习分支主要有统计学习和深度学习。统计学习已经被成功应用到现代社会的各个方面,而深度学习技术是近年来人工智能热潮的直接推动力。深度学习框架是深度学习的核心工具,本节主要介绍主流的深度学习框架。

深度学习框架

伴随着人工智能的热潮,很多互联网公司和研究机构都投入重兵参与研发深度学习框架,并将其开源以扩大影响力。目前市面上深度学习框架层出不穷、数目众多,我们从中选择影响力较大且有代表性的11个进行介绍,包括TensorFlow、MXNet、Caffe、Caffe2、CNTK、Deeplearning4j、PaddlePaddle、Keras、Torch、PyTorch、Theano等。


TensorFlow

TensorFlow由Google于2015年推出,网络结构基于计算图,架构灵活,对分布式提供原生支持。它依托Google强大的研发实力和业界影响力,社区活跃,文档丰富,生态完备,还配备了网络结构可视化工具TensorBoard。TensorFlow是目前关注度最高的深度学习框架

TensorFlow的定位不局限于深度学习,而是面向使用计算图的所有机器学习任务,因而架构庞杂、概念繁多,有一定的学习门槛,单机性能还没有优化到足够好,在性能评测中往往落于下风。

MXNet

MXNet由开源社区DMLC(Distributed Machine Learning Community)开发,核心开发者是陈天奇、李沐等中国人。MXNet的设计目标是高性能和灵活性。MXNet架构非常灵活,用户可以混合使用符号编程模式和指令式编程模式,原生支持多GPU、多机的分布式训练,可运行于云端、桌面和移动端,并在性能和内存效率上做了很多优化。MXNet的接口支持的语言是最丰富的,包括C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl等。MXNet目前已经被亚马逊AWS选为官方深度学习框架。MXNet是一款来自开源社区,各方面都非常非常优秀,可以与目前最火的TensorFlow对标的深度学习框架。相比TensorFlow,MXNet还具有轻量级、高性能、接口语言更丰富的优势。

目前MXNet开发者的主要精力仍专注在框架开发上,周边的文档、样例还不够丰富,入门难度较大。

Caffe

Caffe目前由伯克利视觉学中心(Berkeley Vision and Learning Center,BVLC)维护,创始人是贾清扬,贾也是TensorFlow、Caffe2的作者。Caffe专精于计算机视觉领域,易上手,速度快,代码质量较高,运行稳定,是第一个主流的工业级深度学习框架。Caffe有一个很大的优势是社区积累了大量已经训练好的模型,方便开发者共享复用。

Caffe的网络结构基于层,灵活性较差,新增功能麻烦,目前项目已经很少更新。

Caffe2

Caffe2由Facebook于2017年4月推出,目前就职于Facebook FAIR实验室的贾清扬是其核心开发者。Caffe2沿袭了大量的 Caffe 设计,但网络结构改为了更为灵活的计算图。Caffe2是一个轻量级、高性能的深度学习框架,定位于生产环境,跨平台特性优良,可以在 iOS、Android 和树莓派上训练和部署模型。

Caffe2框架较新,目前功能还不够丰富,实现分布式训练较麻烦。

CNTK

CNTK由微软于2016年1月推出,基于计算图,支持多GPU、多机的分布式训练,代码质量高,经历了微软多条产品线的考验,性能优异,相比其它框架有一定优势。CNTK源自语音领域,针对该领域做了很多优化。

相比已有主流库,CNTK并没有太多差异化优势,易用性也相对较差。

Deeplearning4j

Deeplearning4j(简称DL4J)由商业智能和企业软件公司Skymind牵头开发,是用Java和Scala开发的深度学习框架。DL4J可以很好地利用Java社区在分布式计算、云计算上的优良生态,通过集成Hadoop和Spark用于分布式训练。此外DL4J还提供了商业版的支持。

PaddlePaddle

PaddlePaddle由百度研发,是国内公司首款开源深度学习框架。它简单易用,高效强大,可以支撑复杂集群环境下超大模型的训练,已经应用于百度多条产品线。它自带了很多常用算法(NLP相关算法居多),开发者稍作修改即可复用。

PaddlePaddle的网络结构基于层,灵活性较差,增加新功能较麻烦。

Keras

Keras主要由Francois Chollet一人开发,是一个元框架,底层封装了TensorFlow和Theano,设计参考了Torch,为开发者提供了非常易用的接口,适合快速搭建原型。Keras社区活跃,文档丰富,是很好的入门框架。也由于Keras封装得太高级,因而不方便深度开发,不合适做深入的算法研究。

Torch7

Torch7是一个LuaJIT上的科学计算框架,灵活性和性能俱佳,适合用于科研。Facebook力推,并为其开发了一系列工具。不过Torch7的接口语言只有Lua,不像Python那么主流,是阻挡开发者的门槛。

PyTorch

PyTorch由Facebook于2017年1月发布,基于Torch,使用Python开发,弥补了Torch没有Python接口的缺点。它非常现代而且轻量级,更为灵活,支持动态图,非常适合科研。目前框架较新,还不太成熟。

Theano

Theano由蒙特利尔大学于2008年推出,历史久远,使用Python开发,比较底层,建模能力强,派生出了大量包括Keras在内的深度学习包。Theano存在编译时间长,代码比较hacky,调试困难,可移植性较差等问题。

人工智能芯片

人工智能芯片是深度学习的硬件基础,为人工智能的发展提供了源源不断的计算力,是人工智能发展的三大驱动因素之一。

通用处理器CPU早已经被实践证明并不适合深度学习,目前适用于深度学习的芯片主要分为四大类:GPU、FPGA、ASIC和类脑芯片。

从使用场景上看,深度学习一般也分为训练和推断两个阶段。训练市场占整个深度学习市场的5%,其余95%都是推断市场。

在训练阶段,大量训练数据被输入深度神经网络进行学习并最终生成模型。GPU并行度非常之高,在此场景下非常高效,是业内的不二选择。

推断阶段又可以细分为服务端的推断和终端设备上的推断。

在服务端的推断,GPU依然是第一选择,但FPGA也有一定的优势。百度大脑项目在推断阶段采用FPGA后将性能提高了3至4倍,功耗降低了50%。微软在数据中心也大规模使用FPGA。谷歌则专门打造了TPU。

在终端设备上的推断,对低功耗、实时性要求更高,FPGA与ASIC凭借良好的运行能效比渐渐占据主流。中国的深鉴科技、地平线机器人等创业公司也都专注在基于FPGA平台提供终端设备的芯片集成方案。

GPU

GPU(Graphics Processing Unit,图形处理器),适合做大批量同构数据的处理。在深度学习上可以提供比CPU高数十倍乃至于上百倍的性能。GPU因其并行计算优势最先被引入深度学习。GPU的发明者Nvidia占据了70%的市场份额。借着人工智能的东风,Nvidia的股价在2016年飙涨了230%。

FPGA

FPGA(Field Programmable Gate Array,现场可编程门阵列),适合做需要低延迟的流式处理,其峰值计算性能远低于GPU,但可对硬件编程,因而可以针对特定的机器学习算法开发特定的架构。百度、微软、IBM等公司都有专门做FPGA的团队为服务器加速。FPGA的可配置性更适合企业、军工等应用。FPGA相比GPU而言在能耗和体积上更有优势,所以也被大量的运用在一些需要便携性的产品中(比如大疆的无人机)。目前Xilinx和Altera总计占据了FPGA85%的市场份额,Altera已经被Intel于2015年以167亿美元收购。

ASIC

ASIC(Application Specific Integrated Circuits,专用集成电路)是一种专用芯片,性能高、低功耗、量产成本低,但开发周期长、可配置性有限。中国的寒武纪是全球首款专为深度学习打造的专用芯片。Google专为TensorFlow深度学习框架定制的芯片TPU(Tensor Processing Unit)也是一款ASIC。

类脑芯片

类脑芯片是指参考人脑神经元结构和人脑感知认知方式来设计的芯片。随着各国“脑计划”的兴起和开展,涌现出了大量神经形态芯片研究成果,受到国际上的广泛重视并为学界和业界所熟知。例如IBM 公司的 TrueNorth 以及高通公司的 Zeroth,欧 盟支持的 SpiNNaker 和 BrainScaleS、斯坦福大学的 Neurogrid。类脑芯片更好的模拟了人的神经网络,可能具有非常大的潜力。但截止目前,还没有量产的类脑芯片。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值