深度学习十大顶级框架
2015 年结束了,是时候看看 2016 年的技术趋势,尤其是关于深度学习方面。新智元在 2015 年底发过一篇文章《深度学习会让机器学习工程师失业吗?》,引起很大的反响。的确,过去一年的时间里,深度学习正在改变越来越多的人工智能领域。Google DeepMind 工程师 Jack Rae 预测说,过去被视为对于中型到大型数据集来说最佳的预测算法的那些模型(比如说提升决策树(Boosted Decision Trees)和随机森林)将会变得无人问津。
深度学习,或者更宽泛地说——使用联结主义架构的机器学习算法,可能会让机器学习算法变成过去时,因为深度学习算法还远远不是饱和状态。在未来的几年里,很有可能会出现一些训练深度神经网络的方法,让它们能够显著提升性能。在优化方法、激活功能、联结结构以及初始化步骤之间,还有一些突破出现的空间。
这很可能让很多机器学习算法接近出局的边缘。
那么,2016 年是否能看作深度学习正式统治人工智能的一年?如果是这样,我们又能为此做好什么准备?新智元整理了业内人士关于 2016 年的深度学习技术展望,以及 2015 年深度学习最流行的 10 大框架。
IIya Sutskever:OpenAI 的研究部负责人
我们期待看到更深度的模型(Deeper Models),相比今天的模型,它们可以从更少的数据中学习,尤其是在非监督学习方面,会有显著的进步。我们还可以期待,在语音识别和图像识别领域,我们能看到更加精准而且有用的结果。
Sven Behnke:波恩大学全职教授,智能系统小组主任
我期待深度学习技术,会在那些日益增多的多结构数据问题中得到应用。这会给深度学习带来新的应用领域,包括机器人,数据挖掘和知识发现。
Christian Szegedy:Google 高级工程师
现在的深度学习算法和神经网络,距离理论上可能的表现还很远。相比一年以前,我们现在的视觉神经网络模型,它的价格便宜了 5 到 10 倍,处理的参数少了 15 倍,但表现的还更好。这背后是更好的网络结构和更好的训练方法。我相信这仅仅是开始,深度学习算法会如此便宜,它能运行在便宜的手机设备中,而且不用更多的硬件设备支撑,也不需要额外的存储器。
Andrej Karpathy:斯坦福大学计算机科学博士,OpenAI 的研究工程师
我看到了一个趋势,结构会趋于更大,更复杂。我们会建造一个超大型的神经网络,能够交换神经网络组件,提前训练部分网络,增加新的模块,连带调整所有组件。例如,卷积神经网络曾经是最大的深度神经网络,但是今天它们被分离出来,作为新的大型神经网络一部分。相似的,现在的这些神经网络,也会是新一年更大型神经网络的一部分。我们在学习乐高玩具的拼法,学会如何把它们高效拼接在一起。
Pieter Abbeel:UC 伯克利大学助理教授,Gradescope 联合创始人
依赖于监督技术的深度学习垂直领域,需要用新的方法(NLP)超过现有的技术表现。我们会看到深度学习在非监督学习和增强学习方面的突出表现。
Eli David:Deep Instinct CTO
在过去两年,我们看到了深度学习在各个领域获得很大突破。但即便如此,5 年之内并不会达到人类水平的圣杯(但我认为,终其一生这会出现)。我们在各大领域看到极大的突破。特别的,我认为最具有希望的领域,来自于非监督学习,这个世界的大部分数据是没有标签的,而且我们大脑本身,也是非常好的非监督学习盒子。
当 Deep Instinct 成为第一个在安全领域使用深度学习的公司时,可以预计有更多的公司也会使用深度学习来部署。但是深度学习的门槛还是非常高,尤其对于互联网安全公司来说,他们其实并不使用人工智能工具(只有很少的解决方案使用了传统的机器学习技术)。所以深度学习要在安全领域得到大规模应用,还会经过很多年的时间。
Daniel McDuff:Affectiva 研究主管
在计算机视觉、语音分析以及其他领域,深度学习已成为机器学习中的支配形式。我希望使用 1 到 2 个 GPUs 就能部署的准确识别系统,能够让开发者们把新的软件部署到真实世界。我希望更多的焦点会放在非监督训练,或者半监督训练的算法上。
Jörg Bornschein:Google 学者,在加拿大前沿技术研究院(CIFAR)
预测未来总是很难的。当我们在大规模系统里考虑机器学习,在机器人控制的系统领域,或者在大规模系统里的大脑系统,非监督、半监督和强化学习会扮演愈发重要的角色。很明显的是,单纯的监督学习方法在理论上受到太多限制,很难解决实际问题。
Ian Goodfellow:Google 高级研究工程师
我预测在未来5年的时间里,我们的神经网络可以概括视频里发生了什么,而且有能力生成短视频。神经网络已经成为视觉任务的标准解决方案。我预测神经网络会成为 NLP 和机器人任务的标准解决方案。我还预测神经网络会在其他科学领域扮演重要工具,例如在基因行为预测,药物,蛋白质,新的医疗方案等。
Koray Kavukcuoglu & Alex Graves:Google DeepMind 研究工程师
很多事情会在未来 5 年发生。我们预测非监督学习和增强学习越发重要。我们也预测多方式学习(Multimodal Learning)的兴起,而且会超越个体数据集进行学习。
1.Keras
Keras 是非常极简、高度模块化的神经网络库,用 Python 写成,而且能运行在 TensorFlow 和 Thenao 的顶层。它的设计初衷是实现更快的实验,让从想法到结果的时间尽可能少,这是做好研究的关键所在。
2.MXNet
轻量、便携、灵活性强的分布式/移动深度学习系统,并能对动态的、突变的数据流进行调度。MXNet 能支持 Python、R、Julia、Go、Javascript 等编程语言,是出于效率和灵活性设计的深度学习框架。它能够给深度学习程序增加一些小佐料,而且能最大化产品效率。
3.Chainer
深度学习的神经网络灵活框架。Chainer 支持各种网络架构,包括 Feed-forward Nets、Convnets、Recurrent Nets 和 Recursive Nets。它也支持 per-batch 的架构。Chainer 支持 CUDA 计算,它在驱动 GPU 时只需要几行代码。它也能通过一些努力,运行在多 GPUs 的架构中。
4.Sickit-Neuralnetwork
深度神经网络的实施,而且没有学习崖(Learning Cliff)。这个库能够执行多层感知器,自动编码器和递归神经网络,它运行在稳定的 Future Proof 交互界面,并能和对用户更加友好的 Scikit-Learn 以及 Python 交互界面兼容。
5.Theano-Lights
Theano-Lights 是基于 Theano 的研究架构,提供最近一些深度学习模型的实现,以及便于训练和测试功能。这些模型不是隐藏起来的,而是在研究和学习的过程中,有很大的透明性和灵活性。
6.Deeppy
基于 Theano 高度扩展性的深度学习框架。
7.Idlf
Intel 的深度学习框架。
Intel Deep Learning Framework(IDLF)是一个 SDK 库,为深度神经网络提供训练和执行。
它包括一些 API,能够把构建神经网络拓扑作为计算工作流程,进行函数图形优化并执行到硬件。我们最初的重点是驱动部署在 CPU(Xeon)和 GPU(Gen)上神经网络的物体识别(ImageNet 拓扑)。
这个 API 的设计,使我们未来能很容易支持更多的设备。我们的关键原则是在每个 Intel 支持的平台上实现最大性能。
8.Reinforcejs
Reinforcejs 是一个增强学习库,能够执行常见的增强学习算法,而且可以做 Web 端的 Demos。这个库现在包括:
动态规划方法(Dynamic Programming Methods)
时间差分学习(Temporal Difference Learning)(SARSA/Q-Learning)
Deep Q-Learning
Stochastic/Deterministic Policy Gradients 和 Actor Critic 架构
9.OpenDeep
OpenDeep 是服务于 Python 的一个深度学习框架,建立在 Theano 的基础上,专注在灵活性和易用性,为行业的数据科学家和前沿研究者服务。OpenDeep 是一个模块化、易扩展的架构,能够用来构建几乎所有的神经网络框架,以解决你的问题。
10.MXNetJS
MXNetJS 是一个 DMLC/MXnet 的 Javasript 包。MXNetJS 能给浏览器带来最新水平的深度学习预测 API。它通过 Emscripten 和 Amalgamation 运行。MXNetJS 允许你在各种计算图像中,运行最新水平的深度学习预测,并给客户端带来深度学习的乐趣。