汪雨晴校对黄继彦 编辑

深度学习框架比较,我该选择哪一个?

近年来,深度学习在很多机器学习领域都有着非常出色的表现,在图像识别、语音识别自然语言处理、机器人、网络广告投放、医学自动诊断和金融等领域有着广泛应用。面对繁多的应用场景,深度学习框架有助于建模者节省大量而繁琐的外围工作,更聚焦业务场景和模型设计本身。

 使用深度学习框架完成模型构建有如下两个优势:

  • 节省编写大量底层代码的精力:屏蔽底层实现,用户只需关注模型的逻辑结构。同时,深度学习工具简化了计算,降低了深度学习入门门槛。
  • 省去了部署和适配环境的烦恼:具备灵活的移植性,可将代码部署到CPU/GPU/移动端上,选择具有分布式性能的深度学习工具会使模型训练更高效。

因此,在开始深度学习项目之前,选择一个合适的框架是非常重要的。目前,全世界最为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等。下面我们就来介绍一下目前主流的、以及一些刚开源但表现非常优秀的深度学习框架的各自特点,希望能够帮助大家在学习工作时作出合适的选择。

Theano

作为深度学习框架的祖师爷,Theano 的诞生为人类叩开了新时代人工智能的大门。Theano 的开发始于 2007 年的蒙特利尔大学,早期雏形由两位传奇人物 Yoshua Bengio 和 Ian Goodfellow 共同打造,并于开源社区中逐渐壮大。

Theano 基于 Python,是一个擅长处理多维数组的库,十分适合与其它深度学习库结合起来进行数据探索。它设计的初衷是为了执行深度学习中大规模神经网络算法的运算。其实,Theano 可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,在 GPU 或 CPU 中高效运行。

Theano 的出现为人工智能在新时代的发展打下了强大的基础,在过去的很长一段时间内,Theano 都是深度学习开发与研究的行业标准。往后也有大量基于 Theano 的开源深度学习库被开发出来,包括 Keras、Lasagne 和 Blocks,甚至后来火遍全球的 TensorFlow 也有很多与 Theano 类似的功能。

随着更多优秀的深度学习开源框架陆续涌现,Theano 逐渐淡出了人们的视野。2013 年,Theano 创始者之一 Ian Goodfellow 加入 Google 开发 TensorFlow,标志着 Theano 正式退出历史舞台。目前仅有部分研究领域的学者会使用 Theano 进行一些学术研究。 

Caffe&Caffe2

Caffe 是一个优先考虑表达、速度和模块化来设计的框架,它由贾扬清和伯克利人工智能实验室研究开发。支持 C、C++、Python等接口以及命令行接口。它以速度和可转性以及在卷积神经网络建模中的适用性而闻名。Caffe可以每天处理超过六千万张图像,只需单个NVIDIA K40 GPU,其中 1毫秒/图像用于推理,4毫秒/图像用于学习。

使用Caffe库的好处是从深度网络存储库"Caffe 模型Zoo"访问可用网络,这些网络经过预先培训,可以立即使用。通过Caffe Model Zoo框架可访问用于解决深度学习问题的预训练网络、模型和权重。这些模型可完成简单的递归、大规模视觉分类、用于图像相似性的SiameSE网络、语音和机器人应用等。

不过,Caffe 不支持精细粒度网络层,给定体系结构,对循环网络和语言建模的总体支持相当差,必须用低级语言建立复杂的层类型,使用门槛很高。Caffe2是由Facebook组织开发的深度学习模型,虽然使用门槛不像Caffe那样高,但仍然让不那么看重性能的开发者望而却步。另外,Caffe2继承了Caffe的优点,在速度上令人印象深刻。Facebook 人工智能实验室与应用机器学习团队合作,利用Caffe2大幅加速机器视觉任务的模型训练过程,仅需 1 小时就训练完ImageNet 这样超大规模的数据集。2018 年 3 月底,Facebook 将 Caffe2 并入 PyTorch,一度引起轰动。

