图像分类网络结构记录

分类网络

分类网络简单说来就是判断图片中是否存在需要检测的物体,按照存在的物体类别进行分类。分类网络从提出发展到现在,经过了多种变化,效果越来越好,结构也越累越复杂,我学习的步骤是LeNet ,AlexNet,ZFNet,VGGNet,GoogLeNet,ResNet。

LeNet

LeNet的提出非常早,也是首个将神经网络用于图像分类中。其中利用了卷积池化全连接等操作,提取图像的特征,完成了分类识别。并且实现了参数共享大大减小了计算量。LeNet5应用于手写数字识别中。
在这里插入图片描述
如图所示,LeNet网络总共有7层,输入时首先将图片大小调整为32321,第一层为卷积层,卷积核大小为5 * 5,卷积核数量为6,输出特征图像大小为28 * 28 * 6。第二层为池化层,过滤器大小为2 * 2,长和宽的部长都为2,输出图像大小为14 * 14 * 6。第三层位卷积层,卷积核大小为5 * 5,数量为16,输出图像大小为10 * 10 * 16。第四层为池化层,过滤器大小为2 * 2,步长为2,输出大小为5 * 5 * 16。第五层为全连接层(也可以看作是5 * 5大小的卷积层),输出为120个1 * 1特征信息。第六层为全连接层,输出为84,第七层为全连接层,输出为10,分别代表十个数字。
LeNet对于手写数字识别具有非常好的效果,并且参数较少,但是受制于计算能力的限制,不能用于复杂的图像分类中。

AlexNet

AlexNet是在2012年提出的,并取得了那年的ImageNet大赛的冠军,AlexNet的重要意义在于重新提起了对于卷积网络的热度,这是严格意义上第一个深度学习的网络结构,从此各种深度网络在此基础进行改进或者启发。其结构图如下:
在这里插入图片描述
从图中可以轻易的看出AlexNet的网络结构以及每一层的具体操作,总体是由5个卷积层和3个全连接层构成。输入的图像大小为227 * 227 * 3,经过第一次卷积得到55 * 55 * 96的输出,经过池化层变为27 * 27,经过多次卷积池化后得到6 * 6 * 256的输出,这是经过三个全连接层。
fc6使用了4096个神经元,将6 * 6 的特征图惊醒卷积变成一个特征点,由256个特征图进行进行卷积之后的特征点结合权重,经过dropout后,对应4096中的一个点。
fc7作用等同于fc6
fc8使用了1000个神经元,将fc7中4096个点进行全连接,经过高斯滤波器后得到1000个预测值。
AlexNet中创新性的使用了Relu激活函数,替代了sigmoid函数,提高了收敛速度,并且减轻了梯度消失的问题。并且使用了dropout和data augmentation,有效的防止过拟合。

ZFNet

ZFNet是在AlexNet基础上进行了改进,但其得出了很多深度学习中非常重要的结论。
1、使用了反卷积网络,将特征进行了可视化,并且通过特征图证明了浅层特征学习图像的边缘、颜色、纹理等特征,高层网络学习图像的抽象特征。
2、根据可视化图像,发现AlexNet第一个卷积层的卷积核太大,造成特征模糊。
3、 通过遮挡实验,分析找出了图像的关键部位。
4、证明了网络越深,性能越好。
ZFNet的网络结构与AlexNet大体一致,修改了一些参数,并且在每一层上加了反卷积来可视化特征图像。
在这里插入图片描述
整体结构一致,只不过第一个卷积核的大小改为7 * 7,并且把卷积和池化的步长改为2。具体的可视化方法如下:
在这里插入图片描述
右边进行的是卷积操作,而左边就是把这层的特征信息反卷积进行可视化。具体每层的可视化效果如下:
在这里插入图片描述
我们可以看到每一层对于特征的学习角度是不同的,网络越深,对于特征学习来说越好。

VGGNet

