关于深度学习,这可能是你最容易读进去的科普贴了(二)

36氪的朋友们·2016-02-22 13:28
科普贴的第二篇来了~

编者按:本文作者王川,投资人,中科大少年班校友,现居加州硅谷,个人微信号9935070,36 氪经授权转载自其个人微信公众号 investguru。查看本系列文章点这里

1970年,当神经网络研究的第一个寒冬降临时。在英国的爱丁堡大学,一位二十三岁的年轻人,Geoffrey Hinton,刚刚获得心理学的学士学位。

Hinton 六十年代还是中学生时,就对脑科学着迷。当时一个同学给他介绍关于大脑记忆的理论是: 

大脑对于事物和概念的记忆,不是存储在某个单一的地点,而是像全息照片一样,分布式地,存在于一个巨大的神经元的网络里。

分布式表征 (Distributed Representation),是神经网络研究的一个核心思想。

它的意思是,当你表达一个概念的时候,不是用单个神经元一对一地存储定义;概念和神经元是多对多的关系:一个概念可以用多个神经元共同定义表达,同时一个神经元也可以参与多个不同概念的表达。

举个最简单的例子。一辆 "大白卡车",如果分布式地表达,一个神经元代表大小,一个神经元代表颜色,第三个神经元代表车的类别。三个神经元同时激活时,就可以准确描述我们要表达的物体。

分布式表征和传统的局部表征 (localized representation) 相比,存储效率高很多。线性增加的神经元数目,可以表达指数级增加的大量不同概念。

分布式表征的另一个优点是,即使局部出现硬件故障,信息的表达不会受到根本性的破坏。

这个理念让 Hinton 顿悟,使他四十多年来,一直在神经网络研究的领域里坚持下来没有退缩。

本科毕业后,Hinton 选择继续在爱丁堡大学读研,把人工智能作为自己的博士研究方向。

周围的一些朋友对此颇为不解。"你疯了吗? 为什么浪费时间在这些东西上? 这 (神经网络)早就被证明是扯淡的东西了。"

Hinton 1978 年在爱丁堡获得博士学位后,来到美国继续他的研究工作。

神经网络当年被 Minsky 诟病的问题之一是巨大的计算量。

简单说,传统的感知器用所谓 "梯度下降"的算法纠错时,耗费的计算量和神经元数目的平方成正比。当神经元数目增多,庞大的计算量是当时的硬件无法胜任的。

1986年七月,Hinton 和 David Rumelhart 合作在自然杂志上发表论文, "Learning Representations by Back-propagating errors",第一次系统简洁地阐述反向传播算法在神经网络模型上的应用。

反向传播算法,把纠错的运算量下降到只和神经元数目本身成正比。

反向传播算法,通过在神经网络里增加一个所谓隐层 (hidden layer),同时也解决了感知器无法解决异或门 (XOR gate) 的难题。

使用了反向传播算法的神经网络,在做诸如形状识别之类的简单工作时,效率比感知器大大提高。

八十年代末计算机的运行速度,也比二十年前高了几个数量级。

神经网络的研究开始复苏。

Yann Lecun (我给他取个中文名叫 "严乐春"吧) 1960年出生于巴黎。1987年在法国获得博士学位后,他曾追随 Hinton 教授到多伦多大学做了一年博士后的工作,随后搬到新泽西州的贝尔实验室继续研究工作。

在贝尔实验室,严乐春 1989年发表了论文, "反向传播算法在手写邮政编码上的应用"。他用美国邮政系统提供的近万个手写数字的样本来培训神经网络系统,培训好的系统在独立的测试样本中, 错误率只有5%。

严乐春进一步运用一种叫做"卷积神经网络" (Convoluted Neural Networks) 的技术,开发出商业软件用于读取银行支票上的手写数字,,这个支票识别系统在九十年代末占据了美国接近20%的市场。

此时就在贝尔实验室,严乐春临近办公室的一个同事的工作,又把神经网络的研究带入第二个寒冬。

Vladmir Vapnik,1936年出生于前苏联,90年移民到美国,在贝尔实验室做研究。

早在1963年,Vapnik 就提出了 支持向量机 (Support Vector Machine) 的算法。支持向量机,是一种精巧的分类算法。

除了基本的线性分类外,在数据样本线性不可分的时候,SVM 使用所谓 "核机制" (kernel trick) 的非线性映射算法,将线性不可分的样本转化到高维特征空间 (high-dimensional feature space),使其线性可分。

SVM,作为一种分类算法,九十年代初开始,在图像和语音识别上找到了广泛的用途。

在贝尔实验室的走廊上,严乐春和 Vapnik 常常就(深度)神经网络和 SVM 两种技术的优缺点,展开热烈的讨论。

Vapnik 的观点是:SVM,非常精巧地在 "容量调节" (Capacity Control)上 选择一个合适的平衡点,而这是神经网络不擅长的。

什么是 "容量调节"?  举个简单的例子:如果算法容量太大,就像一个记忆力极为精准的植物学家,当她看到一颗新的树的时候,由于这棵树的叶子和她以前看到的树的叶子数目不一样,所以她判断这不是树;如果算法容量太小,就像一个懒惰的植物学家,只要看到绿色的东西都把它叫做树。

严乐春的观点是:用有限的计算能力,解决高度复杂的问题,比"容量调节"更重要。支持向量机,虽然算法精巧,但本质就是一个双层神经网络系统。它的最大的局限性,在于其"核机制"的选择。当图像识别技术需要忽略一些噪音信号时,卷积神经网络的技术,计算效率就比 SVM 高的多。

在手写邮政编码的识别问题上,SVM 的技术不断进步,1998年就把错误率降到低于 0.8%,2002年最低达到了 0.56%,这远远超越同期传统神经网络算法的表现。

神经网络的计算,在实践中还有另外两个主要问题:

第一,算法经常停止于局部最优解,而不是全球最优解。这好比"只见树木,不见森林"。

第二,算法的培训,时间过长时,会出现过度拟合 (overfit),把噪音当做有效信号。

(未完待续)

+1
0

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

下一篇

神经网络研究的历史是怎样的?让我们一起在历史回顾中深入浅出的了解深度学习究竟是怎样的。

2016-02-22

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业