(图解)类神经网络的复兴:深度学习简史

前述:人工智能与机器学习的演进

1950年代计算机发明以来,科学家便希冀着利用计算机创造出人工智能。然而当时的人工智能理论采用的是逻辑推理方法,需要百分之百确定的事实配合、在实务上不容易使用;再加上当时的硬件效能低落、数据量不足,随着通用问题解决机(General Problem Solver)、日本第五代计算机等研究计划的失败,人工智能陷入了第一次的寒冬。

人工智能「现代鍊金术」的恶名,一直到1980年代开始才又复兴。此时科学家不再使用传统的逻辑推理方法,取而代之的是结合机率学、统计学等大量统计理论,让计算机能透过资料自行学会一套技能,并根据新给的数据、自行更正预测错误的地方、不断地优化该项技能,称为「机器学习」。

机器学习方法有许多种不同的数学模型,包括随机森林、类神经网络、感知器…族繁不及备载。此间爆发了两种不同的机器学习模型浪潮,第一波兴盛的模型为「类神经网络」、又称人工神经网络。

机器学习一直在尝试解决现实中复杂的资料切分问题。线性关系的资料能用一条直线表示,比如食量和肥胖度成正比;非线性关系的资料则无法用一条直线表达,比如指数成长的人口是一个指数函数;第一代神经网络单层感知机是线性模型,无法解决线性不可分的问题,因此早期的感知机神经网络也不受重视。

直到1986年,学者包括Rumelhart、Hinton等人提出「反向传播算法」(Backpropagation)训练神经网络, 使的具备非线性学习能力的多层感知机 (Multi-Layer Perceptron)的可能露出一丝曙光。让神经网络红极一时。

还记得我们提过的类神经网络的基本原理吗?先让资料讯号通过网络,输出结果后、计算其与真实情况的误差;再将误差讯号反向传播回去、对每一个神经元都往正确的方向调整一下权重;如此来回个数千万遍后,机器就学会如何辨识一只猫了。

反向传播时,资料科学家会设定更正错误的方法──「代价函数」(Cost Function)。代价函数是预测结果和真实结果之间的差距。代价函数的优化(Optimization)是机器学习的重要研究目标,也就是:如何找到优化的最佳解(误差的最小值)?如何用更快的方式逼近最佳解?

如何逼近最佳解有很多种不同的算法,最典型的方法是采用随机梯度下降法(Stochastic Gradient Descent)。当线性关系资料的代价函数为凸函数,找到最佳解不是问题;然而问题在于非线性关系的资料:其代价函数为非凸函数,求解时容易陷入局部最佳解、而非全域最佳解,这个问题叫做梯度消失问题(Vanishing Gradient)。

更糟的是,梯度消失问题会随着神经网络层数的增加而更加严重,意即,随着梯度逐层不断消散、导致神经网络对其神经元权重调整的功用越来越小,所以只能转而处理浅层结构(比如2层)的网络,从而限制了性能。

单层感知机失败的原因乃不能切分非线性关系的资料;虽然1986年的学界提出了反向传播算法,却仍无法解决非线性资料的优化问题,多层感知机仍然无法实践。这使得类神经网络在刚出现时虽大为火红、却在不久后又没落了下去。

经历了单层感知机、和多层感知机的两次失败,当时的学界只要看到出现「神经网络」字眼的论文或研究计划,便会立刻贬斥,认为:多层的神经网络是不可能的。然而若采用仅有两层的神经网络,不如使用其他理论更完备也更好实践、同样只有两层的「浅层」机器学习模型。因此在1990年代,支持矢量机(Support Vector Machine)等「浅层机器学习模型」成为主流技术,此为机器学习的第二波浪潮。

接下来,让我们来继续谈谈类神经网络是如何再度复甦。

2006年,Hinton带着「深度学习」回归幕前

若是没有一个关键人物,那么类神经网络的故事可能也就到此为止了。

Hinton教授作为反向传播算法的发明人之一,即使不被学界重视,30多年来、对于神经网络研究仍然不离不弃。Hinton教授的苦心钻研,终于在2006年时有了成果,成功解决了反向传播的优化问题。

他是怎么成功训练神经网络的呢? Hinton提出了限制玻尔兹曼机和深度信念网络两个概念:

限制玻尔兹曼机 (RBM)

限制玻尔兹曼机 (Restricted Boltzmann Machines, RBM)为仅有2层结构的浅层神经网络,第一层称为可视层(visible layer)、第二层称为隐藏层(hidden layer)。

玻尔兹曼机模型中,同一层之间的神经元也会连结在一起;然而为了降低复杂度,我们设计让同一层的神经元彼此间没有连结,这也是为什么称为「限制」玻尔兹曼机的意思。不同层的神经元彼此间会连接在一起,并采取随机决策(stochastic decisions)来决定一个神经元要传导或不传导。

