《智能系统与技术丛书 深度学习实践:基于Caffe的解析》—1深度学习简介
CHAPTER?1
第1章
深度学习简介
1.1 深度学习的历史
讲解深度学习,不得不提到人工神经网络,本书就先从神经网络的历史讲起,我们首先来看一下第一代的神经网络。
1. 第一代神经网络
神经网络的思想最早起源于1943年的MCP人工神经元模型,当时是希望能够用计算机来模拟人的神经元反应过程,该模型将神经元简化为三个过程:输入信号线性加权、求和、非线性激活(阈值法)。
第一次将MCP应用于机器学习(分类)的当属1958年Rosenblatt发明的感知器(perceptron)算法。该算法使用MCP模型对输入的多维数据进行二分类,并且还能够使用梯度下降法从训练样本中自动学习更新权值。1962年,感知器算法被证明为能够收敛(数学上在一定的范围之内,可以达到一个稳定的状态,也就是多次运行总能得到差不多的结果),理论与实践的效果引起了神经网络的第一次浪潮。
然而到了1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知器算法本质上是一种线性模型,只能处理线性分类问题,就连最简单的XOR(异或)问题都无法正确分类。这相当于直接宣判了感知器算法的死刑,神经网络的研究也陷入了近20年的停滞期。这一时期是人工神经网络的第一次寒冬。
2. 第二代神经网络
后来,现代深度学习技术大牛Hinton打破了非线性的诅咒,其在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,这有效地解决了非线性分类和学习的问题,该方法引起了神经网络的第二次热潮。
1989年,Robert Hecht-Nielsen证明了MLP的万能逼近定理,即对于任何闭区间内的一个连续函数f,都可以用含有一个隐含层的BP网络来逼近,该定理的发现极大地鼓舞了神经网络的研究人员。
也是在1989年,LeCun发明了卷积神经网络——LeNet,并将其用于数字识别,且取得了较好的成绩,不过当时这些成绩并没有引起足够的注意。
值得强调的是,自1989年以后,由于没有特别突出的方法提出,且NN(神经网络)一直缺少相应的、严格的数学理论支持,研究神经网络的热潮渐渐冷却下去。1991年,BP算法被指出存在梯度消失问题,即在误差梯度后向传递的过程中,后层梯度会以乘性方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习,该发现对当时NN的发展无异于雪上加霜,几乎降到了***。
3. 第三代神经网络
2006年,Hinton提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化+有监督训练微调。其主要思想是首先通过自学习的方法学习到训练数据的结构(自动编码器),然后在该结构上进行有监督训练微调。但是由于没有特别有效的实验验证,因此该论文并没有引起重视。
2011年,ReLU激活函数的提出能够有效地抑制梯度消失问题。
2011年,微软首次将深度学习技术应用在语音识别上,取得了重大突破。
2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,其团队通过构建的卷积神经网络(CNN)AlexNet一举夺得冠军,实力碾压第二名(SVM方法)的分类性能。也正是由于该比赛,CNN吸引到了众多研究者的注意。
这里不得不提一下AlexNet的创新点,具体如下。
1)AlexNet首次采用ReLU激活函数,极大地提高了收敛速度,并且从根本上解决了梯度消失问题。
2)由于ReLU方法可以很好地抑制梯度消失问题,因此AlexNet抛弃了“预训练+微调”的方法,完全采用有监督训练。也正因为如此,深度学习技术的主流学习方法也变为了纯粹的有监督学习。
3)扩展了LeNet5结构,添加Dropout层减小过拟合,LRN层增强泛化能力,并减小过拟合。
4)首次采用GPU对计算进行加速。
2006年到2012年可以说是神经网络的发展时期。
2013年之后,深度学习大规模发展,各个企业开始使用深度学习解决各种各样的任务,尤其是在人脸识别领域,深度学习让之前不可用的人脸识别变得可以应用于商业产品了。
2015年,Hinton、LeCun、Bengio论证了局部极值问题对于深度学习技术的影响,结果是Loss的局部极值问题对于深层网络来说其影响是可以忽略的。该论断也消除了笼罩在神经网络上的局部极值问题的阴霾。具体原因是虽然深层网络的局部极值非常多,但是通过深度学习技术的BatchGradientDescent优化方法很难达到局部最优,而且就算达到局部最优,其局部极小值点与全局极小值点也是非常接近的,但是浅层网络却不然,其拥有较少的局部极小值点,很容易达到局部最优,且这些局部极小值点与全局极小值点相差较大。论述原文其实没有给出证明,只是进行了简单的叙述,严密论证是猜想的。
了解完深度学习的历史之后,本书接下来带大家看看目前主流的几个深度学习框架,其中还包括笔者最常使用的MXNet和Caffe两个框架,以及笔者个人特别喜欢的语言Lua实现的Torch框架,每个框架都有其自己的特色,大家可以根据自己的喜好来进行选择,本书将从Caffe入手知识来撰写。
- 点赞
- 收藏
- 关注作者
评论(0)