深度学习和人工神经网络是现代人工智能的 核心技术
深度学习根源于传统的“神经网络”,“神经网络”可以追溯到20世纪五十年代后期。当时,弗兰克·罗森布拉特试图建立一种类似机械大脑的感知器,可以“感知,识别,记忆,像人的思维做出响应的机器”。在一定范围内这个系统能够识别一些基本的形状,如三角形和正方形。人们对它的潜力寄予厚望,甚至“New Yorker”宣称这种“这个卓越的机器能够思考。”
但是测验最终以失败告终,一本写于1969年由马文·明斯基和他的合作者西摩帕尔特一本书指出,罗森布拉特设计的原系统是非常有限制的,从字面上盲目进行一些简单的逻辑功能如“异或”(比如说你可以拥有蛋糕或馅饼,但不能同时兼有)。众所周知,“神经网络”的魅力很快消失了。
然而,在上世纪八十年代中期,当卡内基-梅隆大学的年轻教授杰夫·欣顿帮助构建更复杂的虚拟神经元网络,可以规避一些明斯基指出的难点,罗森布拉特的又一个想法再度出现。韩丁引入一个“隐藏层”的概念,“隐藏层”神经元允许新一代网络有更复杂的学习功能(原始感知器无法处理的类似的异或功能)。然而新的模型也有严重的问题。训练时间长,学习缓慢,效率低下,就像史蒂文·平克和我指出的,不能像孩子一样掌握一些基本的东西,比如学习规则动词的过去式。由19世纪九十年代晚期,神经网络又开始失宠。
然而,欣顿坚持不懈,在2006年做出了重大改进,提出深度学习,这个概念延续了我的同事Yann LeCu早期提出的重要概念,这个技术仍然谷歌,微软,和其他地方有所应用。实际上,深度学习(Deep Learning)就是现代人工智能的核心技术。谷歌、微软与百度是现代人工智能领域的“三巨头”。它们拥有海量数据以及DNN技术,比如:2012年11月,微软(中国)在天津的一次会议上公开演示了一个全自动的“同声传译”系统,讲演者用英文演讲,后台的计算机一气呵成,完成语音识别、英中机器翻译,以及中文语音合成,效果非常流畅。微软使用的就是深度神经网络技术。
机器学习和人工神经网络
在深入深度学习的实现过程之前,先介绍机器学习和人工神经网络的概念。
机器学习的一个非常通常的任务是这样的:给出了一个目标的信息,从而能够知道它属于哪个种类。在深度学习的过程中,程序想要决定在目前游戏状态下如何进行下一步动作。机器学习算法从例子中进行学习:给出了许多的目标例子和它们的种类,学习算法从中找出了那些能够鉴定某个种类的目标特征。学习算法会产生一个模型,能够在训练集中最小化错误分类率。这个模型之后会被用来预测那个未知目标的种类。
人工神经网络ANN(Artificial Neural Networks)是机器学习的一个算法。它是由人类的大脑结构产生的灵感。这个网络由许多节点组成,如同大脑由神经元组成,并且互相之间联系在一起,如同神经元之间通过神经突触和神经树联系在一起。对于每个神经元,都会对其应该传递的信号的情况做特殊规定。通过改变这些连接的强弱,可以使得这些网络计算更加快速。现在神经网络的结构通常由如下部分组成:
神经的输入层(获得目标的描述)
隐藏层(主要部分,在这些层中学习)
输出层(对于每个种类都一个神经节点,分数最高的一个节点就是预测的种类)
在学习过程结束之后,新的物体就能够送入这个网络,并且能够在输出层看到每个种类的分数。
深度学习
在这个系统中,一个神经网络被用来期望在当前游戏状态下每种可能的动作所得到的反馈。下图给出了文章中所提到的神经网络。这个网络能够回答一个问题,比如“如果这么做会变得怎么样?”。网络的输入部分由最新的四幅游戏屏幕图像组成,这样这个网络不仅仅能够看到最后的部分,而且能够看到一些这个游戏是如何变化的。输入被经过三个后继的隐藏层,最终到输出层。
输出层对每个可能的动作都有一个节点,并且这些节点包含了所有动作可能得到的反馈。在其中,会得到最高期望分数的反馈会被用来执行下一步动作。
学习过程
系统通过学习过程来计算最高期望分数。确切地说,在定义了网络的结构之后,剩下唯一会变化的就只有一件事:连接之间的强弱程度。学习过程就是调整这些方式地权重,从而使得通过这个网络的训练样例获得好的反馈。
文章将这个问题当作一个优化问题,目标是获取最好的反馈。可以通过将梯度下降与激励学习方法结合起来解决。这个网络不仅仅需要最大化当前的反馈,还需要考虑到将来的动作。这一点可以通过预测估计下一步的屏幕并且分析解决。用另一种方式讲,可以使用(当前反馈减去预测反馈)作为梯度下降的误差,同时会考虑下一幅图像的预测反馈。