深度|神经网络和深度学习简史(第一部分):从感知机到BP算法

深度|神经网络和深度学习简史(第一部分):从感知机到BP算法

深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 多层输出的神经网络 也可以想象一个与感知机不同的人工神经网络。例如,阈值激活函数并不是必要的; 1960年,Bernard Widrow和Tedd Hoff很快开始探索一种方法——采用适应性的「自适应(ADALINE)」神经元来输出权值的输入,这种神经元使用化学「 存储电阻器」,并展示了这种「自适应线性神经元」能够在电路中成为「 存储电阻器」的一部分(存储电阻器是带有存储的电阻)。他们还展示了,不用阈值激活函数,在数学上很美,因为神经元的学习机制是基于将错误最小化的微积分,而微积分我们都很熟悉了。 如果我们多思考一下 「自适应(ADALINE)」,就会有进一步的洞见:为大量输入找到一组权重真的只是一种线性回归。再一次,就像用线性回归一样,这也不足以解决诸如语音识别或计算机视觉这样的人工智能难题。McCullough,Pitts和罗森布拉特真正感到兴奋的是联结主义(Connectionism)这个宽泛的想法:如此简单计算机单元构成的网络,其功能会大很多而且可以解决人工智能难题。而且罗森布拉特说的和(坦白说很可笑的)《纽约时报》这段引文的意思差不多: 海军披露了一台尚处初期的电子计算机,期待这台电子计算机能行走,谈话,看和写,自己复制出自身存在意识…罗森布拉特博士,康奈尔航空实验室的一位心理学家说,感知机能作为机械太空探险者被发射到行星上。 🎦 点击观看视频 这种谈话无疑会惹恼人工领域的其他研究人员,其中有许多研究人员都在专注于这样的研究方法,它们以带有具体规则(这些规则遵循逻辑数学法则)的符号操作为基础。MIT人工智能实验室创始人Marvin Minsky和Seymour Paper就是对这一炒作持怀疑态度研究人员中的两位,1969年,他们在一本开创性著作中表达了这种质疑,书中严谨分析了感知机的局限性,书名很贴切,叫《感知机》。 他们分析中,最被广为讨论的内容就是对感知机限制的说明,例如,他们不能学习简单的布尔函数XOR,因为它不能进行线性分离。虽然此处历史模糊,但是,人们普遍认为这本书对人工智能步入第一个冬天起到了推波助澜的作用——大肆炒作之后,人工智能进入泡沫幻灭期,相关资助和出版都遭冻结。 感知机局限性的视觉化。找到一个线性函数,输入X,Y时可以正确地输出+或 ,就是在2D图表上画一条从+中分离出 的线;很显然,就第三幅图显示的情况来看,这是不可能的 人工智能冬天的复苏 因此,情况对神经网络不利。但是,为什么?他们的想法毕竟是想将一连串简单的数学神经元结合在一起,完成一些复杂任务,而不是使用单个神经元。换句话说,并不是只有一个输出层,将一个输入任意传输到多个神经元(所谓的隐藏层,因为他们的输出会作为另一隐藏层或神经元输出层的输入)。只有输出层的输出是「可见」的——亦即神经网络的答案——但是,所有依靠隐藏层完成的间接计算可以处理复杂得多的问题,这是单层结构望尘莫及的。 有两个隐藏层的神经网络 言简意赅地说,多个隐藏层是件好事,原因在于隐藏层可以找到数据内在特点,后续层可以在这些特点(而不是嘈杂庞大的原始数据)基础上进行操作。以图片中的面部识别这一非常常见的神经网络任务为例,第一个隐藏层可以获得图片的原始像素值,以及线、圆和椭圆等信息。接下来的层可以获得这些线、圆和椭圆等的位置信息,并且通过这些来定位人脸的位置——处理起来简单多了!而且人们基本上也都明白这一点。事实上,直到最近,机器学习技术都没有普遍直接用于原始数据输入,比如图像和音频。相反,机器学习被用于经过特征提取后的数据——也就是说,为了让学习更简单,机器学习被用在预处理的数据上,一些更加有用的特征,比如角度,形状早已被从中提取出来。 传统的特征的手工提取过程的视觉化 因此,注意到这一点很重要:Minsky和Paper关于感知机的分析不仅仅表明不可能用单个感知机来计算XOR,而且特别指出需要多层感知机——亦即现在所谓的多层神经网络——才可以完成这一任务,而且罗森布拉特的学习算法对多层并不管用。那是一个真正的问题:之前针对感知机概括出的简单学习规则并不是适用于多层结构。想知道原因?让我们再来回顾一下单层结构感知机如何学习计算一些函数: 1. 和函数输出数量相等的感知机会以小的初始权值开始(仅为输入函数的倍数) 2. 选取训练集中的一个例子作为输入,计算感知机的输出 3. 对于每一个感知机,如果其计算结果和该例子的结果不匹配,调整初始权值 4. 继续采用训练集中的下一个例子,重复过程2到4次,直到感知机不再犯错。 5. 这一规则并不适用多层结构的原因应该很直观清楚了:选取训练集中的例子进行训练时,我们只能对最终的输出层的输出结果进行校正,但是,对于多层结构来说,我们该如何调整最终输出层之前的层结构权值呢?答案(尽管需要花时间来推导)又一次需要依赖古老的微积分:链式法则。这里有一个重要现实:神经网络的神经元和感知机并不完全相同,但是,可用一个激活函数来计算输出,该函数仍然是非线性的,但是可微分,和Adaline神经元一样;该导数不仅可以用于调整权值,减少误差,链式法则也可用于计算前一层所有神经元导数,因此,调整它们权重的方式也是可知的。说得更简单些:我们可以利用微积分将一些导致输出层任何训练集误差的原因分配给前一隐藏层的每个神经元,如果还有另外一层隐藏层,我们可以将这些原因再做分配,以此类推——我们在反向传播这些误差。而且,如果修改了神经网络(包括那些隐藏层)任一权重值,我们还可以找出误差会有多大变化,通过优化技巧(时间长,典型的随机梯度下降)找出最小化误差的最佳权值。 反向传播的基本思想 反向传播由上世纪60年代早期多位研究人员提出,70年代,由Seppo Linnainmaa引入电脑运行,但是,Paul Werbos在1974年的博士毕业论文中深刻分析了将之用于神经网络方面的可能性,成为美国第一位提出可以将其用于神经网络的研究人员。有趣的是,他从模拟人类思维的研究工作中并没有获得多少启发,在这个案例中,弗洛伊德心理学理论启发了他,正如他自己叙述: 1968年,我提出我们可以多少模仿弗洛伊德的概念——信度指派的反向流动( a backwards flow of credit assignment,),指代从神经元到神经元的反向流动…我解释过结合使用了直觉、实例和普通链式法则的反向计算,虽然它正是将弗洛伊德以前在心理动力学理论中提出的概念运用到数学领域中! 尽管解决了如何训练多层神经网络的问题,在写作自己的博士学位论文时也意识到了这一点,但是,Werbos没有发表将BP算法用于神经网络这方面的研究,直到1982年人工智能冬天引发了寒蝉效应。实际上,Werbos认为,这种研究进路对解决感知机问题是有意义的,但是,这个圈子大体已经失去解决那些问题的信念。 Minsky的书最著名的观点有几个:(1)我们需要用MLPs[多层感知机,多层神经网络的另一种说法)来代表简单的非线性函数,比如XOR 映射;而且(2)世界上没人发现可以将MLPs训练得够好,以至于可以学会这么简单的函数的方法。Minsky的书让世上绝大多数人相信,神经网络是最糟糕的异端,死路一条。Widrow已经强调,这种压垮早期『感知机』人工智能学派的悲观主义不应怪在Minsky的头上。他只是总结了几百位谨慎研究人员的经验而已,他们尝试找出训练MLPs的办法,却徒劳无功。也曾有过希望,比如Rosenblatt所谓的backpropagation(这和我们现在说的 backpropagation并不完全相同!),而且Amari也简短表示,我们应该考虑将最小二乘(也是简单线性回归的基础)作为训练神经网络的一种方式(但没有讨论如何求导,还警告说他对这个方法不抱太大期望)。但是,当时的悲观主义开始变得致命。上世纪七十年代早期,我确实在MIT采访过Minsky。我建议我们合著一篇文章,证明MLPs实际上能够克服早期出现的问题…但是,Minsky并无兴趣(14)。事实上,当时的MIT,哈佛以及任何我能找到的研究机构,没人对此有兴趣。 我肯定不能打保票,但是,直到十年后,也就是1986年,这一研究进路才开始在David Rumelhart, Geoffrey Hinton和Ronald Williams合著的《Learning representations by back propagating errors》中流行开来,原因似乎就是缺少学术兴趣。 尽管研究方法的发现不计其数(论文甚至清楚提道,David Parker 和 Yann LeCun是事先发现这一研究进路的两人),1986年的这篇文章却因其精确清晰的观点陈述而显得很突出。实际上,学机器学习的人很容易发现自己论文中的描述与教科书和课堂上解释概念方式本质上相同。 不幸的是,科学圈里几乎无人知道Werbo的研究。1982年,Parker重新发现了这个研究办法[39]并于1985年在M.I.T[40]上发表了一篇相关报道。就在Parker报道后不久,Rumelhart, Hinton和Williams [41], [42]也重新发现了这个方法, 他们最终成功地让这个方法家喻户晓,也主要归功于陈述观点的框架非常清晰。 但是,这三位作者没有止步于介绍新学习算法,而是走得更远。同年,他们发表了更有深度的文章《Learning internal representations by error propagation》。 文章特别谈到了Minsky在《感知机》中讨论过的问题。尽管这是过去学者的构想,但是,正是这个1986年提出的构想让人们广泛理解了应该如何训练多层神经网络解决复杂学习问题。而且神经网络也因此回来了!第二部分,我们将会看到几年后,《Learning internal representations by error propagation》探讨过的BP算法和其他一些技巧如何被用来解决一个非常重要的问题:让计算机识别人类书写。(待续) 参考文献 Christopher D. Manning. (2015). Computational Linguistics and Deep Learning Computational Linguistics, 41(4), 701–707.↩ F. Rosenblatt. The perceptron, a perceiving and recognizing automaton Project Para. Cornell Aeronautical Laboratory, 1957. ↩ W. S. McCulloch and W. Pitts. A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4):115–133, 1943. ↩ The organization of behavior: A neuropsychological theory. D. O. Hebb. John Wiley And Sons, Inc., New York, 1949 ↩ B. Widrow et al. Adaptive ”Adaline” neuron using chemical ”memistors”. Number Technical Report 1553 2. Stanford Electron. Labs., Stanford, CA, October 1960. ↩ “New Navy Device Learns By Doing”, New York Times, July 8, 1958. ↩ Perceptrons. An Introduction to Computational Geometry. MARVIN MINSKY and SEYMOUR PAPERT. M.I.T. Press, Cambridge, Mass., 1969. ↩ 🎦 点击观看视频 多层输出的神经网络 也可以想象一个与感知机不同的人工神经网络。例如,阈值激活函数并不是必要的; 1960年,Bernard Widrow和Tedd Hoff很快开始探索一种方法——采用适应性的「自适应(ADALINE)」神经元来输出权值的输入,这种神经元使用化学「 存储电阻器」,并展示了这种「自适应线性神经元」能够在电路中成为「 存储电阻器」的一部分(存储电阻器是带有存储的电阻)。他们还展示了,不用阈值激活函数,在数学上很美,因为神经元的学习机制是基于将错误最小化的微积分,而微积分我们都很熟悉了。 如果我们多思考一下 「自适应(ADALINE)」,就会有进一步的洞见:为大量输入找到一组权重真的只是一种线性回归。再一次,就像用线性回归一样,这也不足以解决诸如语音识别或计算机视觉这样的人工智能难题。McCullough,Pitts和罗森布拉特真正感到兴奋的是联结主义(Connectionism)这个宽泛的想法:如此简单计算机单元构成的网络,其功能会大很多而且可以解决人工智能难题。而且罗森布拉特说的和(坦白说很可笑的)《纽约时报》这段引文的意思差不多: 海军披露了一台尚处初期的电子计算机,期待这台电子计算机能行走,谈话,看和写,自己复制出自身存在意识…罗森布拉特博士,康奈尔航空实验室的一位心理学家说,感知机能作为机械太空探险者被发射到行星上。 🎦 点击观看视频 🎦 点击观看视频 这种谈话无疑会惹恼人工领域的其他研究人员,其中有许多研究人员都在专注于这样的研究方法,它们以带有具体规则(这些规则遵循逻辑数学法则)的符号操作为基础。MIT人工智能实验室创始人Marvin Minsky和Seymour Paper就是对这一炒作持怀疑态度研究人员中的两位,1969年,他们在一本开创性著作中表达了这种质疑,书中严谨分析了感知机的局限性,书名很贴切,叫《感知机》。 他们分析中,最被广为讨论的内容就是对感知机限制的说明,例如,他们不能学习简单的布尔函数XOR,因为它不能进行线性分离。虽然此处历史模糊,但是,人们普遍认为这本书对人工智能步入第一个冬天起到了推波助澜的作用——大肆炒作之后,人工智能进入泡沫幻灭期,相关资助和出版都遭冻结。 感知机局限性的视觉化。找到一个线性函数,输入X,Y时可以正确地输出+或 ,就是在2D图表上画一条从+中分离出 的线;很显然,就第三幅图显示的情况来看,这是不可能的 人工智能冬天的复苏 因此,情况对神经网络不利。但是,为什么?他们的想法毕竟是想将一连串简单的数学神经元结合在一起,完成一些复杂任务,而不是使用单个神经元。换句话说,并不是只有一个输出层,将一个输入任意传输到多个神经元(所谓的隐藏层,因为他们的输出会作为另一隐藏层或神经元输出层的输入)。只有输出层的输出是「可见」的——亦即神经网络的答案——但是,所有依靠隐藏层完成的间接计算可以处理复杂得多的问题,这是单层结构望尘莫及的。 有两个隐藏层的神经网络 言简意赅地说,多个隐藏层是件好事,原因在于隐藏层可以找到数据内在特点,后续层可以在这些特点(而不是嘈杂庞大的原始数据)基础上进行操作。以图片中的面部识别这一非常常见的神经网络任务为例,第一个隐藏层可以获得图片的原始像素值,以及线、圆和椭圆等信息。接下来的层可以获得这些线、圆和椭圆等的位置信息,并且通过这些来定位人脸的位置——处理起来简单多了!而且人们基本上也都明白这一点。事实上,直到最近,机器学习技术都没有普遍直接用于原始数据输入,比如图像和音频。相反,机器学习被用于经过特征提取后的数据——也就是说,为了让学习更简单,机器学习被用在预处理的数据上,一些更加有用的特征,比如角度,形状早已被从中提取出来。 传统的特征的手工提取过程的视觉化 因此,注意到这一点很重要:Minsky和Paper关于感知机的分析不仅仅表明不可能用单个感知机来计算XOR,而且特别指出需要多层感知机——亦即现在所谓的多层神经网络——才可以完成这一任务,而且罗森布拉特的学习算法对多层并不管用。那是一个真正的问题:之前针对感知机概括出的简单学习规则并不是适用于多层结构。想知道原因?让我们再来回顾一下单层结构感知机如何学习计算一些函数: 1. 和函数输出数量相等的感知机会以小的初始权值开始(仅为输入函数的倍数) 2. 选取训练集中的一个例子作为输入,计算感知机的输出 3. 对于每一个感知机,如果其计算结果和该例子的结果不匹配,调整初始权值 4. 继续采用训练集中的下一个例子,重复过程2到4次,直到感知机不再犯错。 5. 这一规则并不适用多层结构的原因应该很直观清楚了:选取训练集中的例子进行训练时,我们只能对最终的输出层的输出结果进行校正,但是,对于多层结构来说,我们该如何调整最终输出层之前的层结构权值呢?答案(尽管需要花时间来推导)又一次需要依赖古老的微积分:链式法则。这里有一个重要现实:神经网络的神经元和感知机并不完全相同,但是,可用一个激活函数来计算输出,该函数仍然是非线性的,但是可微分,和Adaline神经元一样;该导数不仅可以用于调整权值,减少误差,链式法则也可用于计算前一层所有神经元导数,因此,调整它们权重的方式也是可知的。说得更简单些:我们可以利用微积分将一些导致输出层任何训练集误差的原因分配给前一隐藏层的每个神经元,如果还有另外一层隐藏层,我们可以将这些原因再做分配,以此类推——我们在反向传播这些误差。而且,如果修改了神经网络(包括那些隐藏层)任一权重值,我们还可以找出误差会有多大变化,通过优化技巧(时间长,典型的随机梯度下降)找出最小化误差的最佳权值。 反向传播的基本思想 反向传播由上世纪60年代早期多位研究人员提出,70年代,由Seppo Linnainmaa引入电脑运行,但是,Paul Werbos在1974年的博士毕业论文中深刻分析了将之用于神经网络方面的可能性,成为美国第一位提出可以将其用于神经网络的研究人员。有趣的是,他从模拟人类思维的研究工作中并没有获得多少启发,在这个案例中,弗洛伊德心理学理论启发了他,正如他自己叙述: 1968年,我提出我们可以多少模仿弗洛伊德的概念——信度指派的反向流动( a backwards flow of credit assignment,),指代从神经元到神经元的反向流动…我解释过结合使用了直觉、实例和普通链式法则的反向计算,虽然它正是将弗洛伊德以前在心理动力学理论中提出的概念运用到数学领域中! 尽管解决了如何训练多层神经网络的问题,在写作自己的博士学位论文时也意识到了这一点,但是,Werbos没有发表将BP算法用于神经网络这方面的研究,直到1982年人工智能冬天引发了寒蝉效应。实际上,Werbos认为,这种研究进路对解决感知机问题是有意义的,但是,这个圈子大体已经失去解决那些问题的信念。 Minsky的书最著名的观点有几个:(1)我们需要用MLPs[多层感知机,多层神经网络的另一种说法)来代表简单的非线性函数,比如XOR 映射;而且(2)世界上没人发现可以将MLPs训练得够好,以至于可以学会这么简单的函数的方法。Minsky的书让世上绝大多数人相信,神经网络是最糟糕的异端,死路一条。Widrow已经强调,这种压垮早期『感知机』人工智能学派的悲观主义不应怪在Minsky的头上。他只是总结了几百位谨慎研究人员的经验而已,他们尝试找出训练MLPs的办法,却徒劳无功。也曾有过希望,比如Rosenblatt所谓的backpropagation(这和我们现在说的 backpropagation并不完全相同!),而且Amari也简短表示,我们应该考虑将最小二乘(也是简单线性回归的基础)作为训练神经网络的一种方式(但没有讨论如何求导,还警告说他对这个方法不抱太大期望)。但是,当时的悲观主义开始变得致命。上世纪七十年代早期,我确实在MIT采访过Minsky。我建议我们合著一篇文章,证明MLPs实际上能够克服早期出现的问题…但是,Minsky并无兴趣(14)。事实上,当时的MIT,哈佛以及任何我能找到的研究机构,没人对此有兴趣。 我肯定不能打保票,但是,直到十年后,也就是1986年,这一研究进路才开始在David Rumelhart, Geoffrey Hinton和Ronald Williams合著的《Learning representations by back propagating errors》中流行开来,原因似乎就是缺少学术兴趣。 尽管研究方法的发现不计其数(论文甚至清楚提道,David Parker 和 Yann LeCun是事先发现这一研究进路的两人),1986年的这篇文章却因其精确清晰的观点陈述而显得很突出。实际上,学机器学习的人很容易发现自己论文中的描述与教科书和课堂上解释概念方式本质上相同。 不幸的是,科学圈里几乎无人知道Werbo的研究。1982年,Parker重新发现了这个研究办法[39]并于1985年在M.I.T[40]上发表了一篇相关报道。就在Parker报道后不久,Rumelhart, Hinton和Williams [41], [42]也重新发现了这个方法, 他们最终成功地让这个方法家喻户晓,也主要归功于陈述观点的框架非常清晰。 但是,这三位作者没有止步于介绍新学习算法,而是走得更远。同年,他们发表了更有深度的文章《Learning internal representations by error propagation》。 文章特别谈到了Minsky在《感知机》中讨论过的问题。尽管这是过去学者的构想,但是,正是这个1986年提出的构想让人们广泛理解了应该如何训练多层神经网络解决复杂学习问题。而且神经网络也因此回来了!第二部分,我们将会看到几年后,《Learning internal representations by error propagation》探讨过的BP算法和其他一些技巧如何被用来解决一个非常重要的问题:让计算机识别人类书写。(待续) 参考文献 Christopher D. Manning. (2015). Computational Linguistics and Deep Learning Computational Linguistics, 41(4), 701–707.↩ F. Rosenblatt. The perceptron, a perceiving and recognizing automaton Project Para. Cornell Aeronautical Laboratory, 1957. ↩ W. S. McCulloch and W. Pitts. A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4):115–133, 1943. ↩ The organization of behavior: A neuropsychological theory. D. O. Hebb. John Wiley And Sons, Inc., New York, 1949 ↩ B. Widrow et al. Adaptive ”Adaline” neuron using chemical ”memistors”. Number Technical Report 1553 2. Stanford Electron. Labs., Stanford, CA, October 1960. ↩ “New Navy Device Learns By Doing”, New York Times, July 8, 1958. ↩ Perceptrons. An Introduction to Computational Geometry. MARVIN MINSKY and SEYMOUR PAPERT. M.I.T. Press, Cambridge, Mass., 1969. ↩ Linnainmaa, S. (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master’s thesis, Univ. Helsinki. ↩ P. Werbos. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, Cambridge, MA, 1974. ↩ Werbos, P.J. (2006). Backwards differentiation in AD and neural nets: Past links and new opportunities. In Automatic Differentiation: Applications, Theory, and Implementations, pages 15 34. Springer. ↩ Rumelhart, D. E., Hinton, G. E., and Williams, R. J. (1986). Learning representations by back propagating errors. Nature, 323, 533–536. ↩ Widrow, B., & Lehr, M. (1990). 30 years of adaptive neural networks: perceptron, madaline, and backpropagation. Proceedings of the IEEE, 78(9), 1415 1442. ↩ D. E. Rumelhart, G. E. Hinton, and R. J. Williams. 1986. Learning internal representations by error propagation. In Parallel distributed processing: explorations in the microstructure of cognition, vol. 1, David E. Rumelhart, James L. McClelland, and CORPORATE PDP Research Group (Eds.). MIT Press, Cambridge, MA, USA 318 362 ↩ 🔗 原文链接: https://mp.weixin.qq.com/s? biz=Mz... https://mp.weixin.qq.com/s? biz=Mz... ⏰ 发表时间:机器之心 2016年01月23日 21:45 作者:Andrey Kurenkov 机器之心编译出品 参与:chenxiaoqing、范娜Fiona、杨超、微胖、汪汪、赵巍 导读:这是《神经网络和深度学习简史》第一部分。这一部分,我们会介绍1958年感知机神经网络的诞生,70年代人工智能寒冬以及1986年BP算法让神经网络再度流行起来。 深度学习掀起海啸 如今,深度学习浪潮拍打计算机语言的海岸已有好几年,但是,2015年似乎才是这场海啸全力冲击自然语言处理(NLP)会议的一年。——Dr. Christopher D. Manning, Dec 2015 整个研究领域的成熟方法已经迅速被新发现超越,这句话听起来有些夸大其词,就像是说它被「海啸」袭击了一样。但是,这种灾难性的形容的确可以用来描述深度学习在过去几年中的异军突起——显著改善人们对解决人工智能最难问题方法的驾驭能力,吸引工业巨人(比如谷歌等)的大量投资,研究论文的指数式增长(以及机器学习的研究生生源上升)。在听了数节机器学习课堂,甚至在本科研究中使用它以后,我不禁好奇:这个新的「深度学习」会不会是一个幻想,抑或上世纪80年代已经研发出来的「人工智能神经网络」扩大版?让我告诉你,说来话长——这不仅仅是一个有关神经网络的故事,也不仅仅是一个有关一系列研究突破的故事,这些突破让深度学习变得比「大型神经网络」更加有趣,而是一个有关几位不放弃的研究员如何熬过黑暗数十年,直至拯救神经网络,实现深度学习梦想的故事。 机器学习算法的百年历史 线性回归 首先简单介绍一下机器学习是什么。从二维图像

在 小宇宙note 阅读完整内容