接下来,我要简单说一下为什么我认为深度学习能运作得这么好。在谈这个之前,我需要回溯一下在解决人工智能问题时深度学习的几个要素。其中一个是机器需要很多很多的知识,而这些知识都来自数据。要吸取这些数据,就需要很灵活的模型——以前常用的统计模型可能不够用了。然后,要训练这些模型,就需要巨大的计算力,这也是近年来深度学习飞速发展的原因之一。现在,我们有了 GPU,而且我认为接下来几年,随着产业在计算力方面投入更多,开发各种神经网络专用硬件,计算力的发展还将提速。
使用当前形式的神经网络的好处之一,就是我们能从问题很快得出答案,这也叫做“高计算效率推理”(computationally efficient inference)。现在的很多方法采用近似处理(计算)系统,能够很快得出答案。 但最重要的——我列出的第 5 点,还是神经网络拥有能够战胜维度诅咒的先验知识(prior),下面我具体阐述一下。
先验就是对世界的一些假设(assumption)。深度学习对世界最基本的假设就是“组合性”(compostionality),这个与人类在工程、语言当中使用 compositionality 解决问题一样,我们需要把各种东西(pieces)组合(compose)到一起。这在深度网络中以两种方式得到了自然的体现,一是并行(parallel),一是序列(sequencial)。 并行的方式是指将世界各种特征(feature)、属性(attribute)组合在一起,这些特征、属性都不是互相排斥的,这也是特征工程的由来。另一方面,我们可以从较低层不断做到高层,这样一层一层的表示特征就是序列地表示事物。并行和序列两种方式都十分有用。
再具体讲一下并行的表示,以及为什么特征工程在统计上有用。假设一个人有各种各样的属性,比如是否戴眼镜、是男是女、是不是孩子——当然,实际中这些属性不需要这么明确,可以是更加模糊的属性,但是你可以简单地把过程视为如此。假设我们有 100 个二元的属性,那么就需要 2 的 100 次方那么多的组合来表示这些属性可能的组成,我们没有这么多的训练数据,也就覆盖不了这么多可能的情况。使用并行表示的好处是,我们可以使用很少的数据泛化地表示上述特征,而能够做到这一点,从本质上说是因为神经网络能够在不了解其他属性的情况下,学会各个属性——要检测一个人是否戴眼镜,并不需要了解这个人是男是女、是不是孩子、头发是什么颜色等其他属性,只要知道所见图像中是否有眼镜就行了。很多属性都是这样独立存在的。也就是说,例子或者说参数的增长是线性的(而不是传统统计学意义上指数级的增长),与属性的数量成正比。这样所需的数据量就小了很多。
至于我们眼下 AI 发展到了什么地步,我认为还处在非常早期的阶段。现在关于 AI 的泡沫有很多,媒体也有大篇幅的宣传。实际上,目前深度学习所有在产业上的进展都基于纯粹的监督学习。当前的系统对世界的理解和表示还停留在很基础的层面,学习的是数据的表面线索(superficial clues),在训练数据以外的地方往往就不管用了。例如,只看背景的颜色,如果背景大部分是绿地,那么系统就以为有动物存在,哪怕图片中并没有。我最近致力于研究,同时也非常关心的一个方向是如何让系统学会较为高层的抽象,而且涉及多个时间尺度,因此也就与长期关系有关。 另一个技术上的问题是,我们现在仍然十分依赖单一的方法——backprop,也即 smooth differential predictors。实际上 backprop 并不是我们现在需要的东西,当然这也是目前的研究热点。 (责任编辑:本港台直播) |