ImageNet大规模视觉识别挑战赛(ILSVRC)
ImageNet项目是一个用于视觉对象识别软件研究的大型可视化数据库
2017年为最后一届
在2010-2011年比较shallow的网络,中间层2-4层
在2012年那一篇爆炸性的paper出来,AlexNet(8层)在2012年ImageNet挑战赛上把错误率一下子降低了近10个百分点,也就是准确率提升了10个百分点。这在当时产生了很大的影响,从而使得大家开始关注深度学习
然后14年是19层的VGG和22层的GoogleNet。GoogleNet是第一名,VGG是第二名
15年微软亚洲研究院的华人学者何恺明提出了到现在为止非常有名气的,使用非常广泛的ResNet
LeNet5
94年提出,作者是Yann LeCun
LeNet-5 这个网络虽然很小,但是它包含了深度学习的基本模块:卷积层,池化层,全连接层。是其他深度学习模型的基础
①卷积层 ②下采样 ③卷积层 ④下采样 ⑤全连接 ⑥全连接 ⑦高斯连接
2个卷积层+后面3个全连接层 一共5层
也有7层的说法
因为MNIST数据集非常简单很容易就把准确率提得很高,当时LeNet5直接把准确率做到了99.2%
达到了这个准确率就可以很成熟得使用起来了
所以在当时美国的支票识别、邮编识别,当时的LeNet5直接垄断是50%的市场
AlexNet
第一个把深度学习引爆的神经网络结构
《ImageNet Classification with Deep Convolutional Neural Networks》这篇著名论文提出AlexNet
共8层,是在ImageNet数据集上跑的,这是一个非常大的数据集
当时是在2块GTX 580上跑的
目前AlexNet这种做法我们已经不使用了
ImageNet数据集是224*224,AlexNet的卷积核是11*11的
AlexNet有着和LeNet5类似的网络结构,但又新的地方
①首次引入pooling池化层(Max pooling) 和 ReLu
这是Relu第一次引进来,之前是sigmoid或者一些不可导的接替函数
②使用了GPU实现
因为网络结构的参数量已经达到了60M,所以使用了GPU加速。当时是训练了一个星期
③首次使用dropout regulation
抑制过拟合
VGG
由牛津大学的Visual Geometry Group小组提出,所以叫vgg
《Very Deep Convolutional Networks for Large-Scale Image Recognition》
VGG一共6个版本,有vgg11,vgg16,vgg19,vgg34等
VGG16包含16层,VGG19包含19层。一系列的VGG在最后三层的全连接层上完全一样,整体结构上都包含5组卷积层,卷积层之后跟一个MaxPool。所不同的是5组卷积层中包含的级联的卷积层越来越多。
AlexNet中每层卷积层中只包含一个卷积,卷积核的大小是11*11。在VGGNet中每层卷积层中包含2~4个卷积操作,卷积核的大小是3*3,卷积步长是1,池化核是2*2,步长为2,。
VGGNet最明显的改进就是降低了卷积核的尺寸,增加了卷积的层数。
探索出大卷积核并没有很大的优势,反而小窗口能降低计算量,计算速度也更快
目前3*3,1*1是我们使用得非常广泛的卷积核size
可以看到卷积核的趋势是长宽越来越小,但是深度越来越多,即channel越来越多
GoogLeNet
google公司发明的,为了纪念LeNet,将L大写了组成后面的LeNet
22层
googlenet的创新点在于探索出同一层可以使用不同的卷积核得出的结果再拼接
Inception是GoogLeNet的下一个版本,加深的版本
一起的总结比较
operations就是计算量
InceptionNet
我们前面说过,alexnet-> vgg-net是使得网络变得更深和更宽
vgg-net再加深网络会遇到问题,它的精度不会再提升了
这时候就出现了resnet可以继续加深网络的层次另一个解决这个问题的方向就是InceptionNet,同样可以解决网络层次不能再加深的问题
InceptionNet有多种版本,v1,v2,v3,v4,都是由Google研发的
深层网络遇到的问题
也就是InceptionNet解决的问题
InceptionNet V1结构
把输入经过一个1*1的卷积层去做分组,分组之后其通道数目就变成了原来的1/3
Inception分组卷积的优势
①一层上同时使用多种卷积核,看到各种层级的feature
②不同组之间的feature不交叉计算,减少了计算量
InceptionNet V2结构
V3结构
就是说我这一个格子本来是能看到一个3*3的视野域的,我现在只看到一个1*3的视野域,同时这个1*3的视野域的每个格子能看到3*1的视野域,这样我最后的神经元还是能看到3*3的视野域,但是参数能够降低33%
有了3*3的替换之后还可以替换n*n的
V4结构
引入skip connection
MobileNet
也是由Google开发的
能保证精度损失在可控的范围之内,大幅降低参数量和计算量
引入深度可分离卷积
可见MobileNet是分到极致
但是网络层数并不是越多越好,20多层应该是一个临界值,再往上反而效果会变差