正文
深度学习的每一个典型案例都涉及到分段非线性单元(piecewise non-linear unit),这一成果是在多伦多大学和蒙特利尔大学的研究成果之上不断积累得到的。这些成果表明,我们可以使用这种分段非线性变换(piecewise non-linear transformation)来训练比之前远远更深的神经网络。
过去几年里,这一重要的研究结果为我们带来了语音识别等应用(第一款产业界的语音识别应用出现在 2010-2012 年之间)。到 2012 年的时候,只要你有一台安卓手机,你就有了一个可以为你进行语音识别的神经网络(「okay Google」)!
另一个远远更大的领域是计算机视觉,它也在一两年之后实现了应用。同样,来自多伦多大学的研究突破也发挥了重要的作用,这些研究将之前的很多思想都集中了起来,并且还带来了更大的改进。这些改进不仅仅是在算法上,而且也涉及到借助硬件的进步来实现更快的计算处理。比如说,研究者发现最初为图形和视频游戏处理所设计的 GPU 碰巧非常适合用来训练神经网络;几年之后,斯坦福大学教授李飞飞启动了 ImageNet 数据集项目,该数据集带有大量有标注的数据,已经帮助许多研究者和开发者实现了很多深度学习应用。
目前来说,深度学习主要还是基于监督学习(supervised learning),并且还需要数百万有标注的图像来进行训练。实际上,我们可以看到在过去的四五年里,这些深度神经网络的准确度一直在不断提升(了解更多可参阅论文《ImageNet Classification with Deep Convolutional Neural Networks (Sutskever, Hinton, Krizhevsky)》)。
3. 用机器学习实现人工智能的关键要素
要让机器学习系统接近人类水平的表现,我们通常需要一些关键的要素。
首先,你需要大量乃至巨量的数据。为什么呢?因为智能意味着正确地决策;而为了做出正确的决策,你需要知识。研究者所面临的一个核心问题就是如何好好使用知识。这个世界很复杂,如果要让机器理解世界的水平达到人类同样的程度,那么我们就将需要给机器描述大量的知识。为此,我们需要通过大量的数据来训练机器,从而使其能够以一种类似于人类能力那样微妙的方式来进行理解。
其次,为了利用数据,模型还必须要足够灵活。(许多传统的统计模型仅仅是将数据编译成不同的参数集合,这样的模型是很死板僵硬的。)
第三,为了训练机器,我们还需要大量的算力,这方面我们早就实现了。
第四,关于神经网络还有一个更加微妙的细节:一旦你训练好了一个神经网络,你就可以非常高效地使用它,而且仅需要非常少的计算。
最后,另一个重要的要素是这个世界中已有的假设,它们可以被看作是我们训练的先验知识,它们非常强大,足以应对「维度灾难(curse of dimensionality)」。维度灾难是这样一种情况:当存在大量的变量时,配置(configuration)的数量也将随之指数级增多;因此我们只能针对大多数配置寻找正确答案,而不是针对所有的配置。
在后面的章节中,我们将重点关注最后一个要素。
4. 学习中的维度
主要的假设本质上都是关于组合的世界的假设,它们内建于深度网络之中——这解释了深度网络的表现如此良好的原因。我们认为知识生成来自于我们将碎片组合起来的过程,而我们推导给定的答案也是通过将碎片化的信息构建到一起。比如说,语言就有这样的性质——我们定义语言中的每一个概念都是通过组合已有的概念进行定义的。而在之前的机器学习领域,这还是无法实现的。
更确切来说,在深度网络上,我们有两种实现组合性(compositionality)的方式。其中一种可被看作是一种并行的方法,而另一种则是序列式的方法。人类可以并行地选择不同的概念来进行组合,然后以非并行的方式来描述世界。这就是分布式表征(distributed representation)的理念,这意味着每一个对象都会被许多属性(这在神经网络中被称为特征(feature))描述,而这些属性配置的数量将会随属性数量的增长而指数式地暴增。序列式的方法则必须涉及到这一事实:当我们将在并行步骤中所获得的结果组合起来时,我们每一次都要执行一个运算序列(sequence of operations)(可以将这看作是神经网络中的多层面特征学习)。