Tensorflow

TensorFlow 是 Google 于 2015 年开源的深度学习框架。TensorFlow前身是谷歌的神经网络算法库 DistBelief,由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括 TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud 在内的多个项目以及各类应用程序接口。

TensorFlow 让用户可以快速设计深度学习网络,将底层细节进行抽象,而不用耗费大量时间编写底层 CUDA 或 C++ 代码。TensorFlow 在很多方面拥有优异的表现,比如设计神经网络结构的代码的简洁度,分布式深度学习算法的执行效率,还有部署的便利性(能够全面地支持各种硬件和操作系统)。 

TensorFlow在很大程度上可以看作是Theano的后继者,不仅因为它们有很大一批共同的开发者,而且它们还拥有相近的设计理念,都是基于计算图实现自动微分系统。TensorFlow 使用数据流图进行数值计算,图中的节点代表数学运算,而图中的边则代表在这些节点之间传递的多维数组(张量)。

TensorFlow编程接口支持Python、C++、Java、Go、R和Haskell API的alpha版本。此外,TensorFlow还可在GoogleCloud和AWS中运行。TensorFlow还支持 Windows 7、Windows 10和Windows Server 2016。由于TensorFlow使用C++ Eigen库,所以库可在ARM架构上编译和优化。这也就意味着用户可以在各种服务器和移动设备上部署自己的训练模型,无须执行单独的模型解码器或者加载Python解释器。

TensorFlow构建了活跃的社区,完善的文档体系,大大降低了我们的学习成本,不过社区和文档主要以英文为主,中文支持有待加强。另外,TensorFlow有很直观的计算图可视化呈现。模型能够快速的部署在各种硬件机器上,从高性能的计算机到移动设备,再到更小的更轻量的智能终端。

不过,对于深度学习的初学者而言,TensorFlow学习曲线太过陡峭,需要不断练习、探索社区并继续阅读文章来掌握TensorFlow的诀窍。

Keras

Keras用Python编写,可以在TensorFlow(以及CNTK和Theano)之上运行。TensorFlow的接口具备挑战性,因为它是一个低级库,新用户可能会很难理解某些实现。而Keras是一个高层的API,它为快速实验而开发。因此,如果希望获得快速结果,Keras会自动处理核心任务并生成输出。Keras支持卷积神经网络和递归神经网络,可以在CPU和GPU上无缝运行。

深度学习的初学者经常会抱怨:无法正确理解复杂的模型。如果你是这样的用户,Keras便是你的正确选择。它的目标是最小化用户操作,并使其模型真正容易理解。Keras的出现大大降低了深度学习应用的门槛,通过Keras的API可以通过数行代码就构建一个网络模型,曾几何时,Keras+Theano,Keras+CNTK的模式深得开发者喜爱。目前Keras整套架构已经封装进了TensorFlow,在TF.keras上可以完成Keras的所有事情。

如果你熟悉Python,并且没有进行一些高级研究或开发某种特殊的神经网络,那么Keras适合你。Keras的重点更多地放在取得成果上,而不是被模型的复杂之处所困扰。因此,如果有一个与图像分类或序列模型相关的项目,可以从Keras开始,很快便可以构建出一个工作模型。Keras也集成在TensorFlow中,因此也可以使用Tf.keras构建模型。

Pytorch

2017年1月,Facebook人工智能研究院(FAIR)团队在GitHub上开源了PyTorch,并迅速占领GitHub热度榜榜首。PyTorch的历史可追溯到2002年就诞生于纽约大学的Torch。Torch使用了一种不是很大众的语言Lua作为接口。Lua简洁高效,但由于其过于小众,用的人不是很多。在2017年,Torch的幕后团队推出了PyTorch。PyTorch不是简单地封装Lua Torch提供Python接口,而是对Tensor之上的所有模块进行了重构,并新增了最先进的自动求导系统,成为当下最流行的动态图框架。

