LeNet、AlexNet、VGG、GoogLeNet、ResNet 是属于图像分类的CNN。

网络深度和宽度(卷积核数据)增加,可以提高模型性能。

LeNet网络结构   1998年  Yann  LeCun   Proceedings of the IEEE

输入图片为32*32*1,卷积核大小为5*5,下采样步长为2,卷积时对原图像无填充。

  • 输入尺寸是32*32像素
  • 卷积层:2个
  • 降采样层:2个
  • 全连接层:2个
  • 输出:10个类别(数字0-9的概率)

输出层采用径向基函数(RBF)的网络连接方式,假设x是上一层的输入,yRBF的输出,则RBF输出的计算方式是:

Wij为权值 。 

Alex_Net网络结构  2012年  Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton
Advances in Neural Information Processing Systems 25 (NIPS 2012)

输入图片为227*227*3,使用了约6千万个参数,

Lenet  AlexNet的区别:

AlexNet使用了ReLU激活函数

训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合;

Alexnet有一个特殊的计算层,LRN层,做的事是对当前层的输出结果做平滑处理。

 

VGG网络结构  2014年

VGG通过加深模型结构提升网络性能,用的参数更是多达1亿八千万个(当然其中主要是因为后两者使用了较大的FC层)

为了减少信息的过度丢失,在加入Pool层减少feature maps size的同时同比例扩大它的channels数目。
VGG网络达到一定深度后就陷入了性能饱和的困境,即网络越深,越容易出现梯度消失,导致模型训练难度变大,出现“退化”现象(退化:当模型的深度增加时,输出的错误率反而提高了)。残差网络和Inception网络是解决网络深度增加的同时能使得模型的分类性能随着增加的网络。

ResNet残差网络结构   2015年

输入图像大小为? 中间为34层的普通网络,右边为34层的残差网络。

 

 

resNet网络结构中, 

  • 实线:代表的是上述提到的方程1,输入输出的维度没有改变,
  • 虚线:代表的是上书提到的方程2,输入输出的维度发生了改变,其中W是卷积操作,用来调整x维度的具体的实现是卷积的步长设置为2.

Inception网络 V1 2014年

模型的默认输入尺寸时299x299

Inception v1当中,它用于参赛的Googlenet模型只使用了约5百万个参数

Google家的Inception系列模型提出的初衷主要为了解决CNN分类模型的两个问题,其一是如何使得网络深度增加的同时能使得模型的分类性能随着增加,而非像简单的VGG网络那样达到一定深度后就陷入了性能饱和的困境(Resnet针对的也是此一问题);其二则是如何在保证分类网络分类准确率提升或保持不降的同时使得模型的计算开销与内存开销充分地降低。
引入Inception基本模块
1.大kernel分解为多个小kernel的累加
将一个5x5的conv分解为了两个累加在一块的3x3 conv。InceptionV2把InceptionV1的5*5卷积层替换成3*3的卷积层

2.将对称的conv计算分解为非对称的conv计算
将一个3x3的conv分解为了两个分别为1x3与3x1的conv计算。InceptionV3的三种结构

其中v2/v3模型结构上的差别只有一点即在inception v3中使用的Aug loss里面使用了BN进行regularization。

注意:不要一下子使用1x1 conv缩减过多的feature maps的channels数目,如果一定要用reduction模块也要在模型较靠后的几层使用,猜测性解释是,后期较小size的feature maps之上的相邻units(即channels)之间具有更加的关联性(即冗余信息不少),因此可以折腾的厉害些(使输出的channels变少)而不担心信息丢失。

RCNN、Fast RCNN、Faster RCNN、YOLO、YOLOv2、SSD 用于目标检测的CNN。接下来学习。。。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