RBM作为一种神经网络,其设计当然也包括了前向传导和反向传导两个步骤:

(1) 前向传导 (forward)

丢入一笔资料进行运算时,在可视层、每个神经元都会接收到一个资料的低层级特征。比如当我们丢入一堆灰阶的图片,每个可视层的神经元会接收到每张图片的每一个像素(pixel)。

以手写数字辨识数据库MNIST为例,MNIST图像共有784个像素,故RBM神经网络在处理MNIST资料时,在可视层就必须有784个输入的神经元。(注:MNIST 数字是1998年由纽约大学的LeCun教授为了美国邮政部开发的手写数字图片数据库, 可参考: http://yann.lecun.com/exdb/mnist/)

每个输入值 x (input)都会乘以一个权重 w (weight)、加总后再加上一个偏差值 b (bias);由于神经网络中的神经元有些可能会传递、有些不会,加上偏差值的目的是为了至少让某些神经元能被激发起来。最后在隐藏层输出结果 a。

也就是说各个神经元的激发函数公式为:

激发函数 f( (权重 w * 输入值 x) + 偏差值 b ) = 输出结果 a

(2) 重建(Reconstruction)

RBM的目标是为了重建原始的输入值 x、且还原的越精确越好。在反向传导的过程中,刚刚的输出结果 a在隐藏层作为新的输入值,同样乘上权重 w、加上一个偏差值,最终在可视层输出资料重建的结果 r。

接下来,我们在可视层比较一开始输入值 x和重建值 r的差异,以分辨重建资料的精确度。RBM使用一种叫做「KL Divergence」的方法来衡量网络重建资料的准确度。

整个网络会不断向前传递过去、再向后传导将原始资料重建回来,期间来回数次、不断调整每个神经元的权重和偏差值,直到「原始资料」和「重建后资料值」两者差异被优化到最小值为止。也就是说,我们尽量让重建回去的资料值和原始资料接近一模一样。

关于RBM背后的机率理论相当复杂,在此略过不提,欢迎有兴趣的读者自行查阅。简单来说,藉由RBM试图「重建」原有资料的过程,让神经网络能自行发觉资料隐含的规律。看起来很眼熟?没错,放入没有被标签过的资料、我们可以利用RBM来做无监督学习(unsupervised-learning)。

甚至在重建的过程中,可以发现为了将资料重建回去、资料最关键的特征是什么。也就是说,我们能知道「用到哪些关键的特征」就可以成功重建,得以利用RBM来提取资料的特征。

深度信念网络 (DBN)

接下来Hinton使用了一个很聪明的技巧——将RBM堆栈起来、建立一个多层的神经网络,称为深度信念网络 (Deep Belief Network)。

训练时,深度信念网络会一次训练2层网络、而这2层正是RBM模型;将数个RBM模型堆栈起来,每一层模型的输出值即为下一层模型的输入值,直到抵达最后一层输出层为止,由于我们直接将无标签(unlabeled data)资料放入网路中,因此深度信念网络是一个无监督学习过程。

学习到最后,我们可以结合半监督学习——透过一些少量的标签资料(labeled data),对深度信念网络的神经元权重和偏差值进行微调(Fine-Tune),让精确度更高。

预先训练完后,在最后一层才放「分类器」。也就是说,不直接将资料放进分类器中,而是将资料预先经过RBM模型的训练。藉由这样无监督或半监督、逐层的预训练(unsupervised/semi-supervised, layer-wise pre-training)的过程,深度信念网络能找到输入资料隐含的规律、具备优异的特征学习能力。就像逐渐聚焦的相机镜头,深度信念网络让资料越来越清晰。

但这跟我们想解决的梯度消失(vanishing gradient)问题有什么关系呢?

若尚未听过梯度消失问题的读者,请先参阅【(图解)机器学习的衰颓兴盛:从类神经网络到浅层学习】一文。

在线性回归当中,使用随机梯度下降法、从任意一个点出发搜索,最终必然是下降到全域最小值(global minimum)。所以初始值可以任意设为0。

问题是非线性回归——陷入局部最小值是多层神经网络挥之不去的阴影。随着层数的增加,非凸的代价函数越来越复杂、局部最小值点成倍增长。

传统的神经网络随机初始化网络中的权值,导致网络很容易收敛到局部最小值。因而,如何避免一开始就倒霉地被吸到一个超浅的盆中呢?比起随机选择初始值、或是将初始值设为零,如果能找到一个理想的起始点开始梯度下降,将能够更快、更容易找到全局最小值。

从1980年代到2006年的十多年间,机器学习领域以支持矢量机(SVM)等简单高效的分类方法为主,这些方法在处理非线性关系的资料时,多依赖资料科学家将资料分段、采用局部线性逼近;然而这相当仰赖资料科学家本身的经验。

更甚地,研究人员还依据经验或相关知识,设计了许多「人造特征」。比如在图像识别领域, SIFT、HOG、Gabor等人工设计的特征被用来描述图像的梯度或纹理性质。虽然在很多问题上取得了还不错的性能,但人造特征无法广泛的并用、且设计新特征需要强大的经验和知识。最重要的是,面对大数据时,难以自然找到其中蕴含的规律。

深度神经网络可以自动学习特征,而不必像以前那样还要请专家以人工建造特征,大大推进了智能自动化。

2006年可以说是深度学习起飞的一年。经过了三十年的研究,Hinton在《Science》等期刊发文,指出「具备多层隐藏层的神经网络具有更为优异的特征学习能力,且其在训练上的复杂度可以通过逐层初始化来有效缓解」。

这篇惊世骇俗之作名为《Reducing the dimensionality of data with neural networks》。在这篇论文中, Hinton提出深度信念网络、使用无监督预训练方法优化网络权值的初始值,再进行权值微调(Fine-Tune),让多层神经网络能够真正被实践。

又由于神经网络的研究在过去被弃置已久,故Hinton教授又将深度神经网络重新换上「深度学习」(Deep Learning)的名字卷土重来,Hinton也因此被称为「深度学习之父」。

话说回来,目前已经没什么人在使用RBM或深度信念网络了;后来的研究发现,简单的初始化和激发函数的调整,才是解决Vanishing Gradient Problem最好的方法。现今最为广泛被使用的方法是「多层感知器(MLP) + ReLU函数」。

ReLU函数近年来有取代传统sigmoid函数神经元的趋势。

不过在2006年,Hinton以深度信念网络第一个提出「深度神经网络可行」的说法,让学界把眼光重新放回神经网络这个领域。可以说RBM只是深度学习浪潮的一个开端。

真正让深度学习彻底的火爆起来,还是2012年那年10月发生了一件大事,从此革命火势一发不可收拾。到2016年的今天,深度学习俨然成为未来十年内最重要的技术。究竟是发生了什么事情呢?

下篇,就让我们来看看,NVIDIA的GPU是如何和深度学习技术相辅相成,成为时下最热门的硬软件技术应用。

文章來源:股感知識庫 | 圖片來源:Joseph Wang

原文发布于微信公众号 - 吉浦迅科技(gpusolution)

原文发表时间:2017-02-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏美团技术团队

【AI in 美团】深度学习在文本领域的应用

AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技...

2432
来自专栏新智元

【突破】深度学习计算消耗降低95%,KDD2017哈希法研究加速神经网络进化

【新智元导读】 莱斯大学两位研究员使用一种基于 Hashing 的新技术,大幅减少了训练和测试神经网络所需的计算量。他们称:“1000 个神经元的网络我们能节能...

4079
来自专栏ATYUN订阅号

NLP总结文:时下最好的通用词和句子嵌入方法

它们在固定长度的稠密向量中编码单词和句子,以大幅度提高神经网络处理文本数据的能力。

1262
来自专栏CSDN技术头条

深度学习已成功应用于这三大领域

本文中,我们将介绍如何使用深度学习来解决计算机视觉、语音识别、自然语言处理以及其他商业领域中的应用。首先我们将讨论在许多最重要的AI 应用中所需的大规模神经网络...

2409
来自专栏AI研习社

不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式

〇、序 之前一段时间,在结合深度学习做 NLP 的时候一直有思考一些问题,其中有一个问题算是最核心一个:究竟深度网络是怎么做到让各种 NLP 任务解决地如何...

4476
来自专栏AI研习社

不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式

〇、序 之前一段时间,在结合深度学习做 NLP 的时候一直有思考一些问题,其中有一个问题算是最核心一个:究竟深度网络是怎么做到让各种 NLP 任务解决地如何...

4796
来自专栏PPV课数据科学社区

神经网络和深度学习简史(全)

深度学习掀起海啸 如今,深度学习浪潮拍打计算机语言的海岸已有好几年,但是,2015年似乎才是这场海啸全力冲击自然语言处理(NLP)会议的一年。——Dr. Chr...

41111
来自专栏华章科技

【算法】神经网络和深度学习简介

如今,深度学习浪潮拍打计算机语言的海岸已有好几年,但是,2015年似乎才是这场海啸全力冲击自然语言处理(NLP)会议的一年。——Dr. Christopher ...

921
来自专栏AI科技评论

学界 | 清华大学自动化系张长水教授:神经网络模型的结构优化

AI科技评论按:3月4日,中国人工智能学会AIDL第二期【人工智能前沿讲习班】在北京中科院自动化所举行,本期主题为【机器学习前沿】,由周志华教授担任学术主任,前...

4059
来自专栏人工智能头条

深度学习已成功应用于这三大领域

1092

扫码关注云+社区

领取腾讯云代金券