神经网络和深度学习的简史
神经网络如何从最早的人工智能时代发展到现在的故事。
神经网络和深度学习的简史
序幕——深度学习海啸
"深度学习的浪潮拍打着计算语言学的海岸已经好几年了,但2015年似乎是海啸的全部力量冲击主要的自然语言处理(NLP)会议的一年。" -克里斯托弗-D-曼宁博士,2015年12月
这听起来很夸张--说整个研究领域的既定方法很快就被一个新的发现所取代,就像被一场研究 "海啸 "击中一样。但是,这种灾难性的语言适合用来描述深度学习在过去几年中的流星式崛起--这种崛起的特点是对人工智能中最难解决的问题的统治性方法的大幅改进,来自谷歌等行业巨头的大量投资,以及研究出版物(和机器学习研究生)的指数式增长。
我上过几堂关于机器学习的课,甚至在本科生研究中使用过它,我不禁想知道这个新的 "深度学习 "是什么花哨的东西,还是只是80年代末已经开发的 "人工神经网络 "的放大版。让我告诉你,答案是一个相当精彩的故事--这个故事不仅仅是关于神经网络,不仅仅是关于一连串的研究突破,这些突破使深度学习在某种程度上比'大神经网络'更有趣(我将试图以一种几乎任何人都能理解的方式来解释),最重要的是几个不屈不挠的研究人员如何通过黑暗的几十年的放逐,最终赎回神经网络,实现深度学习的梦想。
序幕深度学习海啸
第一部分:开端(20世纪50年代至80年代)
几百年前的机器学习算法
虚假承诺的愚蠢之处
人工智能冬天的解冻
第二部分:神经网络绽放(20世纪80年代-2000年代)
神经网络获得视野
神经网络进入无监督状态
神经网络获得信仰
神经网络做出决定
神经网路变得更古怪
神经网络开始说话
一个新的冬天来临了
第三部分:深度学习(2000-2010年代)
对更多层次的资助
大数据的发展
蛮力的重要性
深度学习的方程式
尾声 深度学习的十年
第一部分:开端(20世纪50年代-80年代)
这是一个跨越半个世纪的故事的开始,关于我们如何学会让计算机学习。在这一部分中,我们将介绍神经网络在1958年以Perceptron诞生,70年代的人工智能寒冬,以及神经网络在1986年以反向传播重新流行。
几个世纪以来的机器学习算法
线性回归
线性回归
让我们先简单介绍一下什么是机器学习。在一个二维图形上取一些点,然后画一条尽可能适合它们的线。你刚才所做的是将输入值(x)和输出值(y)的几对例子概括为一个可以将任何输入值映射到输出值的一般函数。
这就是所谓的线性回归,它是一种奇妙的、有200年历史的小技术,用于从一些输入-输出对中推断出一个一般的函数。这就是为什么拥有这样一种技术是美妙的:有大量的函数难以直接开发方程,但在现实世界中却很容易收集到输入和输出对的例子--例如,将一个口语的录音输入映射到该口语的输出的函数。
线性回归技术对于解决语音识别问题来说有点太弱了,但它所做的基本上就是监督式机器学习的全部内容。在给定的训练实例集上 "学习 "一个函数,每个实例都是该函数的一对输入和输出(我们将在稍后触及无监督的味道)。
特别是,机器学习方法应该推导出一个能够很好地概括不在训练集中的输入的函数,因为这样我们就可以实际地将其应用于我们没有输出的输入。例如,谷歌目前的语音识别技术是由机器学习提供的,它有一个庞大的训练集,但训练集还不如你可能要求你的手机理解的所有可能的语音输入那么大。
这个泛化原则非常重要,几乎总是有一个不属于训练集的测试数据集(更多的输入和输出的例子)。这个独立的数据集可以用来评估机器学习技术的有效性,看该方法在给定输入的情况下,有多少例子能正确计算出输出。
泛化的克星是过度拟合--学习一个对训练集非常有效的函数,但在测试集上却很糟糕。由于机器学习研究人员需要比较其方法的有效性,随着时间的推移,出现了训练集和测试集的标准数据集,可用于评估机器学习算法。
好了好了,定义够了。重点是--我们的画线练习是一个非常简单的有监督的机器学习的例子:点是训练集(X是输入,Y是输出),线是近似函数,我们可以用线来为不符合我们开始的任何点的X值找到Y值。别担心,这段历史的其余部分不会像这些那样干巴巴的。我们来了。
虚假承诺的愚蠢之处
既然这里的主题表面上是神经网络,为什么还要用线性回归来做这个序言?嗯,事实上,线性回归与第一个专门作为机器学习方法而设想的想法有一些相似之处。Frank Rosenblatt的Perceptron。
感知器
显示Perceptron如何工作的图表
作为一名心理学家,罗森布拉特将Percetron设想为我们大脑中的神经元如何运作的简化数学模型:它接受一组二进制输入(附近的神经元),将每个输入乘以一个连续值的权重(与附近每个神经元的突触强度),并对这些加权输入的总和进行阈值处理,如果总和足够大,就输出1,否则就输出0(与神经元发射或不发射的方式一样)。
一个感知器的大部分输入要么是一些数据,要么是另一个感知器的输出,但一个额外的细节是感知器也有一个特殊的 "偏置 "输入,它的值是1,基本上可以确保在相同的输入下有更多的函数可以计算,因为它能够抵消加起来的值。
这种神经元模型建立在沃伦-麦库洛赫和沃尔特-皮茨-麦库洛赫-皮茨的工作之上,他们表明,一个对二进制输入进行求和的神经元模型,如果求和超过一定的阈值,就输出1,否则就输出0,可以模拟基本的OR/AND/NOT函数。在人工智能的早期,这是件大事--当时的主流思想是,让计算机能够进行正式的逻辑推理,基本上就能解决人工智能。
感受器2
另一张图,显示了生物的灵感。激活函数就是人们现在所说的应用于加权输入和的非线性函数,以产生人工神经元的输出--在罗森布拉特的感知器中,该函数只是一个阈值操作。(资料来源)
然而,Mcculoch-Pitts模型缺乏一种学习机制,而这对于它能用于人工智能是至关重要的。这正是感知器的优势所在--罗森布拉特受唐纳德-赫伯的基础性工作启发,想出了一个让这种人工神经元学习的方法。赫伯提出了一个出人意料且影响巨大的观点,即知识和学习在大脑中主要是通过神经元之间突触的形成和变化发生的--简而言之就是赫伯规则。
"当细胞A的轴突足够接近激发细胞B,并反复或持续地参与激发它时,在一个或两个细胞中就会发生一些生长过程或代谢变化,从而使A作为激发B的细胞之一的效率得到提高。"
感知器并没有完全遵循这个想法,但是在输入端设置权重允许一个非常简单和直观的学习方案:给定一个输入-输出例子的训练集,感知器应该从中 "学习 "一个函数,对于每个例子,如果感知器对该例子的输入输出与该例子相比太低,则增加权重,否则,如果输出太高则减少权重。更加正式的说法是,该算法如下。
从具有随机权重和训练集的Perceptron开始
对于训练集中的一个例子的输入,计算感知器的输出。
如果Perceptron的输出与已知的对该例子正确的输出不一致。
如果输出应该是0但却是1,减少输入为1的权重。
如果输出应该是1但却是0,增加输入为1的权重。
转到训练集的下一个例子,重复步骤2-4,直到感知器不再犯错。
这个过程很简单,产生的结果也很简单:一个输入线性函数(加权和),就像线性回归一样,被一个非线性激活函数(和的阈值)"压扁"。当函数只能有一组有限的输出值时,对总和进行阈值处理是很好的(如逻辑函数,在这种情况下只有两个--真/1和假/0),因此,问题不在于为任何一组输入产生一个连续编号的输出--回归--而是用一个正确的标签对输入进行分类--分类。
康奈尔航空实验室的Mark I Perceptron",第一个Perceptron的硬件实现(来源:维基百科/康奈尔图书馆)
罗森布拉特在定制的硬件中实现了感知器的想法(这时花哨的编程语言还没有普遍使用),并表明它可以用来学习对20x20像素的输入进行正确的简单形状分类。就这样,机器学习诞生了--一台计算机被建造出来,它可以根据已知的输入和输出对近似地计算出一个函数。在这种情况下,它学会了一个小玩具函数,但不难设想出有用的应用,如将混乱的人类手写体转换为机器可读的文本。
但是等等,到目前为止,我们只看到了一个感知器是如何学习输出1或0的--这怎么能扩展到对有许多类别的分类任务,比如人类笔迹(其中有许多字母和数字作为类别)的工作?这对一个感知器来说是不可能的,因为它只有一个输出,但是有多个输出的函数可以通过在一个层中有多个感知器来学习,这样所有这些感知器都收到相同的输入,每个感知器负责函数的一个输出。
事实上,神经网络(或正式称为 "人工神经网络"--ANN)只不过是一层层的Perceptrons--或神经元,或单元,正如它们今天通常所称--在这个阶段,只有一层--输出层。因此,神经网络使用的一个原型例子是对手写数字的图像进行分类。输入是图像的像素,有10个输出神经元,每个神经元对应10个可能的数字值中的一个。在这种情况下,10个神经元中只有一个输出1,最高的加权和被认为是正确的输出,其余的都输出0。
带有输出层的神经网。
一个有多个输出的神经网。
也有可能设想出与Perceptron不同的人工神经元的神经网。例如,阈值激活函数不是严格必要的;Bernard Widrow和Tedd Hoff很快在1960年用 "一个使用化学 "记忆体 "的自适应 "ADALINE "神经元 "探索了只输出权重输入的选项,并展示了这些 "自适应线性神经元 "是如何被纳入带有 "记忆体 "的电路中的--有记忆的电阻。
他们还表明,没有阈值激活函数在数学上是很好的,因为神经元的学习机制可以通过良好的微积分在形式上基于最小化误差。你看,由于神经元的功能没有因为从0到1的急剧阈值跳跃而变得奇怪,当每个权重改变时,对误差变化程度的测量(导数)可以用来降低误差并找到最佳权重值。正如我们将看到的,使用训练误差与每个权重的导数来寻找正确的权重,正是至今为止神经网络的典型训练方式。
如果我们对ADALINE多做一些思考,我们会有进一步的认识:为一些输入寻找一组权重实际上只是一种线性回归的形式。而且,和线性回归一样,这也不足以解决语音识别或计算机视觉的复杂人工智能问题。麦卡洛、皮茨和罗森布拉特真正兴奋的是连接主义的广泛理念:由这种简单的计算单元组成的网络可以强大得多,可以解决人工智能的困难问题。而且,罗森布拉特也是这么说的,就像当时《纽约时报》上这段坦率可笑的引文一样。
"海军今天揭示了一种电子计算机的胚胎,它期望能够走路、说话、看东西、写字、自我复制和意识到自己的存在......水牛城康奈尔航空实验室的研究心理学家弗兰克-罗森布拉特博士说,Perceptrons可能会作为机械太空探险家被发射到行星上"
或者,看一下当时的这个电视片断。
这段视频中承诺的东西--仍然没有真正出现。
这种谈话无疑激怒了人工智能的其他研究人员,他们中的许多人正专注于基于操纵符号的方法,这些符号有具体的规则,遵循逻辑的数学规律。麻省理工学院人工智能实验室的创始人马文-明斯基(Marvin Minsky)和当时的实验室主任西摩-帕珀特(Seymour Papert)是一些对炒作持怀疑态度的研究人员,他们在1969年以严格分析Perceptrons的局限性的形式在一本名为Perceptrons的开创性著作中发表了他们的怀疑态度。
有趣的是,Minksy实际上可能是第一个用1951年的SNARC(随机神经模拟强化计算器)实现硬件神经网的研究者,这比Rosenblatt的工作早了很多年。但是,他在这个系统上的工作没有任何痕迹,而《感知器》中的分析的关键性质表明,他认为这种人工智能的方法是一个死胡同。
这个分析中最广泛讨论的内容是阐明了感知器的局限性--例如,它们不能学习简单的布尔函数XOR,因为它不是线性可分离的。虽然这里的历史很模糊,但人们普遍认为这篇论文帮助迎来了第一个人工智能寒冬--在人工智能的大规模炒作浪潮之后的一个时期,其特点是幻想破灭,导致资金和出版物冻结。
感知器的局限性的可视化。在输入X,Y上找到一个线性函数来正确输出 "+"或"-",相当于在这个二维图上画一条线,把所有 "+"的情况和"-"的情况分开;显然,对于第三种情况,这是不可能的。
人工智能冬天的解冻
所以,对于神经网络来说,事情并不乐观。但为什么呢?毕竟,我们的想法是结合一堆简单的数学神经元来做复杂的事情,而不是使用单一的神经元。换句话说,不是只有一个输出层,而是向任意多的神经元发送输入,这些神经元被称为隐藏层,因为它们的输出作为另一个隐藏层或输出层神经元的输入。只有输出层的输出被 "看到"--它是神经网的答案--但所有由隐藏层完成的中间计算可以解决比单层复杂得多的问题。
隐蔽层
有两个隐藏层的神经网(优秀来源)
隐藏层之所以好,从根本上说,是隐藏层可以在数据中找到特征,并允许下面的层在这些特征上操作,而不是在嘈杂和庞大的原始数据上。例如,在非常常见的在图像中寻找人脸的神经网络任务中,第一个隐藏层可以接收原始像素值,并在图像中找到线、圆、椭圆等。下一层将接收这些线、圆、椭圆等在图像中的位置,并利用这些来寻找人脸的位置--这就更容易了!
人们基本上都明白这一点。而人们,基本上都明白这一点。事实上,直到最近,机器学习技术通常不直接应用于原始数据输入,如图像或音频。相反,机器学习是在数据经过特征提取后进行的--也就是说,为了使学习更容易,机器学习是在预处理的数据上进行的,从这些数据中已经提取了更多有用的特征,如角度或形状。
特征提取
传统手工特征提取的可视化
因此,需要注意的是,Minsky和Papert对Perceptrons
的分析并不只是表明用单个Perceptron
计算XOR
是不可能的,而是特别认为必须用多层Perceptrons--也就是我们现在所说的多层神经网络--来完成,而Rosenblatt的学习算法对多层是不起作用的。这就是真正的问题所在:之前为Perceptron
概述的简单学习规则对多层不起作用。为了了解原因,让我们重申一下单层感知器是如何学习计算一些函数的。
等于函数输出数量的Perceptrons的数量将以小的初始权重开始。
对于训练集中一个例子的输入,计算Perceptrons的输出
对于每个感知器,如果输出与例子的输出不一致,相应地调整权重
转到训练集中的下一个例子,重复步骤2-4,直到感知器不再犯错。
这样做对多层不起作用的原因应该是很直观的:例子只指定了最后输出层的正确输出,那么我们到底应该如何知道如何调整之前各层的Perceptrons的权重?答案,尽管需要一些时间来推导,但事实证明,它再次基于古老的微积分:连锁规则。
关键的认识是,如果神经网的神经元不完全是Perceptrons
,而是用一个激活函数来计算输出,这个激活函数仍然是非线性的,但也是可微的,就像Adaline那样,不仅可以用导数来调整权重,使误差最小化,而且链规也可以用来计算前一层所有神经元的导数,从而也可以知道调整其权重的方法。
或者,更简单地说:我们可以用微积分将输出层中任何训练集错误的部分责任分配给前一个隐藏层中的每个神经元,然后我们可以进一步分担责任,如果还有另一个隐藏层,以此类推--我们反向传播错误。就这样,我们可以发现,如果我们改变神经网中的任何权重,包括隐藏层中的权重,误差会有多大的变化,并使用优化技术(很长一段时间,通常是随机梯度下降)来寻找最佳权重,使误差最小。
逆向传播
反向传播的基本思想。(来源)
Backpropagation
是由多个研究人员在60年代早期得出的,并且早在1970年就由Seppo Linnainmaa实现了在计算机上的运行,但Paul Werbos在1974年的博士论文中深入分析后,在美国首先提出它可以用于神经网络。有趣的是,就像感知器一样,他的灵感松散地来自于对人类思维的建模工作,在这种情况下,正如他自己所叙述的,是弗洛伊德的心理学理论。
"1968年,我提议我们以某种方式模仿弗洛伊德的概念,即信用分配的逆向流动,从神经元流回神经元......我用直觉和例子以及普通的连锁规则的组合来解释逆向计算,尽管这也正是弗洛伊德以前在其心理动力学理论中提出的东西在数学中的转化!"
尽管解决了多层神经网如何训练的问题,并在撰写博士论文时看到了这个问题,但由于人工智能寒冬的影响,韦尔博斯直到1982年才发表了关于Backprop在神经网中的应用。事实上,Werbos认为这种方法对于解决Perceptrons中指出的问题是有意义的,但整个社区对解决这些问题失去了信心。
"明斯基的书最有名的是认为(1)我们需要使用MLP[多层感知器,多层神经网络的另一个术语],即使是代表简单的非线性函数,如XOR映射;(2)地球上没有人找到一个可行的方法来训练MLP,足以学习这样的简单函数。明斯基的书使世界上大多数人相信,神经网络是一个没有信誉的死胡同--最糟糕的一种异端。
Widrow强调,这种悲观主义压制了早期的 "感知器 "人工智能学派,不应该真正归咎于明斯基。明斯基只是总结了数百名真诚的研究人员的经验,他们试图找到训练MLP的好方法,但无济于事。曾经有一些希望之岛,比如罗森布拉特称之为 "反向传播 "的算法(与我们现在所说的反向传播完全不同!),以及阿玛里的简短建议,即我们可以考虑将最小二乘法[简单线性回归的基础]作为训练神经网络的一种方法(没有讨论如何获得导数,并警告说他对这种方法不抱太大期望)。
但当时的悲观情绪变成了终结。1970年代初,我确实在麻省理工学院拜访了明斯基。我提议我们做一篇联合论文,说明MLP事实上可以克服早期的问题......但明斯基不感兴趣(14)。事实上,在麻省理工学院或哈佛大学或我能找到的任何地方,当时都没有人感兴趣"。
似乎正是由于这种学术兴趣的缺乏,直到十多年后的1986年,这种方法才在David Rumelhart、Geoffrey Hinton和Ronald Williams的《通过反向传播错误学习表征》中得到推广。尽管有很多人发现了这一方法(该论文甚至明确提到David Parker和Yann LeCun是事先发现这一方法的两个人),但1986年的出版物因其对这一想法的简明扼要的阐述而脱颖而出。事实上,作为一个机器学习的学生,很容易发现他们论文中的描述与教科书和人工智能课程中解释这一概念的方式基本相同。IEEE上的一篇回顾文章也呼应了这一概念。
"不幸的是,Werbos的工作在科学界几乎无人知晓。1982年,帕克重新发现了这项技术[39],并于1985年在M.I.T.发表了一份关于这项技术的报告[40]。在帕克发表他的发现后不久,鲁梅尔哈特、辛顿和威廉姆斯[41]、[42]也重新发现了这项技术,而且主要是由于他们在其中提出了清晰的框架,他们最终成功地使这项技术广为人知"。
但这三位作者不仅仅是提出了这种新的学习算法,还走得更远。同年,他们发表了更深入的《通过误差传播学习内部表征》,专门解决明斯基在《感知器》中讨论的问题。虽然这个想法是由过去的人设想出来的,但正是1986年的这个表述,使人们广泛了解到多层神经网络如何被训练来解决复杂的学习问题。就这样,神经网络又回来了! 接下来,我们将看到仅仅几年后,反向传播和 "通过误差传播学习内部表征 "中讨论的其他一些技巧是如何被应用到一个非常重要的问题上的:使计算机能够阅读人类的手稿。
第二部分:神经网络开花结果(20世纪80年代-2000年代)
神经网络获得视觉
LeNet
Yann LeCun演示的LeNet(来源)
随着训练多层神经网络的秘密被揭开,这个话题再次变得炙手可热,Rosenblatt的崇高野心似乎也可以实现了。直到1989年,另一个关键的发现才被发表,现在已经被教科书和讲座所普遍引用。"多层前馈网络是通用的近似器"。从本质上讲,它从数学上证明了多层神经网络在理论上可以实现任何功能,当然还有XOR。
但是,这是数学,你可以想象有无尽的内存和计算能力,如果需要的话--反向传播允许神经网络在现实世界中用于任何东西吗?
哦,是的。同样在1989年,AT&T贝尔实验室的Yann LeCun等人在 "Backpropagation Applied to Handwritten Zip Code Recognition "中展示了Backpropagation的一个非常重要的现实世界应用。
你可能认为计算机能够正确地理解手写数字是相当不令人印象深刻的,而且现在它确实是相当古怪的,但是在该出版物发表之前,我们人类的混乱和不一致的涂鸦证明了对计算机的更整洁的头脑的重大挑战。该出版物使用了美国邮政局的一个大型数据集,表明神经网络完全有能力完成这项任务。更重要的是,它首次强调了对神经网络进行关键修改的实际需要,超越了普通的反向传播,走向现代深度学习。
"视觉模式识别的经典工作已经证明了提取局部特征并将其结合起来形成高阶特征的优势。通过强迫隐藏单元只结合局部信息源,这种知识可以很容易地建立在网络中。一个物体的独特特征可能出现在输入图像的不同位置。
因此,有一组特征检测器可以在输入位置的任何地方检测到一个特定的特征实例,这似乎是明智的。由于特征的精确位置与分类无关,我们可以承受在这个过程中损失一些位置信息。尽管如此,必须保留近似的位置信息,以允许下一级检测更高阶、更复杂的特征(Fukushima 1980;Mozer 1987)"。
CNN
这个神经网的工作原理的可视化。(资料来源)
或者,更具体地说:神经网络的第一个隐藏层是卷积的--而不是每个神经元对输入图像的每个像素都有不同的权重(40x60=2400个权重),神经元只有一小套权重(5x5=25),这些权重被应用于相同大小的图像的一大堆小子集。因此,举例来说,与其让4个不同的神经元学习检测输入图像的4个角的45度线,
不如让一个神经元学习检测图像子集的45度线,并在其中各处进行检测。第一层之后的各层也以类似的方式工作,但吸收了前一个隐藏层中发现的 "局部 "特征,而不是像素图像,因此 "看到 "图像的更大部分,因为它们结合了图像中越来越大的子集信息。最后,最后两层是普通的神经网层,使用卷积层产生的高阶大特征来确定输入图像对应的数字。这篇1989年的论文中提出的方法后来成为国家部署的支票阅读系统的基础,正如LeCun在这段视频中所展示的。
这一点之所以有帮助,即使在数学上不是很清楚,也是很直观的:如果没有这样的约束,网络将不得不为图像的每一部分学习同样简单的东西(如检测45度线、小圆圈等)一大堆时间。但有了这个约束,只有一个神经元需要学习每个简单的特征--而且总体上权重要少得多,它可以做得更快 此外,由于这种特征的像素精确位置并不重要,神经元在应用权重时基本上可以跳过图像的相邻子集--子采样,现在被称为池化的一种类型--从而进一步减少训练时间。增加这两种类型的层--卷积层和池化层--是卷积神经网络(CNNs/ConvNets)与普通神经网络的主要区别。
CNN 2
一个漂亮的CNN操作的可视化图(来源)
当时,卷积思想被称为 "权重共享",实际上在1986年Rumelhart、Hinton和Williams对反向传播的扩展分析中已经讨论过。实际上,功劳甚至可以追溯到更早--Minsky和Papert在1969年对Perceptrons的分析足够透彻,提出了一个激发这个想法的问题。但是,和以前一样,其他人也独立探索了这个概念--即福岛邦彦在1980年提出的神经认知器的概念。而且,和以前一样,它背后的想法从对大脑的研究中获得了灵感。
"根据Hubel和Wiesel的层次模型,视觉皮层的神经网络有一个层次结构。LGB(外侧膝状体)->简单细胞->复杂细胞->低阶超复杂细胞->高阶超复杂细胞。还有人认为,低阶超复杂细胞和高阶超复杂细胞之间的神经网络具有类似于简单细胞和复杂细胞之间网络的结构。
在这个层次中,处于较高阶段的细胞一般都有对刺激模式的更复杂特征作出选择性反应的倾向,同时,它有较大的感受野,对刺激模式的位置移动更不敏感。......因此,在我们的模型中引入了一个类似于层次结构模型的结构"。
LeCun在贝尔实验室继续成为CNN的主要支持者,他在CNN方面的工作导致了90年代中期支票阅读的主要商业用途--他的谈话和采访中经常包括这样一个事实:"在90年代末的某个时候,这些系统之一正在阅读美国所有支票的10%到20%。"
神经网络的无监督化
将阅读支票这一枯燥无味的任务自动化,是机器学习可用于的一个很好的例子。也许是一个不太容易预测的应用?压缩。当然,意思是找到一些数据的较小的表示,从中可以重建原始数据。
当学习算法能够在数据中找到原始方法所遗漏的特征时,学习型压缩可能会很好地超越原始压缩方案。而且,这很容易做到--只需训练一个带有小隐层的神经网,只需输出输入。
自动编码
一个自动编码器的神经网。(来源)
这是一个自动编码器神经网,是一种学习压缩的方法--有效地将数据翻译(编码)为一种紧凑的格式并返回到自身(自动)。看,输出层计算其输出,理想情况下与神经网的输入相同,只使用隐藏层的输出。由于隐藏层的输出比输入层少,隐藏层的输出是输入数据的压缩表示,可以用输出层重建。
RBM
一个更明确的自动编码器的压缩视图。(资料来源)
注意到这里的一个整洁的东西:我们训练时唯一需要的是一些输入数据。这与监督式机器学习的要求不同,监督式机器学习需要一组输入-输出对(标记数据)的训练,以便近似一个能从这些输入计算出这些输出的函数。
事实上,自动编码器不是监督学习的一种形式;它们是无监督学习的一种形式,它只需要一组输入数据(未标记的数据),以便在这些数据中找到一些隐藏结构。换句话说,无监督学习并不近似于一个函数,而是从输入数据中推导出一个对该数据有用的表示。在这种情况下,这个表征只是一个较小的表征,从中仍然可以重建原始数据,但它也可以用于寻找类似数据的群体(聚类)或其他潜在变量的推断(已知数据存在的某些方面,但其价值是未知的)。
聚类,来自良好的公共领域的维基百科
聚类,一个非常常见的无监督学习应用。(资料来源)
在发现反向传播之前和之后,还有其他一些神经网络的无监督应用被探索,最值得一提的是自组织图(Self Organizing Maps)和自适应共振理论(Adapative Resonance Theory),前者能在不被告知正确分类的情况下学习对任意输入的数据进行分类,后者则能产生低维度的数据表示。
如果你想一想,很直观的是,可以从无标签的数据中学习到相当多的东西。假设你有一个数据集,其中有一堆手写数字的图像,但没有标明每个图像对应的数字。那么,在这个数据集中,带有某个数字的图像很可能与带有该数字的所有其他图像最相似,因此尽管计算机可能不知道所有这些图像对应的数字,但它仍然能够发现它们都对应于同一个数字。
这一点,即模式识别,确实是大多数机器学习的全部内容,也可以说是人类大脑伟大力量的基础。但是,让我们不要偏离我们令人兴奋的深度学习之旅,回到自动编码器。
SOM
自组织图--将大量的输入矢量映射到神经元输出的网格中,每个输出都是一个集群。附近的神经元代表相似的集群。(资料来源)
和分权一样,自动编码器的想法最早是在上述1986年对反向传播17的广泛分析中讨论的,和分权一样,它在随后几年的更多研究中再次出现,包括Hinton本人。
这篇标题为 "自动编码器、最小描述长度和Helmholts自由能 "的论文认为,"无监督学习的一个自然方法是使用一个定义了可观察向量上的概率分布的模型",并使用一个神经网来学习这样一个模型。因此,这里有另一件你可以用神经网做的整洁的事情:近似的概率分布。
神经网络获得信仰
事实上,在成为1986年关于反向传播学习算法的开创性论文的共同作者之前,Hinton在1985年的《玻尔兹曼机的学习算法》中研究了学习概率分布的神经网方法。
玻尔兹曼机是与神经网一样的网络,其单元与Perceptrons非常相似,但网络中的每个单元不是根据输入和权重来计算输出,而是根据连接单元和权重的值来计算其值为1或0的概率。
因此,这些单元是随机的--它们根据概率分布行事,而不是以一种已知的确定性方式行事。玻尔兹曼部分指的是一种概率分布,它与基于粒子能量和该系统的热力学温度的系统中的粒子状态有关。
这个分布不仅定义了玻尔兹曼机的数学,而且还定义了解释--网络中的单元本身有能量和状态,学习是通过最小化系统的能量来完成的--这是从热力学中得到的直接启发。虽然有点不直观,但这种基于能量的解释实际上只是基于能量的模型的一个例子,而且符合基于能量的学习理论框架,许多学习算法都可以用它来表达。
简单的贝叶斯网络
一个简单的信念或贝叶斯网络--玻尔兹曼机基本上就是这样,但有无定向/对称连接和可训练的权重,以特定方式学习概率。(来源)
回到玻尔兹曼机。当这些单元被组合成一个网络时,它们形成了一个图,因此是数据的图形模型。从本质上讲,它们可以做一些与普通神经网络非常相似的事情:一些隐藏单元计算一些隐藏变量的概率(输出--数据的分类或特征),给定代表可见变量(输入--图像的像素、文本的字符等)的可见单元的已知值。在我们对数字图像进行分类的经典例子中,隐藏变量是实际的数字值,而可见变量是图像的像素;给定一个数字 "1 "的图像作为输入,可见单元的值是已知的,对代表 "1 "的图像的概率进行建模的隐藏单元应该有一个高的输出概率。
玻尔兹曼机的一个例子
一个玻尔兹曼机的例子。每一行都有一个相关的权重,就像神经网一样。注意这里没有层--所有东西都可以与所有东西相连。我们稍后会讨论这个神经网的变体......
因此,对于分类任务,现在有一种很好的方法来计算每个类别的概率。这非常类似于实际计算普通分类神经网的输出值,但这些神经网还有一个巧妙的技巧:它们可以生成看起来很合理的输入数据。这是由所涉及的概率方程决定的--网络不仅学习了在已知可见变量值的情况下隐藏变量值的概率,而且还学习了该概率的倒数--在已知隐藏值的情况下可见概率。
因此,如果我们想生成一个 "1 "的数字图像,与像素变量相对应的单元有已知的输出1的概率,图像就能以概率方式生成;这些网络是生成式图形模型。虽然可以用与普通神经网络非常相似的目标进行监督学习,但学习一个好的生成模型的无监督学习任务--以概率方式学习一些数据的隐藏结构--通常是这些网络的用途。这方面的大部分内容其实并不新颖,但所提出的学习算法和使其成为可能的特定表述是新颖的,正如论文本身所述。
"也许玻尔兹曼机配方最有趣的方面是,它导致了一种与领域无关的学习算法,该算法修改了单元之间的连接强度,从而使整个网络发展出一个内部模型,以捕捉其环境的基本结构。在寻找这种算法的过程中,有很长一段时间是失败的(Newell, 1982),现在很多人(尤其是人工智能领域)认为不存在这种算法。"
在不深入研究该算法的全部细节的情况下,这里有一些亮点:它是最大可能性算法的一个变种,这简单地意味着它寻求使网络的可见单元值与它们的已知正确值相匹配的概率最大化。
同时计算每个单元的实际最可能值,结果发现计算成本太高,所以在训练中,吉布斯抽样(Gibbs Sampling)--用随机的单元值启动网络,并根据它们的连接值迭代地将值重新分配给单元--被用来提供一些实际的已知值。
当使用训练集学习时,可见单元只是被设置为具有当前训练实例的值,所以抽样是为了获得隐藏单元的值。一旦一些 "真实 "的值被取样,我们就可以做一些类似于反向传播的事情--为每个权重取一个导数,看看我们可以如何改变,以增加网络做正确事情的概率。
与神经网络一样,该算法既可以在监督下进行(隐藏单元的已知值),也可以在无监督的情况下进行。尽管该算法被证明是可行的(特别是与自动编码器神经网络解决的 "编码 "问题相同),但很快就发现它的效果并不好--雷德福-M-尼尔1992年的《信念网络的连接主义学习》证明了需要一种更快的方法,他说。"如果不是因为它的学习过程通常被认为是缓慢的,这些能力将使玻尔兹曼机在许多应用中具有吸引力"。
于是尼尔在信念网中引入了一个类似的想法,信念网本质上就像一个带有定向、前向连接的玻尔兹曼机(所以又有了层,就像我们之前看到的神经网一样,而且与上面的玻尔兹曼机图片不同)。
在不涉及概率数学的情况下,这种变化允许用更快的学习算法来训练网路。我们实际上看到了一个 "信念网",上面有洒水车和雨的变量,选择这个术语正是因为这种基于概率的建模与数学领域的概率思想有密切的关系,此外,它还与机器学习领域有联系。
信念网
对信念网的解释(资料来源)
虽然这种方法比玻尔兹曼机有进步,但还是太慢了--正确推导变量之间的概率关系的数学方法,如果没有一些简化的技巧,通常需要大量的计算。因此,辛顿与尼尔和其他两位合著者,很快在1995年的 "无监督神经网络的唤醒-睡眠算法 "中想出了额外的技巧。
这些技巧需要一个稍微不同的信念网设置,现在被认为是 "亥姆霍兹机"。撇开细节不谈,关键的想法是要有单独的权重集,用于从可见变量(识别权重)推断隐藏变量,反之亦然(生成权重),并保持尼尔的信念网的定向方面。这使得训练可以更快地完成,同时适用于玻尔兹曼机的无监督和有监督的学习问题。
最后,信念网可以在一定程度上被快速训练! 虽然没有那么大的影响力,但这一算法上的进步对于信念网的无监督训练来说是一个足够大的进步,以至于它可以被看作是现在几乎十年前关于反向传播的出版物的一个补充。
但是,此时新的机器学习方法也开始出现,人们又开始对神经网络持怀疑态度,因为它们似乎是基于直觉的,而且计算机还只能勉强满足其计算需求。我们很快就会看到,神经网络的一个新的人工智能冬天就在几年后开始了......
神经网络做出决定
在发现了神经网络在无监督学习中的应用之后,让我们也快速看看它们是如何被用于机器学习的第三个分支:强化学习。这个分支需要最数学化的符号来正式解释,但也有一个非常容易非正式描述的目标:学习做出好的决定。给定一些理论上的代理(例如一个小软件程序),我们的想法是使该代理能够根据其当前的状态决定行动,每一个行动都会得到一些奖励,并打算在长期内获得最大的效用。
因此,监督学习告诉学习算法它应该准确地学习输出什么,而强化学习则提供 "奖励 "作为随着时间的推移做出良好决定的副产品,并不直接告诉算法应该选择什么样的正确决定。从一开始,它就是一个非常抽象的决策模型--有有限数量的状态,以及一组已知的行动,每个状态都有已知的奖励。这使得它很容易写出非常优雅的方程式来寻找最佳行动集,但很难应用于实际问题--具有连续状态或难以定义的奖励的问题。
RL
强化学习。(资料来源)
这就是神经网络的作用。一般来说,机器学习,尤其是神经网络,擅长处理混乱的连续数据,或通过从实例中学习来处理难以定义的函数。虽然分类是神经网络的面包和黄油,但它们的通用性足以对许多类型的问题有用--例如,伯纳德-维德罗和特德-霍夫的阿达林的后代被用于电路背景下的自适应过滤器。
因此,在反向传播引起的研究热潮之后,人们很快就设计出了利用神经网络的力量来进行强化学习的方法。这方面的早期例子之一是解决一个简单而经典的问题:在移动平台上平衡一根棍子,被各地控制课的学生称为倒立摆问题。
摆
双摆控制问题--是单摆版本的升级版,单摆是一个经典的控制和强化学习任务。(来源)
与自适应滤波一样,这项研究与电子工程领域密切相关,在神经网络到来之前的几十年里,控制理论一直是该领域的一个主要分支。尽管该领域已经想出了通过直接分析来处理许多问题的方法,但有一种通过学习来处理更复杂情况的方法被证明是有用的,1990年 "使用神经网络识别和控制动态系统 "一文被引用了7000次(!)就是证明。也许可以预见的是,在机器学习之外,还有另一个领域的神经网络也很有用--机器人学。早期神经网络用于机器人的一个主要例子是来自CMU的NavLab,1989年的 "Alvinn。一个神经网络中的自主陆地车辆"。
正如论文中所讨论的,该系统中的神经网络通过朴素的监督学习,使用人类驾驶时记录的传感器和转向数据来学习控制车辆。此外,还有专门使用强化学习的机器人教学研究,如1993年的博士论文《使用神经网络的机器人强化学习》就是一个例子。该论文显示,机器人可以在合理的时间内学会诸如跟墙和过门等行为,考虑到之前的倒立摆工作需要不切实际的训练时间,这是件好事。
这些在其他领域的不同应用当然很酷,但当然,关于强化学习和神经网络的最多研究发生在人工智能和机器学习中。在这里,强化学习历史上最重要的成果之一得以实现:一个神经网络学会了成为世界级的双陆棋手。
被称为TD-Gammon
的神经网络是用标准的强化学习算法训练的,是强化学习能够在相对复杂的任务上胜过人类的首批示范之一。特别是强化学习的方法在这里起了作用,因为同样的研究表明,只使用神经网络而不使用强化学习,效果并不理想。
TDGammon
学习玩专家级西洋双陆棋的神经网络。(资料图)
但是,正如我们以前所看到的那样,在人工智能领域也将再次发生,研究陷入了死胡同。Sebastian Thrun在1995年的 "学习下棋 "中研究了使用TD-Gammon方法解决的可预见的下一个问题,结果并不理想。尽管神经网络学会了像样的游戏,当然比完全的游戏新手要好,但它仍然比以前实施的标准计算机程序(GNU-Chess)差得多。对于人工智能的另一个常年挑战,围棋也是如此。看,TD-Gammon有点作弊--它学会了很好地评估位置,因此可以不对未来的多步棋进行任何 "搜索",而只是选择导致下一个最佳位置的那一步。
但在国际象棋或围棋中,同样的情况根本不可能发生,这些游戏对人工智能来说是一个挑战,正是因为需要提前看很多步,而且有很多可能的步法组合。此外,即使算法更聪明,当时的硬件也无法完成任务--Thrun报告说:"NeuroChess做得很差,因为它把大部分时间花在计算棋盘的评估上。
计算一个大的神经网络函数比评估一个优化的线性评估函数(如GNU-Chess)要长两个数量级"。相对于神经网络的需求,当时计算机的弱点是一个非常现实的问题,而且我们将看到这不是唯一的问题...
神经网络变得古怪
尽管无监督学习和强化学习很好,但我认为监督学习仍然是我最喜欢的神经网络的使用案例。当然,学习数据的概率模型是很酷的,但对于反向传播所解决的各种具体问题来说,它更容易让人兴奋。我们已经看到Yann Lecun如何实现了相当好的手写文本识别(这项技术后来在全国范围内被用于支票阅读,以及稍后的更多......),但同时还有另一项明显且非常重要的任务正在进行:理解人类的语音。
与写作一样,理解人类的语言是相当困难的,因为同一个词的说话方式实际上有无限的变化。但是,这里有一个额外的挑战:长序列的输入。看,对于图像来说,从图像中裁剪出一个字母并让神经网络告诉你这是哪个字母,输入->输出的方式是相当简单的。但对于音频来说,这就不那么简单了--将语音分离成字符是完全不切实际的,甚至在语音中寻找单个单词也不那么简单。
另外,如果你考虑一下人类的讲话,一般来说,在上下文中听到的词语比分开的词语更容易理解。虽然这种结构在处理图像等事物时效果很好,是输入->输出式的,但它完全不适合处理长的信息流,如音频或文本。神经网络没有 "记忆",一个输入可以影响随后处理的另一个输入,但这正是我们人类处理音频或文本的方式--一串单词或声音的输入,而不是单一的大型输入。重点是:为了解决理解语音的问题,研究人员试图修改神经网络,以处理语音中的输入流,而不是像图像那样的一批输入。
由Alexander Waibel等人(包括Hinton)提出的一种方法,在1989年的 "使用延时神经网络进行音素识别 "中被介绍。这些延时神经网络(TDNN)与普通的神经网络非常相似,只是每个神经元只处理输入的一个子集,并对输入数据的不同延时有几组权重。换句话说,对于一连串的音频输入,一个 "移动窗口 "的音频被输入到网络中,随着窗口的移动,相同的音频位被每个神经元处理,并根据音频位在窗口中的位置设置不同的权重。这一点最好通过一个快速插图来理解。
TDNN
时间延迟神经网络。(资料来源)
从某种意义上说,这与CNN所做的很相似--每个单元不是一次看整个输入,而是一次只看输入的一个子集,对每个小子集做同样的计算。这里的主要区别是,在CNN中没有时间概念,每个神经元的输入 "窗口 "总是在整个输入图像中移动以计算结果,而在TDNN中,实际上有数据的顺序输入和输出。有趣的是:根据Hinton的说法,TDNN的想法是启发LeCun开发卷积神经网络的原因。但是,有趣的是,CNN在图像处理中变得至关重要,而在语音识别中,TDNNs已经被另一种方法所超越--循环神经网(RNNs)。看,到目前为止讨论的所有网络都是前馈网络,这意味着某一层的神经元的输出只作为下一层的神经元的输入。但是,这并不一定是这样的--没有任何东西禁止我们勇敢的计算机科学家将最后一层的输出作为第一层的输入,或者只是将一个神经元的输出连接到自身。通过让网络的输出 "循环 "回到网络中,让网络对过去的输入有记忆的问题得到了很好的解决!
循环神经网络
循环神经网的图示。还记得之前的玻尔兹曼机吗?惊喜吧! 那些是递归神经网络。(资料来源)
好吧,这并不十分简单。注意到这个问题--如果反向传播依赖于从输出层向后 "传播 "错误,那么如果第一层连接到输出层,事情该如何进行?错误会继续从第一层向后传播到输出层,并且可以无限地在网络中循环下去。由多个小组独立得出的解决方案是通过时间进行反向传播。基本上,这个想法是通过将神经网络的每个循环视为另一个神经网络的输入来 "解开 "递归神经网络,并且只循环有限的次数。
来自维基百科的公共领域图片的神奇之处
精彩直观的通过时间的反向传播概念。(资料来源)
这个相当简单的想法实际上是可行的--训练循环神经网络是可能的。事实上,多人探索了RNNs在语音识别中的应用。但是,这里有一个转折,你现在应该能够预测到:这种方法的效果并不理想。为了找出原因,让我们来见见另一位现代深度学习的巨人。约书亚-本吉奥。1986年左右,他开始用神经网络进行语音识别工作,共同撰写了许多关于使用ANN和RNN进行语音识别的论文,并最终在AT&T贝尔实验室研究这个问题,当时Yann LeCun正在那里研究CNNs。事实上,在1995年,他们共同撰写了总结性论文 "用于图像、语音和时间序列的卷积网络",这是他们之间许多合作中的第一次。但是,在此之前,Bengio写了1993年的 "语音识别的连接主义方法"。在这里,他总结了有效教授RNN的普遍失败。
"尽管递归网络在许多情况下可以胜过静态网络,但它们似乎更难进行优化训练。我们的实验倾向于表明,它们的参数沉淀在一个次优的解决方案中,它考虑到了短期的依赖关系,但没有考虑到长期的依赖关系。例如,在(ctation)中描述的实验中,我们发现递归网络根本没有捕捉到音素的简单时间限制。......虽然这是一个负面的结果,但对这个问题的更好理解可以帮助设计替代系统,以学习将输入序列映射到具有长期依赖性的输出序列,例如学习有限状态机、语法和其他语言相关任务。由于基于梯度的方法似乎不足以解决这种问题,我们想考虑其他的优化方法,即使在准则函数不平滑的情况下也能得到可接受的结果。"
神经网路开始说话
谈到Bengio,他在神经网络方面的贡献远远超出了CNN和RNN的工作范围。特别是,如果不介绍他在2003年发表的开创性论文《一个神经概率语言模型》,这段历史就不完整了。正如标题所暗示的那样,这项工作与使用神经网络进行语言建模有关--这是自然语言处理领域的一项基本任务,归结起来就是预测什么是看到一些词,并预测接下来会出现什么词(本质上,自动完成的工作)。
这项任务已经被研究了很久,经典的方法主要是计算单个词和各种词的组合(又称n-grams)在一堆文本中出现的频率,然后用这些计数来估计任何给定的词成为下一个词的概率。
语言建模
精彩直观的通过时间的反向传播概念。(资料来源)
虽然这种方法非常成功,但它也有内在的局限性,因为它需要看到一个词或一个词的组合来预测它将出现的地方,而人类语言有大量的词,这些词的组合数量是指数级的。相比之下,我们人类对语言的推理不仅仅是我们所看到的,还有我们对每个词的含义的了解;如果我们只看到 "我有一只宠物狗",然后了解到存在 "猫 "这样的词,它也是一种常见的宠物,我们就会毫不费力地想象 "我有一只宠物猫 "是某人可能会说的东西。
那么,我们如何让计算机理解不同词汇的相似性?毕竟,词语的含义是相当微妙的,因此,像比较词语的定义中的哪些词语这样简单的事情,不可能有好的效果。那么,事实证明,意义的微妙性可以很好地体现在一种格式上,这种格式也很容易评估相似性:数字列表。正如二维空间中的任何(x,y)点与该空间中的任何其他点的距离都是已知的,100D空间中的任何点与所有其他点的距离也是已知的,可以说近的点更相似,远的点更不相似。因此,如果我们能把每个词都映射到多维空间中的一个适当的点上,这样类似的词就会被映射到附近的点上,这对于语言建模应该是相当有用的。Hinrich Schütze在他1993年的论文 "Word Space "中介绍了这一想法,他在论文中展示了如何通过对短语共现次数的矩阵处理来计算 "Word Vectors",从而能够为任何特定的查询词找到最相似的词。
词向量
使用词向量来寻找一些查询词的最相似的词。(来源)
那么,神经网络是如何进入这个画面的呢?嗯,有很多方法可以获得词向量,上述论文的方法只是其中之一。如果你把单词向量作为神经网络的输入,而这个神经网络经过优化,可以正确地进行语言建模,那会怎么样呢?然后,与单词相关的向量和整个神经网络正确进行语言建模的能力都可以通过适当的误差函数的反向传播来共同优化。这就是我们回到 "神经概率语言模型 "的地方,因为这就是该论文所描述的内容。
词素
本文中用于语言建模的神经网的图示。(资料来源)
这篇论文现在被大量引用,但就像我们在上面看到的其他东西一样,词向量和神经网络对语言建模的有用性经过一段时间才被重视起来。接下来我们将看到为什么...
一个新的冬天来临了
回到90年代--有一个问题。一个大问题。而这个问题,基本上,就是最近的一个巨大的进步:反向传播。你看,卷积神经网络之所以重要,部分原因是反向传播对有很多层的普通神经网络来说并不奏效。而这正是深度学习的真正关键--拥有许多层,在今天的系统中多达20层或更多。但在20世纪80年代末,人们已经知道,用反向传播训练的深度神经网络效果并不好,特别是不如层数少的网络效果好。基本的原因是,反向传播依赖于找到输出层的错误,并依次将其责任分给前面的层。那么,在很多层中,这种基于微积分的责任划分最终会产生巨大或微小的数字,由此产生的神经网络就不能很好地工作--"梯度消失或爆炸的问题"。Jurgen Schmidhuber,另一位深度学习的名人,很好地总结了更正式的解释。
"一篇毕业论文(Hochreiter, 1991)代表了明确的DL研究的一个里程碑。正如第5.6节所述,在20世纪80年代末,实验表明,传统的深度前馈或递归网络很难通过反向传播(BP)来训练(第5.5节)。Hochreiter的工作正式确定了一个主要原因。典型的深度NN受到现在著名的梯度消失或爆炸问题的影响。使用标准激活函数(第1节),累积反向传播的误差信号(第5.5.1节)要么迅速缩小,要么超出界限增长。事实上,它们在层数或CAP深度(第3节)中以指数形式衰减,或者它们爆炸。"
通过时间的反向传播本质上相当于一个有一大堆层的神经网,所以RNNs特别难用反向传播来训练。Sepp Hochreiter在Schmidhuber的建议下,和Yoshua Bengio都发表了关于由于反向传播的限制而无法学习长期信息的论文。对这个问题的分析确实揭示了一个解决方案--Schmidhuber和Hochreiter在1997年引入了一个非常重要的概念,这个概念基本上解决了如何训练循环神经网的问题,就像CNN对前馈神经网所做的那样--长短时记忆(LSTM)。简单地说,与CNN一样,LTSM的突破最终是对普通神经网模型40的一个小改动。
"LSTM的基本思想非常简单。一些单元被称为恒定误差转盘(CECs)。每个CEC使用激活函数f,即身份函数,并与自己有一个固定权重为1.0的连接。由于f的常数导数为1.0,通过CEC反向传播的误差不会消失或爆炸(第5.9节),而是保持原状(除非它们从CEC "流 "到NN的其他部分,通常是适应性部分)。CECs与学习非线性行为所需的几个非线性自适应单元(有些具有乘法激活函数)相连。这些单元的权重变化往往来自于通过CECs传播的远期错误信号。CEC是LSTM网能够学习发现(和记忆)数千步前发生的事件的重要性的主要原因,而以前的RNN已经在最小时间滞后10步的情况下失败了。"
但是,这对解决更大的认知问题没有什么帮助,即神经网络很笨拙,而且工作得不太理想。他们被认为是工作上的麻烦--计算机不够快,算法不够聪明,人们也不高兴。因此,在90年代中期,一种新的神经网络的人工智能冬季开始出现--社区再次对它们失去信心。一种叫做支持向量机的新方法被开发出来,用最简单的话来说,它可以被描述为一种训练相当于两层神经网的数学优化方法,并开始被视为优于难以操作的神经网。事实上,LeCun等人在1995年发表的 "手写数字识别的学习算法比较 "中发现,这种新的方法与所有设计最好的神经网络相比,效果更好或相同。
"[支持向量机]分类器具有出色的准确性,这是最了不起的,因为与其他高性能分类器不同,它不包括关于问题的先验知识。事实上,如果图像像素以固定的映射方式进行排列,这个分类器也会做得很好。它仍然比卷积网慢得多,而且内存不足。然而,由于该技术相对较新,预计会有改进"。
其他新方法,特别是随机森林,也被证明是非常有效的,而且背后有可爱的数学理论。因此,尽管CNN一直具有最先进的性能,但人们对神经网络的热情消散了,整个机器学习界再次对其不屑一顾。冬天又来了。但不要担心,因为接下来我们将看到一小群研究人员是如何在这种研究环境下坚持下来,并最终使深度学习成为今天的样子。
"问机器学习领域的任何人,是什么让神经网络研究保持活力,他们可能会提到这三个名字中的一个或全部。Geoffrey Hinton、加拿大同胞Yoshua Bengio以及Facebook和纽约大学的Yann LeCun。"
第三部分:深度学习(2000年代-2010年代)
在我们历史的最后一部分,我们将进入故事的尾声,看看深度学习是如何从90年代末神经网络的低迷中走出来的,以及它后来取得的惊人的技术成果。
更多层次的资金
随着支持向量机的崛起和反向传播的失败,21世纪初是神经网络研究的一个黑暗时期。LeCun和Hinton多次提到,在这一时期,他们的论文或他们学生的论文经常被拒绝发表,因为他们的主题是神经网络。当然,机器学习和人工智能的研究仍然非常活跃,其他人也仍然在研究神经网络,但当时的引文计数清楚地表明,即使没有完全蒸发,兴奋点也已经平息了。尽管如此,Hinton、Bengio和Lecun仍坚持他们的信念,认为神经网络值得研究。
而且他们在研究领域之外找到了一个强大的盟友。加拿大政府。加拿大高级研究所(CIFAR)的资助,鼓励没有直接应用的基础研究,是促使辛顿在1987年搬到加拿大的原因,并资助他之后的工作。但是,在90年代中期,正当人们对神经网络的情绪再次变得消极时,这笔资金被终止。辛顿并没有放弃并转换他的工作重点,而是争取继续从事神经网络的工作,并设法从CIFAR获得更多的资金,正如这篇模范文章所描述的那样45。
"但是在2004年,Hinton要求领导一个关于神经计算的新项目。主流机器学习界对神经网络的兴趣不可能不大。
Bengio说:"那是最糟糕的时候,"他是蒙特利尔大学的教授,也是CIFAR项目的联合主任,因为该项目去年被更新了。"其他人都在做不同的事情。不知何故,杰夫说服了他们。"
"我们应该对(CIFAR)进行这场赌博给予很大的肯定。"
CIFAR项目的另一位联合主任LeCun补充说:"在围绕深度学习形成一个社区方面,CIFAR产生了巨大影响。"我们在更广泛的机器学习社区中有点被抛弃:我们的论文无法发表。这给了我们一个可以交流思想的地方"。
资金不多,但足以让一小群研究人员继续研究这个课题。正如辛顿所说,他们策划了一个阴谋:用 "深度学习 "这一名称 "重塑 "被人诟病的神经网络领域45。然后,每个研究人员必须梦想的事情真的发生了。
Hinton、Simon Osindero和Yee-Whye Teh在2006年发表了一篇被视为突破的论文,这一突破的重要性足以重新点燃人们对神经网络的兴趣。深度信仰网的快速学习算法。尽管正如我们所看到的,论文中使用的方法已经被新的工作所取代,但 "深度学习 "这一运动可以说正是从这篇论文开始的。但是,比这个名字更重要的是这个想法--如果权重以一种巧妙的方式而不是随机地初始化,那么具有许多层的神经网络真的可以被很好地训练。辛顿曾经表达过当时对这种进步的需求。
"从历史上看,这对于克服这些深层神经网络不好、永远无法训练的信念非常重要。而这是一个非常强烈的信念。不久前,我的一个朋友给ICML[国际机器学习会议]发了一篇论文,裁判员说ICML不应该接受它,因为它是关于神经网络的,不适合ICML。事实上,如果你看一下去年的ICML,没有任何标题中带有 "神经 "的论文被接受,所以ICML不应该接受关于神经网络的论文。这只是几年前的事。而IEEE的一个期刊实际上有一个[不接受你的论文]的官方政策。所以,这是一个强烈的信念。"
RBM
一个受限的玻尔兹曼机。(资料来源)
那么,初始化权重的巧妙方法是什么?
基本的想法是用无监督训练逐一训练每一层,这比直接给它们随机值的权重起步要好得多,然后就像神经网络的正常情况一样,用一轮监督学习来完成。每一层一开始都是受限玻尔兹曼机(RBM),如上图所示,它只是一个没有隐藏单元和可见单元之间连接的玻尔兹曼机,并以无监督的方式教授数据的生成模型。
事实证明,这种形式的玻尔兹曼机可以用Hinton在2002年的《通过最小化对立分歧训练专家产品》中介绍的有效方式进行训练。基本上,这种算法将产生训练数据的单位的概率以外的东西最大化,这允许有一个很好的近似,结果还是很好的工作。因此,使用这种方法,其算法是这样的。
在训练数据上使用对比-分歧法训练RBM。这是信念网的第一层。
为数据生成训练过的RBM的隐藏值,并使用这些隐藏值训练另一个RBM。这是第二层--将其 "堆叠 "在第一层之上,并在一个方向上保持权重,以形成一个信念网。
继续做第2步,以获得所需的信仰网的层数。
如果需要分类,可以添加一小部分隐藏单元,与分类标签相对应,做一个唤醒-睡眠算法的变体来 "微调 "权重。这种无监督和有监督学习的组合通常被称为半监督学习。
来自
http://www.iro.umontreal.ca/~lisa/twiki/bin/view.cgi/Public/DeepVsShallowComparisonICML2007
Hinton介绍的分层预训练。(资料来源)
该论文最后表明,深度信念网络(DBN)在标准的MNIST字符识别数据集上具有最先进的性能,明显优于只有几层的普通神经网络。Yoshua Bengio等人在2007年以 "贪婪的深层网络训练 "对这项工作进行了跟进,他们在其中提出了一个强有力的论点,即深层机器学习方法(即具有许多处理步骤的方法,或者等同于具有数据的分层特征表示)对于困难问题比浅层方法(两层ANN或支持向量机是其例子)更有效率。
自动编码器预监督转录
无监督预训练的另一种观点,使用自动编码器而不是RBMs
他们还提出了增加无监督预训练的原因,并得出结论,这不仅以更优化的方式初始化了权重,而且也许更重要的是导致了更有用的数据学习表示。事实上,使用RBMs并不那么重要--事实证明,使用反向传播和普通自动编码器层的普通神经网层的无监督预训练也很有效。同样,在同一时间,另一种叫做稀疏编码的方法也表明,无监督的特征学习是一种改善监督学习性能的强大方法。
因此,真正的关键是拥有许多层的计算单元,这样就可以学习到好的数据高层表征--与传统的手工设计一些漂亮的特征提取步骤,然后才使用这些特征进行学习的方法完全不同。Hinton和Bengio的工作从经验上证明了这一事实,但更重要的是,表明深度神经网络不能被很好地训练这一前提是错误的。这一点,LeCun在整个90年代已经用CNN证明了,但神经网络仍然不受青睐。Bengio与Yann LeCun合作,在 "Scaling Algorithms Towards AI "上重申了这点。
"直到最近,许多人认为,训练深度架构是一个太难的优化问题。然而,至少有两种不同的方法在训练这类架构时效果很好:简单的梯度下降适用于卷积网络[LeCun等人,1989,LeCun等人,1998](针对信号和图像),以及最近的逐层无监督学习和梯度下降[Hinton等人,2006,Bengio等人,2007,Ranzato等人,2006] 。关于深度架构的研究还处于起步阶段,更好的深度架构学习算法还有待发现。以更大的视角来看待发现能够导致人工智能的学习原理这一目标,一直是这项工作的指导性观点。我们希望能够帮助启发其他人寻求解决扩展机器学习以实现人工智能的问题"。
而他们确实启发了。或者至少,他们开始了;尽管深度学习还没有获得像今天这样的海啸势头,但这一浪潮已经明确无误地开始。尽管如此,当时的结果并不那么令人印象深刻--到此时为止,论文中所展示的大部分性能都是针对MNIST数据集的,这是一项经典的机器学习任务,大约十年来一直是算法的标准基准。Hinton在2006年发表的论文展示了一个非常令人印象深刻的错误率,在测试集上只有1.25%,但是SVM已经得到了1.4%的错误率,甚至简单的算法也可以得到低个位数的错误率。而且,正如论文中所指出的,Yann LeCun在1998年已经在 "基于梯度的学习应用于文档识别 "一文中使用CNNs证明了0.95%的错误率。
因此,在MNIST上做得很好并不一定是什么大问题。意识到这一点并确信现在是深度学习登台的时候了,Hinton和他的两个研究生Abdel-rahman Mohamed和George Dahl在一项更具挑战性的人工智能任务中展示了他们的有效性。语音识别。使用DBN,这两名学生和辛顿成功地提高了在标准语音识别数据集上十年来的性能记录。这是一个令人印象深刻的成就,但回过头来看,似乎只是暗示了即将发生的事情--简而言之,更多的破纪录。
大数据的发展
因此,算法上的进步是肯定的,并导致了人们对神经网络越来越兴奋。但是,这本身并没有克服90年代看到的神经网络的局限性。毕竟,要训练一个神经网络,你不仅需要优化算法,你还需要另一个关键成分:数据。正如我们在本篇文章的开头所提到的那样,神经网络通常是通过标记的例子进行监督训练的,因此要将其应用于任何特定的问题,就需要有这些数据。
但是,为了解决困难的任务,神经网络需要大量这样的数据,获得大型数据集并非易事。虽然它在概念上可能不像提出聪明的算法那样困难,但它仍然是一项大量的工作,而且拥有决定正确的输入和输出以实现新研究的洞察力也很重要。因此,不要忽视这个话题,也不要认为这是理所当然的,这一点很关键。我们已经提到了MNIST手写数字数据库("一项经典的机器学习任务,大约十年来一直是算法的标准基准"),它是通过修改美国国家标准和技术研究所在1995年首次发布的数据制成的。接下来,我们将看看2000年代出现的数据集,它们对深度学习的发展至关重要。
MNIST
MNIST数据集。(资料来源)
但是,对于一个手写数字的数据集,你能做的只有这么多。计算机视觉的目的是使机器能够以类似于人类的方式理解图像,这当然包括识别特定图像中存在的物体。因此,在2000年代,研究人员开始创建可用于解决这一问题的数据集。从2005年开始,出现了一年一度的PASCAL视觉物体类别(VOC)挑战。然后还有Caltech 101和Caltech 256数据集,同样对计算机视觉研究有影响。但对于我们的深度学习主题来说,无疑有一个最重要的发展需要关注。ImageNet。
正如Quartz的《改变人工智能研究的数据--可能也是改变世界的数据》中所描述的那样,李飞飞教授的想法是创建一个数据集,为庞大的WordNet数据库(它就像一个巨大的英语单词字典,按其含义分组)中的大多数概念提供图像,这需要创建一个规模空前的数据集。幸运的是,在这个想法产生后不久,众包(通过互联网将数据标签的工作分给许多人)的选项也出现了,该项目可以继续进行。尽管如此,李和她的学生及合作者还是花了好几年的时间,才在2009年发布了他们的数据集和一篇论文。到那时,该数据集有320万张图片,涉及5247个概念,离最终目标5000万张图片还有一段距离,但也比之前的数据集的规模大了好几个数量级。
图像网
来自ImageNet数据集的图像。(资料来源)
不过,计算机视觉界并没有立即意识到这个数据集确实能带来重大的进步。毕竟,当时的算法还没有尝试过从这么大的图像集中学习归类这么多不同类型的物体。甚至当数据集被配对到ImageNet大规模视觉识别挑战赛(只有1000种类型的物体和15万张图像)时,第一年的获奖作品也无法在30%的测试数据集中用5次猜测来挑选正确的类别。所以,这是一个很难的问题,因此也是一个很好的挑战,用它来证明神经网路的潜力。但是,我们还需要几年的时间和深度学习的最后一块拼图,才能达到这个目的...
蛮力的重要性
上述算法的进步和新的数据集对深度学习的出现无疑是很重要的,但在20世纪90年代以来的十年里,还有另一个重要的组成部分出现了:纯粹的计算能力。遵循摩尔定律,计算机的速度比90年代的慢时代快了几十倍,使大数据集和许多层的学习变得更加容易操作。但即使这样也是不够的--CPU在速度增长方面开始遇到了天花板,计算机能力开始主要通过几个CPU的弱并行计算来增加。为了学习深度模型中典型的数百万个权重,弱CPU并行的限制必须被抛在脑后,取而代之的是GPU大规模的并行计算能力。意识到这一点,在某种程度上是阿卜杜勒-拉赫曼-穆罕默德、乔治-达尔和杰夫-辛顿如何完成其破纪录的语音识别性能。
"受到辛顿一次关于深度神经网络讲座的启发,穆罕默德开始将其应用于语音--但深度神经网络对传统计算机的计算能力要求太高--所以辛顿和穆罕默德请来了达尔。达勒是辛顿实验室的学生,他发现了如何使用使生动的电脑游戏在个人电脑上可行的高端显卡来有效地训练和模拟神经网络。
他们将同样的方法应用于识别非常短的语音窗口中的音素片段的问题,"辛顿说。"他们在一个标准的三小时基准上得到了比以前的方法明显更好的结果。"
很难说在这种情况下使用GPU比CPU快多少,但同年的论文《使用图形处理器的大规模深度无监督学习》提出了一个数字:快70倍。是的,70倍--将几周的工作减少到几天,甚至一天。之前开发了稀疏编码的作者包括多产的机器学习研究员安德鲁-吴,他越来越意识到,利用大量的训练数据和快速计算被研究人员大大低估了,而支持学习算法的渐进式变化。这一想法得到了2010年 "Deep Big Simple Neural Nets Excel on Handwritten Digit Recognition"(主要由J.Schmidhuber共同撰写,他是递归LTSM网络的发明人之一)的有力支持,该报告显示,在MNIST数据集上可以达到惊人的0.35%的错误率,而不需要任何比真正的大型神经网络更特别的东西,对输入的大量变化,以及高效GPU实现的反向传播。这些想法已经存在了几十年,所以虽然不能说算法的进步并不重要,但这一结果确实有力地支持了这样的观点,即大训练集和快速并行计算的蛮力方法也是至关重要的。
Dahl和Mohamed使用GPU获得破纪录的结果是一个早期的、相对温和的成功,但它足以引起人们的兴奋,并使他们被邀请到微软研究院实习45。在这里,他们将从当时已经出现的另一个计算趋势中获益。大数据。这个最宽泛的术语,在机器学习的背景下很容易理解--大量的训练数据。大量的训练数据是很重要的,因为如果没有这些数据,神经网络仍然做得不好--它们往往会过度拟合(在训练数据上完美地工作,但对新的测试数据却没有概括性)。
这是有道理的--大型神经网络所能计算的复杂程度,需要大量的数据来避免它们学习训练集的每一个不重要的方面--但在过去是研究人员的一个主要挑战。所以现在,大公司的计算和数据收集能力被证明是无价的。这两名学生在三个月的实习期间轻松地证明了深度学习的力量,而微软研究院自此一直处于深度学习语音识别的最前沿。
微软并不是唯一认识到深度学习力量的大公司(尽管它很容易成为第一家)。亨顿的另一个学生纳夫迪普-杰特利(Navdeep Jaitly)于2011年去了谷歌公司进行暑期实习。在那里,他从事谷歌的语音识别工作,并表明他们现有的设置可以通过纳入深度学习而得到很大的改善。修订后的方法很快为安卓的语音识别提供了支持,取代了谷歌之前精心设计的大部分解决方案45。
除了卑微的博士实习生对这些巨型公司的产品产生了令人印象深刻的影响外,这里值得注意的是,两家公司都在利用同样的想法--这些想法是公开的,任何人都可以使用。事实上,微软和谷歌以及IBM和Hinton实验室的工作导致了令人印象深刻的标题为 "语音识别中声学建模的深度神经网络。四个研究小组的共同观点 "在2012年。四个研究小组--三个来自肯定能从深度学习这一新兴奇迹技术的满满一箱专利中受益的公司,以及普及这一技术的大学研究小组--共同合作,并向更广泛的研究界发表他们的成果。如果有一个理想的场景,让工业界采用来自研究的想法,这似乎是它。
不是说这些公司是为了做慈善。这是他们所有人探索如何将技术商业化的开始,其中最重要的是谷歌。但也许不是辛顿,而是安德鲁-吴(Andrew Ng)煽动该公司成为可能是世界上最大的商业采用者和技术的支持者。2011年,吴恩达在访问公司时偶然遇到了传奇人物杰夫-迪恩(Jeff Dean),并聊到了他利用谷歌神奇的计算资源来训练神经网络的努力。这引起了迪安的兴趣,于是他们与吴晓波一起成立了谷歌大脑--努力建立真正的巨型神经网络,并探索它们能做什么。这项工作的结果是,无监督的神经网络学习达到了前所未有的规模--16,000个CPU内核为高达10亿个权重的学习提供动力(作为比较,Hinton在2006年突破性的DBN有大约100万个权重)。该神经网络在Youtube视频上进行训练,完全没有标签,并学会了识别这些视频中最常见的物体--当然,这也导致了互联网对该网络发现猫的集体欢呼。
猫
谷歌著名的神经网络学习猫。这是对其中一个神经元的最佳输入。(资料图)
尽管这很可爱,但它也很有用。正如他们在定期发表的论文中所报告的那样,该模型所学到的特征可用于在一个标准的计算机视觉基准上创造记录。就这样,谷歌用于训练大规模神经网络的内部工具诞生了,此后它们一直在不断发展。始于2006年的深度学习研究浪潮现在已经不可否认地进入了工业界。
深度学习的方程式
在深度学习进入工业界的同时,研究界也几乎没有停滞不前。发现有效利用GPU和计算能力是如此重要,使得人们开始审视长期以来的假设,并提出也许早就应该提出的问题--即,究竟为什么反向传播的效果不好?问为什么旧的方法不起作用,而不是为什么新的方法起作用,这种洞察力促使Xavier Glort和Yoshua Bengio在2010年写了《理解训练深度前馈神经网络的困难》。在其中,他们讨论了两个非常有意义的发现。
为神经网络中的神经元选择的特定非线性激活函数对性能有很大影响,而通常默认使用的函数并不是一个好的选择。
与其说选择随机权重有问题,不如说是选择随机权重而不考虑权重是用于哪一层。基本上,老的梯度消失问题会发生,因为反向传播涉及一连串的乘法,这些乘法必然会导致早期层的导数变小。也就是说,除非权重是根据它们所在的层来选择不同的尺度--做出这个简单的改变就能带来显著的改善。
ReLU
不同的激活函数。ReLU是修正的线性单元。(资料来源)
第二点很清楚,但第一点开启了一个问题:"那么,什么是最好的激活函数"?三个不同的小组探讨了这个问题(与LeCun合作的小组,"什么是最好的多阶段物体识别架构?",与Hinton合作的小组,在 "整流线性单元改善受限玻尔兹曼机",与Bengio合作的小组--"深度稀疏整流神经网络"),他们都发现了同样令人惊讶的答案:非常无差别和非常简单的函数f(x)=max(0,x)倾向于最好。令人惊讶的是,因为这个函数有点奇怪--它不是严格可微的,或者说是在零点时不可微,所以就数学而言,在纸面上它看起来很难看。但是,显然零点的情况是一个相当小的数学问题--一个更大的问题是为什么这样一个简单的函数,在0的两边有常数的导数,是如此的好。答案并不确切,但有几个想法似乎已经非常确定。
整流激活导致了稀疏的表征,这意味着对于任何给定的输入,实际上没有多少神经元最终需要输出非零值。在这之前的几年里,稀疏性被证明对深度学习是有益的,因为它以一种更稳健的方式表示信息,也因为它导致了显著的计算效率(如果你的大部分神经元输出的是零,你实际上可以忽略它们中的大部分,计算速度会更快)。顺便说一下,计算神经科学的研究人员在大脑视觉系统的背景下首次介绍了稀疏计算的重要性,比机器学习的背景下探索它早了十年。
该函数及其导数的简单性使得它比指数sigmoid或三角tanh的工作速度快得多。就像使用GPU一样,这不仅仅是一个小的提升,而且对于能够将神经网络扩展到在具有挑战性的问题上表现良好的地步非常重要。
后来由Andrew Ng共同撰写的题为 "整流器非线性改善神经网络声学模型 "的分析也表明,ReLU的恒定0或1导数对学习没有太大损害。事实上,它有助于避免消失的梯度问题,这是反向传播的祸根。此外,除了产生更多的稀疏表征外,它还产生了更多的分布式表征--意义来自于不同神经元的多个值的组合,而不是被定位到单个神经元。
在这一点上,随着2006年以来的所有这些发现,已经很清楚,无监督的预训练对于深度学习来说并不重要。毫无疑问,它是有帮助的,但它也表明,在某些情况下,做得好的纯监督训练(有正确的起始权重刻度和激活函数)可以胜过包括无监督步骤的训练。那么,为什么纯粹的监督学习与反向传播在过去不能很好地工作呢?Geoffrey Hinton用这四点总结了到今天为止的发现。
我们的标记数据集小了几千倍。
我们的计算机太慢了数百万倍。
我们以一种愚蠢的方式初始化了权重。
我们使用了错误的非线性类型。
所以我们在这里。深度学习。几十年研究的结晶,所有这些都导致了这一点。
深度学习=
大量的训练数据+并行计算+可扩展的智能算法
方程
我希望我是第一个提出这个令人愉快的等式的人,但似乎其他人在我之前就已经提出了。(资料来源)
这并不是说所有要弄清楚的东西到这时都已经弄清楚了。远非如此。已经想明白的事情恰恰相反:人们的直觉往往是错误的,特别是未经质疑的决定和假设往往是非常没有根据的。提出简单的问题,尝试简单的事情--这些都有能力极大地改善最先进的技术。而恰恰是这样的情况一直在发生,此后在深度学习中还有许多想法和方法被探索和分享。一个例子。G. E. Hinton等人的 "通过防止特征检测器的共同适应来改进神经网络"。
这个想法非常简单:为了防止过度拟合,在训练时随机地假装一些神经元不存在。这个直截了当的想法--叫做Dropout--是一个非常有效的手段,可以实现强大的集合学习方法,这只是意味着以许多不同的方式从训练数据中学习。
随机森林(Random Forests)是机器学习中至今仍占主导地位的技术,它之所以有效,主要是因为它是一种集合学习的形式。训练许多不同的神经网络是可能的,但计算成本太高,然而这个简单的想法在本质上实现了同样的事情,并确实大大改善了性能。
然而,自2006年以来的所有这些研究发现,并不是让计算机视觉或其他研究界再次尊重神经网络的原因。做到这一点的是一些不太高尚的东西:在现代竞争基准上完全摧毁了非深度学习方法。
Geoffrey Hinton找来了他的《辍学》的两位合著者Alex Krizhevsky和Ilya Sutskever,将发现的想法应用于ImageNet大规模视觉识别挑战赛(ILSVRC)--2012年计算机视觉比赛的参赛作品。
对我来说,现在了解到他们在 "ImageNet分类与深度卷积神经网络 "中描述的工作,是非常古老的概念(具有池化和卷积层的CNN,输入数据的变化)与几个新的关键见解(非常高效的GPU实现,ReLU神经元,dropout)的结合,而这,正是现代深度学习的特点。
那么,他们的表现如何?远远好于排名第二的参赛者:他们的错误率为15%.3,而排名第二的参赛者为26.2。这是该比赛中第一个也是唯一一个CNN作品,这是一个无可争议的迹象,表明CNN以及一般的深度学习必须被认真对待,以用于计算机视觉。
现在,几乎所有的参赛作品都是CNN--Yann LeCun自1989年以来一直在研究的一种神经网络模型。此外,还记得90年代由塞普-霍赫莱特(Sepp Hochreiter)和于尔根-施密德胡贝尔(Jürgen Schmidhuber)设计的LSTM递归神经网,以解决反向传播问题吗?这些也是现在最先进的顺序任务,如语音处理。
这就是转折点。对可能取得的进展感到兴奋的浪潮达到了顶峰,取得了不可否认的成就,远远超过了其他已知技术所能做到的。我们在第一部分中开始的海啸比喻,这就是它的开始,它一直在增长和加强,直到今天。深度学习就在这里,而且看不到冬天。
李飞飞在TED演讲中做了一个很好的回顾。
后记。深度学习的十年
如果这是一部电影,2012年的ImageNet竞赛很可能是高潮,现在我们会有一个描述 "他们现在在哪里 "的文字进展。
Yann LeCun - Facebook
Geoffrey Hinton - 谷歌
Andrew Ng - Coursera, Google, Baidu, and more.
Bengio、Schmidhuber和Li实际上仍在学术界,但也有自己的行业关系,而且估计还有很多引文和/或研究生(而且,还有很多人对深度学习的出现做出了贡献. 虽然深度学习的想法和成就肯定是令人兴奋的,但在写这篇文章的时候,我也不可避免地被感动了,这些人在这个领域工作了几十年(甚至在大多数人放弃这个领域的时候),现在很富有,很成功,最重要的是比以前更有条件做研究。所有这些人的想法仍然非常开放,事实上,基本上所有这些公司都在开放他们的深度学习框架,就像某种乌托邦式的产业主导研究的愿景。真是个好故事。
自2012年以来,可以说深度学习已经彻底改变了人工智能这个领域的大部分。正如我们在这篇文章的开头所写的,"2015年似乎是海啸的全部力量冲击主要自然语言处理(NLP)会议的一年。" 计算机视觉、机器人学、音频处理、人工智能用于医学,以及其他更多的领域也是如此。总结这一时期的所有突破性发展需要很长的分历史,在博文 "深度学习的十年 "中已经做得很好。今天,我们只想说,自2012年以来的进展是迅速而持续的,并且看到了我们迄今为止看到的所有神经网络的应用(强化学习、语言建模、图像分类等等)都扩展到了利用深度学习来取得突破性的成就。
多年来,Imagenet的准确性
多年来ImageNet基准测试的表现。摘自《2019年人工智能指数报告》。
这样的进展带来了许多兴奋,人工智能领域迅速发展。
会议出席率。
多年来主要人工智能会议的出席率。来自2019年人工智能指数报告。
而现在,我们来到了2020年。人工智能作为一个领域是巨大的,而且仍在快速发展,但在用深度学习解决人工智能问题方面,许多低垂的果实已经被摘下,我们正日益处于一个向外扩展神经网络和深度学习的各种应用的时代。这是有原因的。深度学习仍然只有在有巨大的输入输出实例数据集可供学习时才能发挥最佳效果,这对人工智能中的许多问题来说并不真实,而且还有其他重大限制(可解释性、可验证性,等等)。尽管这就是这段简短的历史,但神经网络的历史在很大程度上仍在书写之中,而且将在一段时间内。让我们希望这项强大的技术继续开花结果,并在未来主要用于促进人类的福祉和进步。
引文
这篇文章是2015年最初在www.andreykurenkov.com 上发布的博文的更新和扩展版本。请引用这个版本。
如果要在学术场合或书籍中注明出处,请将此作品引用为
Andrey Kurenkov,"神经网络和深度学习简史",Skynet Today,2020。
BibTeX引用。
@article{kurenkov2020briefhistory,
author = {Kurenkov, Andrey},
title = {神经网络和深度学习的简史},
journal = {Skynet Today},
year = {2020},
howpublished = {url{https://skynettoday.com/overviews/neural-net-history } },
}
本文由mdnice多平台发布