Pytorch官网的标题语简明地描述了Pytorch的特点以及将要发力的方向。Pytorch在学术界优势很大,关于用到深度学习模型的文章,除了Google的,其他大部分都是通过Pytorch进行实验的,究其原因,一是Pytorch库足够简单,跟NumPy,SciPy等可以无缝连接,而且基于tensor的GPU加速非常给力,二是训练网络迭代的核心——梯度的计算,Autograd架构(借鉴于Chainer),基于Pytorch,我们可以动态地设计网络,而无需笨拙地定义静态网络图,才能去进行计算,想要对网络有任务修改,都要从头开始构建静态图。基于简单,灵活的设计,Pytorch快速成为了学术界的主流深度学习框架。

Pytorch的缺点则是前期缺乏对移动端的支持,因此在商用领域的普及度不及 TensorFlow 。在 2019 年,Facebook 推出 PyTorch Mobile 框架,弥补了 PyTorch 在移动端的不足,使得其在商用领域的发展有望赶超 TensorFlow 。不过现在,如果稍微深入了解TensorFlow和Pytorch,就会发现他们越来越像,TF加入了动态图架构,Pytorch致力于其在工业界更加易用。打开各自的官网,你也会发现文档风格也越发的相似。

PyTorch Lightning

PyTorch非常易于使用,可以构建复杂的AI模型。但是一旦研究变得复杂,并且将诸如多GPU训练,16位精度和TPU训练之类的东西混在一起,用户很可能会引入错误。PyTorch Lightning就可以完全解决这个问题。Lightning会构建你的PyTorch代码,以便可以抽象出训练的细节。这使得AI研究可扩展且可快速迭代。这个项目在GitHub上斩获了6.6k星。

Lightning将DL/ML代码分为三种类型:研究代码、工程代码、非必要代码。使用Lightning就只需要专注于研究代码,不需要写一大堆的 .cuda() 和 .to(device),Lightning会帮你自动处理。如果要新建一个tensor,可以使用type_as来使得新tensor处于相同的处理器上。此外,它会将工程代码参数化,减少这部分代码会使得研究代码更加清晰,整体也更加简洁。

PyTorch Lightning 的创建者WilliamFalcon,现在在纽约大学的人工智能专业攻读博士学位,并在《福布斯》担任AI特约作者。他表示,PyTorch Lightning是为从事AI研究的专业研究人员和博士生创建的。该框架被设计为具有极强的可扩展性,同时又使最先进的AI研究技术(例如TPU训练)变得微不足道。

PaddlePaddle

PaddlePaddle 的前身是百度于 2013 年自主研发的深度学习平台Paddle,且一直为百度内部工程师研发使用。PaddlePaddle 在深度学习框架方面,覆盖了搜索、图像识别、语音语义识别理解、情感分析、机器翻译用户画像推荐等多领域的业务和技术。在 2016 年的百度世界大会上,前百度首席科学家 Andrew Ng首次宣布将百度深度学习平台对外开放,命名 PaddlePaddle,中文译名“飞桨”。

PaddlePaddle同时支持稠密参数和稀疏参数场景的超大规模深度学习并行训练,支持千亿规模参数、数百个几点的高效并行训练,也是最早提供如此强大的深度学习并行技术的深度学习框架。PaddlePaddle拥有强大的多端部署能力,支持服务器端、移动端等多种异构硬件设备的高速推理,预测性能有显著优势。PaddlePaddle已经实现了API的稳定和向后兼容,具有完善的中英双语使用文档,形成了易学易用、简洁高效的技术特色。

2019 年,百度还推出了多平台高性能深度学习引擎Paddle Lite(Paddle Mobile 的升级版),为 PaddlePaddle 生态完善了移动端的支持。

Deeplearning4j

