老饼讲解:一步一步上手深度学习
好了,我们都知道LeNet的主要贡献就是首次将卷积神经网络投到实际使用,从LeNet模型结构就可以知道,现在的CNN基本结构就是从LeNet这里开始奠定的。
那么,CNN的思想是LeNet脑洞大开提出的吗?当然不是,它是由历史原因下促成的。
下面我们就来聊 一聊LeNet的故事吧,看看它到底是怎么产生的。
要说CNN的提出,还得从MLP神经网络的稀疏化说起。
只要在神经网络上混,就经常会听到"稀疏化"这一词,那它是什么呢,为什么要稀疏化呢。且听我们细细道来。
我们都知道,MLP就是一种全连接神经网络,前层与后层所有神经元都全部连接,如下:
全连接MLP的特色就是,在完全不知道x和y的关系时,进行黑箱拟合。管你是什么关系,采回数据我就扔个MLP过去拟合就行了!但是缺点呢,也是明显的,由于没有任何x、y之间的信息,它完全由数据所控制。
然而,对于具体问题时, 我们往往会掌握输入、输出之间的一些特性,因此,在特定问题时,我们就可以根据这些特性来修改我们的结构,举例如下:

如图所示,我们知道y受价格和外观两个因素影响,那么就可以用三层MLP,来先把价格、外观的变量综合成价格、外观的独立因子,然后再用它们来拟合y。从结构就可以知道,它其实相当于把全连接MLP的一些连接去掉,这就是MLP的稀疏化了。稀疏化后,模型结构就更倾向于符合我们的业务背景,这样训练出来的模型也就更不容易过拟合。
所以,MLP的稀疏化是啥呢?其实就是MLP下沉到具体业务时,根据业务特性,来将一些连接去掉,这样就可以避免MLP过于自由,让模型更贴切于我们的具体业务,既减轻训练的难度,又提升模型的泛化能力。
稍微写过论文的同学都会敏锐的发觉,用这个MLP稀疏化来发论文简直不要太容易,是的,只要找个具体业务,稍改一下MLP,那就是MLP稀疏化了,发发发论文!简直不要太爽!
好了,既然稀疏化这么好玩,又容易玩,那么,福岛邦彦(Kunihiko Fukushima)就登场了。
1980年日本科学家福岛邦彦(Kunihiko Fukushima)就到生物界找了篇猫眼视觉研究的论文(参见文献[1]),然后基于"猫眼看世界"的思想,提出了用卷积来充当眼睛,逐块读取图片的输入(参见文献【2】),如下:

如果仔细去想,就会发现,卷积层其实也是一种稀疏层,所以呢,卷积层其实就是福岛邦彦在图片应用上将MLP神经网络进行稀疏化的产物了,福岛邦彦的论文可以说是大家公认的CNN的起源了。
好了,接下来就是1988年了,Yann LeCun提出了首个大家公认的CNN模型-LeNet!大家可能奇怪,福岛不是已经提出CNN了吗,怎么说LeNet是第一个CNN模型,其实应该这样理解,福岛是的焦点是"理论提出",而LeNet呢,则是将这套理论投到实际应用。福岛是地基,LeNet是房子,所以,LeNet就是大家公认的第一个CNN模型了。
好了,到了这里,大家就会发现一切都那么顺理成章,谁也没真的去做大力的贡献。首先是有MLP,那自然就要将它稀疏化,别问为什么,问就是因为适合发论文,接下来,福岛就把在图片领域将MLP稀疏化了,并bala bala的写点猫眼研究背景,然后设计出一个稀疏结构,也就是现在的卷积结构,这时也不需要多有效,反正就是有依有据的将它稀疏化,这就可以发论文了,最后呢,Yann LeCun做图片应用时就顺手一掏,把福岛的拿过来、适当根据实际情况修改一下、弄出一点实际效果,ok,又可以发论文了,就这么的简单。
一些看老教材的同学,一直会追着研究卷积层为什么是稀疏化结构,其实这并不重要,当初蹭热度就必须往这上面蹭,它的稀疏化并不是那么的明显,现在不需要蹭这热度了,也就不用管它是不是稀疏化了~
《Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position》
评论