专栏名称: 数据与算法之美
用数据思维解决意想不到的问题!
目录
相关文章推荐
51好读  ›  专栏  ›  数据与算法之美

神经网络简史:BP算法后的又一突破—信念网络

数据与算法之美  · 公众号  · 算法  · 2018-04-19 17:57

正文


随着训练多层神经网络的谜题被揭开,这个话题再一次变得空前热门,罗森布拉特的崇高雄心似乎也将得以实现。直到1989年另一个关键发现被公布,现在仍广为教科书及各大讲座引用。


多层前馈神经网络是普适模拟器 ( universal approximators)。」本质上,可以从数学证明多层结构使得神经网络能够在理论上执行任何函数表达,当然包括XOR(异或)问题。

然而,这是数学,你可以在数学中畅想自己拥有无限内存和所需计算能力——反向传播可以让神经网络被用于世界任何角落吗?噢,当然。也是在1989年,Yann LeCunn在AT&T Bell实验室验证了一个反向传播在现实世界中的杰出应用,即「反向传播应用于手写邮编识别(Backpropagation Applied to Handwritten Zip Code Recognition)」。


你或许会认为,让计算机能够正确理解手写数字并没有那么了不起,而且今天看来,这还会显得你太过大惊小怪,但事实上,在这个应用公开发布之前,人类书写混乱,笔画也不连贯,对计算机整齐划一的思维方式构成了巨大挑战。这篇研究使用了美国邮政的大量数据资料,结果证明神经网络完全能够胜任识别任务。更重要的是,这份研究首次强调了超越普通(plain)反向传播 、迈向现代深度学习这一关键转变的实践需求。


传统的视觉模式识别工作已经证明,抽取局部特征并且将它们结合起来组成更高级的特征是有优势的。通过迫使隐藏单元结合局部信息来源,很容易将这样的知识搭建成网络。一个事物的本质特征可以出现在输入图片的不同位置。因此,拥有一套特征探测器,可以探测到位于输入环节任何地方的某个具体特征实例,非常明智。既然一个特征的精准定位于分类无关,那么,我们可以在处理过程中适当舍弃一些位置信息。不过,近似的位置信息必须被保留,从而允许下面网络层能够探测到更加高级更加复杂的特征。 (Fukushima1980,Mozer,1987)

一个神经网络工作原理的可视化过程

或者,更具体的:神经网络的第一个隐层是卷积层——不同于传统网络层,每个神经元对应的一个图片像素都相应有一个不同的权值(40*60=2400个权值),神经元只有很少一部分权值(5*5=25)以同样的大小应用于图像的一小个完整子空间。所以,比如替换了用四种不同的神经元来学习整个输入图片4个角的45度对角线探测,一个单独的神经元能通过在图片的子空间上学习探测45度对角线,并且照着这样的方法对整张图片进行学习。每层的第一道程序都以相类似的方式进行,但是,接收的是在前一隐藏层找到的「局部」特征位置而不是图片像素值,而且,既然它们正在结合有关日益增大的图片子集的信息,那么,它们也能「看到」其余更大的图片部分。最后,倒数的两个网络层利用了前面卷积抽象出来的更加高级更加明显的特征来判断输入的图像究竟该归类到哪里。这个在1989年的论文里提出的方法继续成为举国采用的支票读取系统的基础。


这很管用,为什么?原因很直观,如果数学表述上不是那么清楚的话:没有这些约束条件,网络就必须学习同样的简单事情(比如,检测45°角的直线和小圆圈等),要花大把时间学习图像的每一部分。但是,有些约束条件,每一个简单特征只需要一个神经元来学习——而且,由于整体权值大量减少,整个过程完成起来更快。而且,既然这些特征的像素确切位置无关紧要,那么,基本上可以跳过图像相邻子集——子集抽样,一种共享池手段(a type of pooling)——当应用权值时,进一步减少了训练时间。多加了这两层——(卷积层和汇集层)——是卷积神经网络(CNNs/ConvNets)和普通旧神经网络的主要区别。


卷积神经网络(CNN)的操作过程


那时,卷积的思想被称作「权值共享」,也在1986年Rumelhart、Hinton和Williams关于反向传播的延伸分析中得到了切实讨论。显然,Minsky和Papert在1969年《感知机》中的分析完全可以提出激发这一研究想法的问题。但是,和之前一样,其他人已经独立地对其进行了研究——比如,Kunihiko Fukushima在1980年提出的 Neurocognitron。而且,和之前一样,这一思想从大脑研究汲取了灵感:


根据Hubel和Wiesel的层级模型,视觉皮层中的神经网络具有一个层级结构:LGB(外侧膝状体)→样品细胞→复杂细胞→低阶超复杂细胞->高阶超复杂细胞。低阶超复杂细胞和高阶超复杂细胞之间的神经网络具有一个和简单细胞与复杂细胞之间的网络类似的结构。在这种层状结构中,较高级别的细胞通常会有这样的倾向,即对刺激模式的更复杂的特征进行选择性响应,同时也具有一个更大的接收域,而且对刺激模式位置的移动更不敏感。因此,在我们的模型中就引入了类似于层级模型的结构。


LeCun也在贝尔实验室继续支持卷积神经网络,其相应的研究成果也最终在上世纪90年代中期成功应用于支票读取——他的谈话和采访通常都介绍了这一事实:「在上世纪90年代后期,这些系统当中的一个读取了全美大约10%到20%的支票。」


神经网络进入无监督学习时期

将死记硬背,完全无趣的支票读取工作自动化,就是机器学习大展拳脚的例子。也许有一个预测性小的应用? 压缩。即指找到一种更小体量的数据表示模式,并从其可以恢复数据原有的表示形态,通过机器学习找到的压缩方法有可能会超越所有现有的压缩模式。当然,意思是在一些数据中找到一个更小的数据表征,原始数据可以从中加以重构。学会压缩这一方案远胜于常规压缩算法,在这种情况下,学习算法可以找到在常规压缩算法下可能错失的数据特征。而且,这也很容易做到——仅用训练带有一个小隐藏层的神经网络就可以对输入进行输出。

自编码神经网络


这是一个自编码神经网络,也是一种学习压缩的方法——有效地将数据转换为压缩格式,并且自动返回到本身。我们可以看到,输出层会计算其输出结果。由于隐藏层的输出比输入层少,因此,隐藏层的输出是输入数据的一个压缩表达,可以在输出层进行重建。

更明确地了解自编码压缩


注意一件奇妙的事情:我们训练所需的唯一东西就是一些输入数据。这与监督式机器学习的要求形成鲜明的对比,监督式机器学习需要的训练集是输入-输出对(标记数据),来近似地生成能从这些输入得到对应输出的函数。确实,自编码器并不是一种监督式学习;它们实际上是一种非监督式学习,只需要一组输入数据(未标记的数据),目的是找到这些数据中某些隐藏的结构。换句话说,非监督式学习对函数的近似程度不如它从输入数据中生成另一个有用的表征那么多。这样一来,这个表征比原始数据能重构的表征更小,但它也能被用来寻找相似的数据组(聚类)或者潜在变量的其他推论(某些从数据看来已知存在但数值未知的方面)。

聚类,一种很常用的非监督式学习应用







请到「今天看啥」查看全文