DL4J 是由来自旧金山和东京的一群开源贡献者协作开发的。2014 年末,他们将其发布为 Apache 2.0 许可证下的开源框架。主要是作为一种平台来使用,通过这种平台来部署商用深度学习算法。创立于 2014 年的 Skymind 是 DL4J 的商业支持机构。2017 年 10 月,Skymind 加入了 Eclipse 基金会,并且将 DL4J 贡献给开源 Java Enterprise Edition 库生态系统。

DL4J是为java和jvm编写的开源深度学习库,支持各种深度学习模型。它具有为 Java 和 Scala 语言编写的分布式深度学习库,并且内置集成了 Apache Hadoop 和 Spark。Deeplearning4j 有助于弥合使用Python 语言的数据科学家和使用 Java 语言的企业开发人员之间的鸿沟,从而简化了在企业大数据应用程序中部署深度学习的过程。

DL4J主要有三大优势:

1. Python 可与 Java、Scala、Clojure 和 Kotlin 实现互操作性。Python为数据科学家所广泛采用,而大数据编程人员则在 Hadoop 和 Spark 上使用 Java 或 Scala 来开展工作。DL4J 填补了之间的鸿沟,开发人员因而能够在 Python 与 JVM 语言(例如,Java、Scala、Clojure 和 Kotlin)之间迁移。通过使用 Keras API,DL4J 支持从其他框架(例如,TensorFlow、Caffe、Theano 和 CNTK)迁移深度学习模型。甚至有人建议将 DL4J 作为 Keras 官方贡献的后端之一。

2. 分布式处理。DL4J 可在最新分布式计算平台(例如,Hadoop 和 Spark)上运行,并且可使用分布式 CPU 或 GPU 实现加速。通过使用多个 GPU,DL4J 可以实现与 Caffe 相媲美的性能。DL4J 也可以在许多云计算平台上运行。

3. 并行处理。DL4J 包含单线程选项和分布式多线程选项。这种减少迭代次数的方法可在集群中并行训练多个神经网络。因此,DL4J 非常适合使用微服务架构来设计应用程序。

CNTK

2015年8月,微软公司在CodePlex上宣布由微软研究院开发的计算网络工具集CNTK将开源。5个月后,2016年1月25日,微软公司在他们的GitHub仓库上正式开源了CNTK。早在2014年,在微软公司内部,黄学东博士和他的团队正在对计算机能够理解语音的能力进行改进,但当时使用的工具显然拖慢了他们的进度。于是,一组由志愿者组成的开发团队构想设计了他们自己的解决方案,最终诞生了CNTK。

根据微软开发者的描述,CNTK的性能比Caffe、Theano、TensoFlow等主流工具都要强。CNTK支持CPU和GPU模式,和TensorFlow/Theano一样,它把神经网络描述成一个计算图的结构,叶子节点代表输入或者网络参数,其他节点代表计算步骤。CNTK 是一个非常强大的命令行系统,可以创建神经网络预测系统。

CNTK 最初是出于在 Microsoft 内部使用的目的而开发的,一开始甚至没有Python接口,而是使用了一种几乎没什么人用的语言开发的,而且文档有些晦涩难懂,推广不是很给力,导致现在用户比较少。但就框架本身的质量而言,CNTK表现得比较均衡,没有明显的短板,并且在语音领域效果比较突出。

MindSpore

MindSpore是华为在今年3月召开的开发者大会上正式开源,MindSpore是一款支持端边云全场景的深度学习训练推理框架,当前主要应用于计算机视觉自然语言处理等AI领域,旨在为数据科学家和算法工程师提供设计友好、运行高效的开发体验,提供昇腾AI处理器原生支持及软硬件协同优化。