vggnet再次加深了网络,并且是以不断堆叠3 * 3的卷积和2 *2的最大池化层来加深的,并且取得了不错的效果。网络结构图如下:
在这里插入图片描述
图中给出了多个层次的vggnet,其中vgg-16最为经典。vggnet的输入都是224×224的RGB图像,并且卷积层为3 * 3的卷积核(这是能提取上下,左右的最小尺寸),卷积步长为1。含有五个最大池化层,过滤器大小为2×2,步长为2。
在这里插入图片描述
这是VGG16的结构图,最后接了三个全连接层,输出1000通道的信息。
VGG将卷积中的大核替换为多个小核,一方面减少了计算量,另一方面加入了更多的非线性变化(每一层卷积后面带有Relu激活函数),提高了网络的拟合能力。
VGG中通道数更多,最多到了512个,这样可以提取更多的信息。
VGG结合1×1卷积层来替换输出前的3个全连接层,以增加决策函数非线性而不影响卷积层的感受野。这使得测试得到的全卷积网络因为没有全连接的限制,因而可以接收任意宽或高的输入。VGGNet使用1×1卷积来在相同维度空间上做线性投影(输入和输出通道的数量相同),再由修正函数对结果非线性化。
VGG16成为了分类网络中的一个经典网络,后续很多网络在此基础上改进。

GooLeNet

GooLeNet进一步加深了网络的深度和宽度,将不同大小的卷积核连接到一起,得到不同的特征信息,得到比较好的效果,GooLeNet分为好几个版本,V1–V4。
Inception v1
这个网络有22层深,使用了三种不同大小的卷积核,提取不同尺度的特征信息。并且控制了参数量和计算量,分类性能也不错。结构图如下:
在这里插入图片描述
可以看到其中有四个分支,分别包含三种不同大小的卷积以及一个池化层,并且由于大卷积核的运算量回变大,在之前使用1 * 1的卷积来降低通道数,把信息汇集起来,并且引入了非线性化。V1增加了网络对不同尺度的适应性,同时增加了网络的宽度,避免了因网络太深,训练梯度弥散的问题。
从整体的网络结构图还可以看到,使用了三个softmax,用来防止梯度在反向传播时消失的问题。整个网络的损失由三个softmax构成,即使有一个消失了还有其他的梯度。并且网络使用了average pooling 来代替了全连接层,减小运算量,提高准确率。
Inception v2
V2主要是进行了一些改进,在不曾加计算量的同时,提高网络的性能。因为网络加深能得到更好的性能的代价是计算量的增加,如果无脑加深就违背了GooLeNet的初衷。所以V2对网络中的卷积结构进行了改变。
大尺寸的卷积核带来了大的感受野,也带来了大量的参数计算,如果把卷积核变小并且保证感受野不发生改变,就能达到上面的目的。用两个3 * 3的卷积就能代替一个5 * 5的卷积,这个结论的提出解决了大卷积核计算量大的问题。在此基础上,又提出了对于任何n×n的卷积都可以分解成1×n卷积后接n×1卷积的理论。结构图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这种卷积分解减小了计算量的同时,提高了提取特征的能力。并且还提出了一种新的降低特征图大小的方法,以往降低特征图的大小要么是先卷积再池化,要么先池化再卷积,这两种方法都存在一些问题,由此提出了一种并行化的方法。
在这里插入图片描述
池化,卷积同时执行,然后进行合并,当然了这种操作后续好像没有流行使用。
Inception v3
v3的改进并不大,主要结构与v2类似,都是进行了卷积核分解,其主要改动就是加入了Batch Normalization 批归一化,操作如下:
在这里插入图片描述
到这步为止,就是一个标准的数据均值除方差的归一化过程。最后,完成下一步便完成了BN的过程:
在这里插入图片描述
其中参数 γ \gamma γ β \beta β是要学习的参数,所以这个操作主要是用来进行优化,改变了方差的大小和均值的位置,使用批归一化的目的是使激活函数能够更有效地利用输入信息,确保随着模型的训练,层能够持续学习输入的分布,内部协方差不断变小,从而加速训练过程。
Inception v4
v4主要是在结构中加入了残差结构,残差结构来自于Resnet,我们先看下Resnet.

ResNet

Resnet网络是在2015年由何凯明大神提出,结构简单使用,并且通过残差连接消除了深度网络中的梯度消失或者梯度爆炸的问题,后续很多目标检测,图像分割都在resne的基础上进行了改进。
Residual Blocks
残差学习的提出解决了深度网络退化的问题,网络结构如下:
在这里插入图片描述
这种类似于shortcut connection,将浅层网络的特征传递到后续的网络中,解决了随着网络加深,浅层网络特征消失的问题。resnet中resnet-50和resnet-101比较经典,效果好结构简单,后续很多应用都在次基础上进行了改动。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值