CNN发展史简述

相信很多人和我一样,在学习深度学习的时候会发现五花八门的各种模型名称,搞到头皮发麻,所以这次就打算简单介绍一下各种CNN的改进版本,在后续会对部分模型做详细分析介绍。

第一个要介绍的是LeNet,诞生于1998年,可以说它就是我们入门时学习的卷积神经网络,包含了最基本的卷积层、池化层、全连接层。

第二个是AlexNet,和LeNet相比,使用了ReLU作为激活函数(验证了效果在较深网络超过了sigmoid,成功解决了sigmoid在较深网络的梯度弥散问题);使用Dropout、Data augmentation等方法防止过拟合;使用重叠的最大池化而不是较常用的平均池化,避免了平均池化的模糊化效果;提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。这些改进使得网络层数得到进一步加深(5个卷积层+3个全连接层),别看只是八层,这里已经包含了6000万个参数和65万个神经元了。

在这里插入图片描述
从整个模型来看,在前几个卷积层,参数量并不多,如果换成全连接,那么参数量和计算量就会变得十分可怕了,这就是卷积层最大的作用,通过较小的参数提取有效的特征,而且从实验结果来看,去掉任何一个卷积层都会导致模型性能大幅度下降。

第三个是VGG-Net,和AlexNet相比只是进一步加深层数(16-19层),在结构上并没有特别的创新点。

第四个是GoogLeNet,主要创新点是提出了Inception结构,可以看到其他CNN都在想办法让层数变深,但是GoogLeNet基于Network in Network的思想,对卷积核进行改进,将原来的线性卷积层(linear convolution layer)变为多层感知卷积层(multilayer perceptron),使得卷积核具有更强的特征提取能力。同时使用全局平均池化层(即将图片尺寸变为1´1)来取代最后全连接层,去掉了全连接层使得参数大量减少,也减轻了过拟合。

第五个是Resnet,通过引入残差连接使得模型层数进一步加深:

在这里插入图片描述
最后一个是DenseNet,它提出了密集连接的概念,也就是网络结构中任意两层之间都有直接连接,每一层的输入都是前面所有层的输出的并集,密集连接缓解了梯度消失问题,加强了特征传播,极大减少了参数量。

上面介绍了六个比较著名的CNN模型,可以看出,其实CNN的发展主要还是以增加层数为目标,主要的原因是卷积核只能提取局部特征,针对远距离特征,在不改变卷积核大小的情况下,只能通过加深模型层数,在更深的卷积层中对提取远距离特征,如下图所示,对于一个距离为5的特征,假如使用大小为3的卷积核,最起码要有两层卷积层才能覆盖到,而对于更远距离的特征,同样道理,就需要更深的卷积层才能覆盖到了。

在这里插入图片描述
顺带再说明一下,为什么CNN需要做那么多改进才能使得层数加深,或者说,为什么普通的深层CNN难以训练,其实这个应该不仅仅是CNN遇到的问题,目前神经网络很多时候都会遇到一种奇怪的情况,就是层数加深的过程中,一开始确实越深越好,可是深到一定程度,模型的效果就遇到瓶颈甚至下降了,其实原因有很多,比如梯度消失梯度爆炸,ReLU、残差连接、密集连接可以缓解这种现象,比如过拟合,可以通过Dropout、全局平均池化层来改善。

所以总的来说,CNN需要深层,更需要聪明地深层,有一种说法我觉得挺好的,神经网络本身的无限可能性让模型走得太远,以至于已经忘记了最初出发的目的,所以才需要人类时时去提醒。

最近本人在github写了一个自然语言处理的入门教程,包括模型的代码和模型的分析介绍,欢迎交流:NLPBeginner

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值