MindSpore的特性是可以显著减少训练时间和成本(开发态)、以较少的资源和最高能效比运行(运行态),同时适应包括端、边缘与云的全场景(部署态),强调了软硬件协调及全场景部署的能力。因此,使用MindSpore的优势可以总结为四点:

  • 简单的开发体验。帮助开发者实现网络自动切分,只需串行表达就能实现并行训练,降低门槛,简化开发流程;
  • 灵活的调试模式。具备训练过程静态执行和动态调试能力,开发者通过变更一行代码即可切换模式,快速在线定位问题;
  • 充分发挥硬件潜能。最佳匹配昇腾处理器,最大程度地发挥硬件能力,帮助开发者缩短训练时间,提升推理性能;
  • 全场景快速部署。支持云、边缘和手机上的快速部署,实现更好的资源利用和隐私保护,让开发者专注于AI应用的创造。

MegEngine(天元)

MegEngine(天元)是今年3月正式开源的工业级深度学习框架,旷世也成为国内第一家开源AI框架的AI企业。天元可帮助开发者用户借助友好的编程接口,进行大规模深度学习模型训练和部署。架构上天元具体分为计算接口、图表示、优化与编译、运行时管理和计算内核五层,可极大简化算法开发流程,实现了模型训练速度和精度的无损迁移,支持动静态的混合编程和模型导入,内置高性能计算机视觉算子,尤其适用于大模型算法训练。

若说谷歌TensorFlow采用利于部署的静态图更适用于工业界,而Facebook PyTorch采用灵活且方便调试的动态图更适合学术科研。那么旷视的天元则在兼具了双方特性的过程中,找到了一个的平衡点。天元是一个训练和推理在同一个框架、同一个体系内完整支持的设计。基于这些创新性的框架设计,天元深度学习框架拥有推理训练一体化、动静合一、兼容并包和灵活高效四大优势:

  • 训练推理:一体化天元既能够支持开发者进行算法训练,同时其训练得到的模型,还可以直接用于产品的推理和封装,无需进行多余的模型转换。这极大地简化了算法开发流程,实现速度和精度的无损迁移。与此同时,天元在模型部署时还能够自动优化模型,自动帮助开发者删除冗余代码。
  • 动静合一:天元将动态图的简单灵活,与静态图的高性能优势进行整合,能在充分利用动态图模型训练优势的同时,通过动静态一键转换功能,以静态图的形式完成生产和部署。此外,天元还支持动静态的混合编程,进一步提高其灵活性。
  • 兼容并包:天元部署了Pythonic的API和PyTorchModule功能,支持模型直接导入,进一步降低框架迁移的入门门槛和学习成本。同时,它内置高性能计算机视觉算子和算法,能够深度优化计算机视觉相关模型训练和应用。
  • 灵活高效:在部署方面,天元拥有多平台多设备适应能力,其内置算子能够在推理或生产环境中充分利用多核优势,灵活调用设备算力,十分适用于大模型算法训练。

3月,旷视推出的天元是Alpha版本,其中包括旷视前期整理的代码和关键步骤。今年6月旷视推出了Beta版本,添加对ARM系列CPU的支持,以及更多加速芯片的支持。而天元的正式版本将于今年9月发布,除了添加对主流计算设备的支持外,还将升级其动态计算能力,进一步优化训练推理全流程的使用体验。与此同时,旷视天元已在GitHub和国内新一代人工智能开源开放社区OpenI上同步开源。

Jittor(计图)

Jittor 出自清华大学,开发团队来自清华大学计算机系图形学实验室,牵头者是清华大学计算机系胡事民教授。Jittor 是国内第一个由高校开源的深度学习框架,同时也是继 Theano、Caffe 之后,又一个由高校主导的框架。

与主流的深度学习框架TensorFlow、Pytorch不同,Jittor是一个完全基于动态编译(Just-in-time)、使用元算子和统一计算图的深度学习框架。Jittor 前端语言为 Python,使用了模块化的设计,类似于 PyTorch、Keras;后端则使用高性能语言编写,如 CUDA、C++。元算子和 Numpy 一样易于使用,而统一计算图则是融合了静态计算图和动态计算图的诸多优点,在易于使用的同时,提供高性能的优化。基于元算子开发的深度学习模型,可以被计图实时地自动优化并且运行在指定的硬件上,如 CPU、GPU。

