深度学习其实在1943年就已经提出,其中经理了三次改革与浪潮,发展至今被越来越多的人认识与使用,甚至发展为至今的人工智能。
1943年
《数学生物物理学公告》(ALogicalCalculusoftheIdeasImmanentinNervousActivity),由神经学家麦卡洛克(W.S.McCilloch)和数学家皮兹(W.Pitts)发表的论文。构建了神经网络和MCP模型,称为MCP模型。所谓的MCP模型,其实就是根据生物神经元的结构和工作原理构造出的一种抽象化、简化的模型,从而诞生了所谓的“模拟大脑”,人工神经网络的大门由此打开。
MCP在那时就希望能用计算机模拟人的神经元反应,该模型将神经元简化为三个过程:输入信号线性加权,求和,非线性激活(阈值法)。下面的图表显示了它。
1986年
神经网络之父GeoffreyHinton于1986年提出了一种适合于多层感知器(MLP)的BP算法,并利用Sigmoid进行非线性映射,有效地解决了非线性分类和学习问题。这种方法引发了神经网络的第二次热潮。
1990年代。
指出BP算法存在着梯度消失问题,即在误差梯度后项传递过程中,后层梯度以乘性的方式叠加到前层,由于Sigmoid函数的饱和特性,使后层梯度变小,误差梯度传到前层几乎为0,因此无法对前层进行有效的学习,从而阻碍了深度学习的进一步发展。
另外,90年代中期,各种浅层机器学习模型如支持向量机算法诞生(SVM算法)被提出,SVM也是一种监督学习模型,用于模式识别、分类和回归分析等。SVM是基于统计的支持向量机,与神经网络存在明显差异,支持向量机等算法的提出又是深度学习的障碍。
2006-2012年发展计划。
2006年,加拿大多伦多大学机器学习领域的教授、神经网络之父GeoffreyHinton和他的学生RuslanSalakhutdinov在顶级学术刊物《科学》上发表了一篇文章,这篇文章提出了深层网络训练中梯度消失问题的解决方法:无监督预训练的初始化+有监督的训练微调。斯坦福大学、纽约大学、加拿大蒙特利尔大学等都已成为深度学习研究的重镇,在这一时期开启了学术界和产业界的深度学习浪潮。
2011年,ReLU激活功能被提出,它能有效地抑制梯度消失问题。从2011年开始,微软在将DL应用于语音识别方面取得了重大突破。在微软研究院和Google语音识别研究者中,先后利用DNN技术将语音识别错误率降低20%~30%,是语音识别领域十多年来最大的突破。在2012年,DNN在图像识别领域取得了惊人的成绩,在ImageNet评估中,错误率从26%降至15%。DNN也被应用到了今年的DrugeActivity药物公司的DrugeActivity,并取得了世界最佳成绩。
具体地说:爆发期(2006-现在)
这次人工智能的发展主要是深层次学习,即深度神经网络的驱动。尽管神经网络通过非线性激活函数来解决理论上的异或异问题,但在上个世纪八九十年代,神经网络已成为可能。但是,在当时,由于计算资源和技术的限制,无法对网络进行更深层次的训练,实际效果也不比传统的“浅度”机器学习方法好,所以没有太多的关注。
在2006年之前,Hinton还提出了deepbeliefnets(DBN),通过预先训练pretraining的方法,可以训练更深层的神经网络。
Hinton和DengLi在2009年首次将深度神经网络(DNN)用于语音识别系统(DNN)训练声学模型,最终系统的单词错误率(WordErrorRate/WER)大幅下降。
并且使深度学习在学术界声名鹊起的是2012年的ILSVRC评测。到2012年为止,最好的top5分类错误率超过25%,而AlexNet2012年第一次在竞赛中使用深度卷积网络,获得16%的错误率。
此后,每年都有新的好成绩出现,2014年是GoogLeNet和VGG,2015年则是ResNet残差网,目前最好的top5分类错误率低于5%。
实际上,更多的人(特别是中国人)知道深度学习进步的是2016年GoogleDeepMind开发的AlphaGo,以4比1战胜人类世界冠军李世石。于是人工智能进入了另一个繁荣时期,各大资本竞相投入,甚至国家层面的人工智能发展计划也相继出台。
没有指导的预训练。
当许多现代深度学习模型,如DNN,CNN和RNN(LSTM)很早就被提出,2006年以前人们还没有办法对神经网络进行许多层次的训练,所以在效果上,深度学习和传统的机器学习并没有显著的区别。
在2006年,Hinton等人在论文《Afastlearningalgorithmfordeepbeliefnets》中提出了通过贪心的,无监督的DeepBeliefNets(DBN)逐层Pretraining的方法以及最后监督fine-tuning的神经网络,首次实现了一种多层(5层)训练神经网络。之后的研究热点是如何利用各种技术训练深度的神经网络,这一过程大概持续到2010年。除了DBN之外,其主要思想是使用各种非监督的Pretraining方法,例如RestrictedBoltzmannMachines(RBM)、DeepBoltzmannMachines(DBM)和DenoisingAutoencoders等一系列模式。
深度学习备受关注的一个重要原因是,Alex等人实现的AlexNet在LSVRC-2012ImageNet竞赛中表现非常出色。之后,卷积神经网络及其变种被广泛地应用于各种图像相关的任务。LSVRC年度竞赛将在2012至2016年制作出更深入的模型和更好的结果。
滚筒神经网络的发展过程?
假如说最近哪一个方向最火的电脑视觉,生成模型绝对是其中之一。辨认一个物体并不容易,但要制作物体却比较难(三岁小孩就可以认出猫,而三岁的小孩可以画好猫)。使构建模型火了起来的是Goodfellow于2014年提出的Generativeadversarialnets(简称GAN)。
构建网络开发过程???
目前有两个方向我认为值得关注:一是自动优化网络结构,二是半监督学习。
网络结构的自动优化;
关于自动网络优化的最新文章是Google研究院的EfficientNet:RethinkingModelScalingforConvolutionalNeuralNetworks,它希望找到一种能够同时提高网络精度和效率的神经网络扩展方法(减少参数)。要达到这一目标,一个非常重要的步骤就是平衡三维的宽度、深度和分辨率。
半监督学习是指通过未标注图像对学习特征进行预训练,再利用少量监控数据进行学习。最近的文章是GoogleDeepMind的Data-EfficientImageRecognitionwithContrastiveCoding。本文通过ContrastivePredictiveCoding方法从大量未标注的数据量中提取特征。简单地添加一个线性的softmax层就可以使ImageNet超越了使用AlexNet的监督学习模式。
2003年,Bengio在论文中提出了ANeuralProbabilisticLanguageModel,通过Embedding矩阵将单词编码为低维稠密的向量,从而实现相似上下文的共享——例如“北京”和“上海”经常在类似的上下文中出现,它们就会被编码为更相似的向量,这样,即使“上海天气”在训练数据中出现,也能通过“北京”和“上海”这两个向量在相似的环境下共享,因此即使“上海天气”在训练数据中也不会出现。
2013年,Mikolov等人在Efficientestimationofwordrepresentationsofwordsandphrasesandtheircompositionality开始了这一旅程。而他们所建议的Word2Vec能简单有效地学习出好的词向量。
word2vec的原理和发展??
但Word2Vec并不能理解上下文信息,比如bank的意思是银行和水边。但它并不能确定具体的意思在某一句话中,所以它只能将两种语义同时编码到这个矢量中。但在具体的下流应用中,某一句话,只需要一个语义。对于多义词,比如Neelakantan等人,2014年EfficientNon-parametricEstimationofMultipleEmbeddingsperWordinVectorSpace,这当然是尝试,但没有成功。
使用RNN进行上下文处理的另一个工具。但一般RNN都存在梯度消失的问题,所以通常使用LSTM。LSTM由SeppHochreiter和JürgenSchmidhuber于1997年提出。直到2016年左右,才出现了大量的自然语言处理任务,这成为了当时文本处理的“事实”标准——所有人都认为首先应该使用LSTM。另外,LSTM的其他变体和GRU也得到了广泛的应用。RNN不仅能够学习上下文的语义关系,而且从理论上讲可以解决长距离的语义依赖(当然,即使引入了门的机制,对于过长的语义关系来说,学习起来也是困难的)。