深度学习的发展背景和历史

神经网络的发展背景和历史

一,

深度学习就是多层次的神经网络模型,神经网络的发展并不是一帆风顺的,它的发展经历了三起两落,而深度学习就是神经网络发展的第二次寒冬后兴起的产物。
十九世纪两个生物学者发现青蛙神经细胞间的模型:细胞体可产生刺激通过轴突传导至另一个神经元,并由树突接收后判断该刺激是否达到一定阈值,若达到则做出一定反应,没用达到阈值则不反应。1958年心理学家Rosenblatt由此得到启发,提出感知器模型,即抽象神经细胞间的传到模式为n个输入x的加权求和w,并通过阈值决定输入结果out。如图1-1所示,感知器是神经网格的雏形。
深度学习的发展背景和历史_第1张图片
图1-1 感知器模型

十九世纪六十年代的Multi-Layer Peception模型(多层感知器)和Claude Shannan提出的Mult-Output Perception模型更是将这一新的领域引入研究热潮。

二,

但是好景不长,1969年两位数学家M.Minsky和S.Papert提出感知机是一个线性模型,只能解决简单的线性非类问题甚至连简单的“异或”问题都不能处理。更致命的是,他们指出Multi-Layer Perception无法优化的问题,即通过增加神经网格层数,并且加入非线性激活函数虽然可以解决非线性问题,但是由于参数众多,没用好的算法来调节参数使得神经网络的研究陷入第一次低谷。
其实60年代存在一个算法的研究可以解决此问题,即多层感知机的反向传播。通过加入非线性的激活函数可以解决模型无法处理非线性的问题,并且通过设定以减少预测的结果与真实结果间差异为目的的参数,进行神经网络层间参数的反向更新,可以解决参数更新的问题。并且有着很多实际应用,例如1970年Sepo Linnainma将反向传播算法成功在电脑上运行;1983年JJ.Hopfield利用神经网络求解“流动售货员”问题等,使得神经网络研究重新得到关注但是介于第一次寒冬的猛烈,众多研究迟迟未能发表出来。

三,

直到1986年,David E.Rumelhart ,Geoffrey E.Hinton和Ronald J.Williams在Nature杂志上发表文章‘Learning representations by back-propagating errors’一文(即著名的反向传播算法),使神经网络早期的问题得到解决,成为神经网络的基本模型,再该领域产生深远影响,让神经网络的研究焕发第二春。
1989年发表的论文‘Multilayer Feedforward Networks are Universal Approximators’在理论上证明了多层神经网络可以逼近任何数据分布的,只要优化过程合理,就能获得合适的结果,使神经网络研究的过程得到一定的解释,这为广大神经网络研究的学者树立的信心。直到19世界末期,大多数神经网络算法已经初具雏形。

四,

神经网络的第二次冬天在1992年,随着著名的Support Vector Machine算法的提出(即支持向量机)使神经网络开始略显疲态,神经网络最大的问题是“试错性”,即随着神经网络层的增加,大量参数将呈几何倍数的增加,而参数的设定缺乏理论指导,毫不夸张的说参数上失之毫厘,则结果会差之千里。另一方面,激活函数的研究也不完备,很容易导至梯度离散和梯度爆炸现象。最后,运算起来对于当时的Cpu来说有着很大挑战,所以神经网络的研究者大多是理论工作,在计算机上实现比较困难。就支持向量机算法而言,其性能的优越性在文本分类中得到充分的体现,其算法的理论支持和优化结果都要好于神经网络算法。导至大批量的神经网络算法研究者转而研究支持向量机,神经网络的发展迎来了第二次寒冬。

五,

二十世纪初,深度学习营运而生,其实从本质来说,深度学习就是多层的神经网络,这个层次可能达到几百上千层,通过多层次的训练往往能达到很好的效果。例如2012年,Alex Krizhevsky等人发表的论文中通过五层神经网络模型来训练6000,0000张图片,其top-5的错误率仅有15.3%,而SVM算法则高达26.2%; 2006年的论文‘A fast learning algorithm for deep belief nets’中提出了有效的初始化方法layer by layer protraining,大大优化了神经网络算法。除此之外,深度学习的崛起还得益于以下五点原因:
1,显卡公司NVIDIA提出CUDA方案可以把gpu可以像cpu一样运行,而gpu有高度并行的特点,非常适合神经网络这种大参数的复杂运算。2009年发表的论文 Large-scale Deep Unsupervised Learning using Graphics Processors中使用gpu对无监督学习进行加速,比cpu运算快72倍,让深度学习这一复杂的算法从理论变成实践。
2.大数据的兴起,让深度学习拥有大量的样本可供训练,学习和测试。
3.RelU,sigmoid等激活函数的应用让阈值的设定变的合理,让通过阈值的输入结果变得方便研究和比较,变得更有意义。
4.BatchNorm是深度学习中常用的加速神经网络训练,加速收敛速度即稳定性的算法。
5.Xavier initialization和Kaiming initialization等初始化方法的提出,一个好的初始化方法让神经网络更容易收敛,输入结果更理想。
6.Dropout是神经网络不在依靠全连接层还是否能正常运行的尝试,增加算法容错性。形象的比喻成人来说,就是人体的某些组合出现问题,但是人还可以照常生活一样。

总结

总的来说,深度学习就是深层次的神经网络,其在本质上的理论基础并没用超出19世纪九十年代的研究成果,只是近现代硬件水平的提升,和一些算法细节方面的优化,让神经网络算法变得可行起来,介于其优化结果往往不错,深度学习已经成为目前最热的人工智能领域之一。Biggan,OpenAI Five和BAIdu Apollo等成果都引人瞩目。

你可能感兴趣的:(人工智能基础知识,神经网络,深度学习)