Jittor开发团队提供了实验数据。在ImageNet数据集上,使用Resnet50模型,GPU图像分类任务性能比PyTorch相比,提升32%;CPU图像分类任务提升11%。在CelebA数据集上,使用LSGAN模型,使用GPU处理图像生成任务,Jittor比PyTorch性能提升达51%。 

此外,为了方便更多人上手Jittor,开发团队采用了和PyTorch较为相似的模块化接口,并提供辅助转换脚本,可以将PyTorch的模型自动转换成Jittor的模型。他们介绍称,在参数保存和数据传输上,Jittor使用和PyTorch一样的 Numpy+pickle 协议,所以Jittor和PyTorch的模型可以相互加载和调用。 

当然, Jittor作为一个新兴深度学习框架,在一些功能上,仍旧需要持续迭代完善。比如生态的建设,以及更大范围的推广,仍旧需要很多的努力。Jittor开发团队介绍称,就目前来看,Jittor框架的模型支持还待完善,分布式功能待完善。这也是他们下一阶段研发的重点。 

总的来说,各家的深度学习框架各有千秋,重要的是找到适合自己团队的,能够快速匹配团队的技术栈,快速试验以期发挥深度学习技术应用落地的商业价值。

THU数据派
THU数据派

THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。

理论深度学习框架
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

相关技术
华为机构

华为创立于1987年,是全球领先的ICT(信息与通信)基础设施和智能终端提供商,致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。目前华为有19.4万员工,业务遍及170多个国家和地区,服务30多亿人口。

https://www.huawei.com/cn/
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
Ian Goodfellow人物

Ian Goodfellow 是机器学习领域备受关注的年轻学者之一,他在本科与硕士就读于斯坦福大学,师从吴恩达,博士阶段则跟随蒙特利尔大学的著名学者Yoshua Bengio研究机器学习。Goodfellow 最引人注目的成就是在2014年6月提出了生成对抗网络(GAN)。这一技术近年来已成为机器学习界最火热的讨论话题,特别是在最近几个月里,与GAN有关的论文不断涌现。GAN已成为众多学者的研究方向。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

云计算技术

云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

图像生成技术

图像生成(合成)是从现有数据集生成新图像的任务。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

MXNet技术

MXNet是开源的,用来训练部署深层神经网络的深度学习框架。它是可扩展的,允许快速模型训练,并灵活支持多种语言(C ++,Python,Julia,Matlab,JavaScript, Go,R,Scala,Perl,Wolfram语言)

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

Apache Hadoop技术

Apache Hadoop是一套用于在大型集群上(由通用硬件构建)运行应用程序的框架。它实现了Map/Reduce编程范型,计算任务会被分割成小块(多次)运行在不同的节点上。除此之外,它还提供了一款分布式文件系统(HDFS),数据被存储在计算节点上以提供极高的跨数据中心聚合带宽。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
机器视觉技术

机器视觉(Machine Vision,MV)是一种为自动化检测、过程控制和机器人导航等应用提供基于图像的自动检测和分析的技术和方法,通常用于工业领域。

流计算技术

Spark Streaming是Spark Core API的一种扩展,它可以用于进行大规模、高吞吐量、容错的实时数据流的处理。它支持从很多种数据源中读取数据,比如Kafka、Flume、Twitter、ZeroMQ、Kinesis或者是TCP Socket。并且能够使用类似高阶函数的复杂算法来进行数据处理,比如map、reduce、join和window。

用户画像技术

用户画像(persona)的概念最早由交互设计之父Alan Cooper提出:“Personas are a concrete representation of target users.” 是指真实用户的虚拟代表,是建立在一系列属性数据之上的目标用户模型。

推荐文章
暂无评论
暂无评论~