首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(图解)类神经网络的复兴:深度学习简史

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

作者头像
GPUS Lady
发布2018-04-02 11:39:54
1.8K0
发布2018-04-02 11:39:54
举报
文章被收录于专栏:GPUS开发者GPUS开发者GPUS开发者

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档