上一篇文章提到了数据挖掘、机器学习、深度学习的区别:
深度学习具体的内容可以看这里:
笔记:神经网络的研究,因为人工智能的一位大牛Marvin Minsky的不看好,并且出书说明其局限性,而出现二十年的长期低潮。
它的意思是,当你表达一个概念的时候,不是用单个神经元,一对一地存储定义; 概念和神经元是多对多的关系: 一个概念可以用多个神经元共同定义表达, 同时一个神经元也可以参与多个不同概念的表达. 举个最简单的例子, 一辆 "大白卡车",如果分布式地表达,一个神经元代表大小,一个神经元代表颜色,第三个神经元代表车的类别. 三个神经元同时激活时,就可以准确描述我们要表达的物体.
分布式表征,和传统的 局部表征 (localized representation) 相比,存储效率高很多. 线性增加的神经元数目,可以表达指数级增加的大量不同概念.
分布式表征的另一个优点是,即使局部出现硬件故障,信息的表达不会受到根本性的破坏.
这个理念让 Geoffrey Hinton 顿悟, 使他四十多年来, 一直在神经网络研究的领域里坚持下来没有退缩.
九十年代末, 神经网络研究遇到的困境,除了慢,还是慢.
抛开计算速度的因素,传统神经网络的反向传播算法,捉虫时极为困难,一个根本的问题叫做所谓 vanishing gradient problem (梯度消失问题).
支持向量机 (SVM) 技术在图像和语音识别方面的成功, 使得神经网络的研究重新陷入低潮.
SVM 理论上更加严谨完备, 结果重复性好, 上手简单, 得到主流学术界的追捧.
计算神经科学研究者, Sebastian Sung (现为普林斯顿大学教授), 回答道, "喔, 因为我们有点古怪. 如果CIFAR 要跳出自己的舒适区,寻找一个高风险,极具探索性的团体,就应当资助我们了!"
最终 CIFAR 同意从2004年开始资助这个团体十年,总额一千万加元. CIFAR 成为当时, 世界上唯一支持神经网络研究的机构.
Hinton 拿到资金支持不久,做的第一件事,就是先换个牌坊.
Hinton 的同事, 此后时不时会听到他突然在办公室大叫, "我知道人脑是如何工作的了!".
在这篇论文里, Hinton 在算法上的核心,是借用了统计力学里的"玻尔兹曼分布"的概念 (一个微粒在某个状态的几率,和那个状态的能量的指数成反比, 和它的温度的倒数之指数成反比), 使用所谓的"限制玻尔兹曼机" (RBM)来学习.
RBM 引入了统计力学常用的概率工具. 而在七十年代, 概率和不确定性恰恰是主流的人工智能的研究者极为痛恨的.
RBM 相当于一个两层网络,同一层神经元之间不可连接 (所以叫 "限制"), 可以对神经网络实现"没有监督的训练" (unsupervised training). 深信度网络就是几层 RBM 叠加在一起.
略掉技术细节, RBM 可以从输入数据中进行预先训练, 自己寻找发现重要的特征, 对神经网络连接的权重进行有效的初始化. 这属于一种叫做特征提取器 (feature extractor)的神经网络, 也称自动编码器 (autoencoder).
经过 RBM 预先训练初始化后的神经网络,再用反向传播算法微调,效果就好多了.
Hinton 后来指出, 深度学习的突破,除了计算蛮力的大幅度提高以外,聪明有效地对网络链接权重的初始化也是一个重要原因.
Hinton 的论文里,经过六万个MNIST 数据库的图像培训后, 对于一万个测试图像的识别错误率最低降到了只有 /p/?refer=wangchuan
主流学术界的研究者,大多注重于在算法上的渐进式提高, 而轻视计算速度和用于训练的数据规模的重要性.
孔丘老师早在两千多年前, 就高瞻远瞩的为深度学习指明了方向: "学而不思则罔, 思而不学则殆".
用深度学习的语言来说,就是, "光有大数据,算得不快,则还是迷惘 ; 光算得快, 而没有大量的数据来训练,则还是疲倦无所得". 2007年之前, 用GPU编程,缺乏一个简单的软件接口. 编程繁琐,捉虫困难.这在 07年 Nvidia 推出 CUDA 的GPU 软件接口后才真正改善. 论文模型里的参数总数 (就是各层不同神经元之间链接的总数),达到一亿,与之相比, Hinton 2006年的论文里用到的参数数目,只有一百七十万. 论文结果显示,使用GPU运行速度和用传统双核CPU相比, 最快时要快近七十倍. 在一个四层, 一亿个参数的深信度网络上,使用GPU把程序运行时间从几周降到一天.
把训练神经网络的图像,刻意通过旋转, 放大缩小和弹性形变等方式进行改变.这样用于训练的图像数目大大增加. 使用 GPU后,改变六万张训练图像的计算速度从93秒降到了9秒钟, 快了十倍. 不断用计算变形实现的图像, 等价于一个数量无限的训练数据库.
论文结果显示,一个六层, 拥有一千两百万个参数的神经网络模型,经过两个小时的训练后,在测试图像上的错误率就降到1%. 经过114个小时训练后,模型的测试错误率更是降到了 /p/?refer=wangchuan
计算速度和数据规模的大幅度提高,也引导出更多算法上的改进.
在网络构架上,一些算法更多地借鉴人脑认知的成功经验: 多提高效率, 少做无用功. 多闭目养神,少乱说乱动. 多关注主要矛盾, 少关心细枝末节.
2003年纽约大学神经科学中心的 Peter Lennie 在论文中指出,人脑的神经元,一般最多 1-4%的比例, 可以同时处于激活状态. 比例更高时, 大脑则无法提供相应的能量需求.
最典型的传统激励函数,sigmoid function, 输出值在 0 和 1 之间, 也就意味着神经元平均下来, 每时每刻都在使用一半的力量.
这种高强度能量需求,对于普通生物体而言,是无法持续的.
鳄鱼90%的时间是一动不动的, (一个近距离观察者常会把它误认为是石雕.) 剩下5%的时间用于求偶交配, 5%的时间用于觅食.
鳄鱼的低能耗绿色生活方式,使它成为两栖动物界的寿星.虽然野生鳄鱼的平均寿命缺乏严格科学的统计,但是被捕获后人工饲养的鳄鱼中,有不少个体,记录在案的寿命超过了七十岁.
RELU 的优势还有下面三点:
-
传统的激励函数,计算时要用指数或者三角函数,计算量要比简单的RELU 至少高两个数量级.
-
RELU 的导数是常数, 非零即一, 不存在传统激励函数在反向传播计算中的"梯度消失问题".
-
由于统计上,约一半的神经元在计算过程中输出为零,使用 RELU 的模型计算效率更高,而且自然而然的形成了所谓 "稀疏表征" (sparse representation), 用少量的神经元可以高效, 灵活,稳健地表达抽象复杂的概念.
神经网络计算, 另一个常为人诟病的问题,是过度拟合 (overfitting).
所谓过拟合,也就是说机器学习的太好了,把一些不太一般的特性都学习到了。
一个拥有大量自由参数的模型,很容易通过调试,和训练数据吻合.但这并不意味着,这就是个好模型.
美国数学家冯纽曼 (John Von Neumann) 曾说, "给我四个参数,我的模型可以拟合一个大象. 给我五个参数, 我可以让它扭动它的鼻子." 神经网络模型的自由参数,现在往往超过一亿.如果说四个参数可以拟合一个大象的话,对于全世界总数不到一百万的大象来说,实在是游刃有余. 一个模型好坏的试金石,不在于和现有数据的拟合度, 而在于它是否可以在全新的情况和数据面前,做出正确的判断和预测.
解决这个问题的算法上的革新, 启迪又是来自生物界,来自有性繁殖和无性繁殖的对比.
这个数据库建立之初,包含了三百二十万个图像. 它的目的, 是要把英文里的八万个名词,每个词收集五百到一千个高清图片,存放到数据库里.最终达到五千万以上的图像.
2012年神经网络模型在ImageNet 竞赛中的突破,引起了工业界强大的兴趣.
Hinton 教授和他的两个研究生, Alex Krizhevsky 和 Ilya Sutskever, 2012 年底成立了一个名叫 DNNresearch (深度神经网络研究)的公司, 三个月后就被谷歌以五百万美元收购. Hinton 从此一半时间留在多伦多大学,另外一半时间在硅谷. 另外两位研究生则成为谷歌的全职雇员.
原来在纽约大学教书的杨立昆 (Yann LeCun), 2013 年底被脸书聘请为其人工智能研究院的总管.
曾在斯坦福大学和谷歌工作的吴恩达 (Andrew Ng), 2012年创立了网上教育公司 Coursera, 2014年五月被百度聘任为首席科学家, 负责百度大脑的计划.
人工智能的研究,并不止步于对人脑的简单模仿.
人脑的生理结构,过去二十万年没有大的变化.机器的运算速度, 则每十年以 100-1000 倍的增速在发展.这种增速,又促进更多新创的算法在摸索中涌现.
仅仅是三年之后, 一群80后的中国学者,又把图像识别的成就,推到一个全新的高度,一个超越受过良好训练的正常人的识别能力的新高度.
人工智能的海啸正排山倒海般袭来.
迄今为止我们讨论的神经网络模型, 都属于一种叫做前馈网络 (feedforward network) 的东西. 简而言之, 前馈网络, 信息从底层不断往前单向传输,故而得名.
本质上, RNN 和前馈网络的区别是, 它可以保留一个内存状态的记忆, 来处理一个序列的输入, 这对手写字的识别, 语音识别和自然语言处理上, 尤为重要.
鲁迅在小说"藤野先生"里曾有这么一段文字: "那坐在后面发笑的是上学年不及格的留级学生,在校已经一年,掌故颇为熟悉的了。他们便给新生讲演每个教授的历史。这藤野先生,据说是穿衣服太模胡了 ... 有一回上火车去,致使管车 的疑心他是扒手,叫车里的客人大家小心些。 "
通俗的说, LSTM 就是这样一个机制, 好似"藤野先生"里面的"留级学生", 帮你管理很久之前的"掌故", 决定何时调用, 何时忽略.
如果"忘记历史意味着背叛", 那么对于没有使用 LSTM 的神经网络, "忘记历史则意味着迷茫和不知所措".
"深度残余学习", 本质上是借鉴了 LSTM 模型的思路, 但是去掉了里面的 forget gate (遗忘之门) 这个概念而已.
简而言之,Schmidhuber 认为, 人脑的认知之所以会觉得某个东西有趣,是因为他看到了一个新的以前不知道,但是又能够很快学习理解的东西. 如果完全都在预期之中, 那就枯燥无味; 如果太古怪, 大脑无法迅速识别理解,也不会有回报的快感.
公开场合, 他以此理论最爱讲的段子是:
"生物组织四大驱动力都是 F 开头: Feeding (吃), Fighting (斗), Fleeing (逃), Mating (交配) ". ( 这个段子的槽点在最后一个词. 本来听众的预期也是以 F 开头, 但是却看到了 M 开头的另外一个同义词. )
艺术, 音乐和幽默, 全在算法掌握之中,一个在新颖和相识间寻找平衡的算法.
艺术家, 作曲家和段子手们, 要感受 RNN 和 LSTM 的威力, 也许还要再过几年.
但在其它领域, LSTM 很早就开始发飙了.
马尔科夫模型, 是一个概率的模型. 其核心思想, 就是一个系统, 下一个时间点的状态, 只取决于当前的状态, 而和更早的时间点 (昨天, 前天, 大前天)的状态无关.
高斯混合模型, 就是把现实中的数据, 分解成一些基于高斯概率密度函数 (又称正态分布)的叠加.
简而言之, GMM-HMM 就是用概率上的算法, 来猜测语音对应的文字.
实践上 GMM-HMM的算法 一直到 2009年, 都是错误率最低的算法. 但即使如此, 对大多数基准测试, 其单词识别错误率 (Word Error Rate) 一直接近 30%甚至更高.
研究者们借用了Hinton 使用的"限制玻尔兹曼机" (RBM) 的算法 (这个系列的第四篇有介绍过), 对神经网络进行了"预培训". 深度神经网络模型 (DNN), 在这里, 替代了高斯混合模型 (GMM), 来估算识别文字的几率.