Inception系列之Inception_v1

简介: Inception系列之Inception_v2-v3Inception系列之Batch-Normalization

Inception系列之Inception_v2-v3


Inception系列之Batch-Normalization


目前,神经网络模型为了得到更好的效果,越来越深和越来越宽的模型被提出。然而这样会带来以下几个问题:


   1)参数量,计算量越来越大,在有限内存和算力的设备上,其应用也就越难以落地。


   2)对于一些数据集较少的场景,太大的模型反而容易过拟合,但模型太小则泛化能力不够。


   3)容易出现梯度消失的问题。

 

   解决这些问题比较直观的方法就是采用稀疏连接来代替全连接层,但很明显,由于底层是通过矩阵计算的,稀疏连接在参数量上减少了,但并没有减少计算量。


 因此,google提出了Inception系列Inception_v1 ….Inception_v4,使得模型在增加深度和宽度时不会带来参数量的巨大增加,同时也保证了计算量。

 

   Inception体系结构的主要思想是考虑如何才能通过容易获得的密集组件来近似和覆盖卷积视觉网络的最佳局部稀疏结构。假设平移不变意味着网络将由卷积块构建,那我们所需要的只是找到最佳的局部构造并在空间上进行重复,最后将它们聚集在一起进行输出。为此,刚开始google提出了如下图Figure 1所示的结构


image.png


Figure 1:这里的Filter concatenation是指在通道上叠加。

 

  正如每个卷积块代表一块局部区域,在高层的空间集中度将降低(换句话说,感受野增大),这表明在高层将需要尽可能多的使用3x3, 5x5卷积核。因此这个原始版本的Inception模块将会产生一个问题,由于每层都是在通道上堆叠累加,因此在高层时通道数将非常大,即便是少量的5x5的卷积核,也可能在高层带来巨大的计算量,而加入池化层同样会增加巨大的计算量。


   因此,第二个想法为减少通道数。Inception_V1采用了Network-in-Network 中提到的使用1x1 卷积来改变通道数的方法,提出在3x3或5x5卷积前先进行1x1卷积,减少通道数。


   其结构图Figure 2如下:


image.png

下面的例子说明添加了1x1卷积是如何减少参数的。假设Previous layer为112x112x64, 1x1的尺寸为1x1x64, 取32个这样的1x1x64卷积。而输出的尺寸为112x112x128。则使用1x1卷积后的参数为64x1x1x32+32x5x5x128 = 104448, 而在此之前需要的参数量为64x5x5x128 = 204800,减少了将近一倍的参数。这里减少的倍数接近等于输入通道数与1x1的数量的比值。


   这个结构比较有用的一个方面是,通过1x1卷积的引入,即便在每层显著地增加了单元的数量,也不会在后面的层中造成无法控制的计算量。论文中提到,这个结构比那些非Inception模型快了3-10倍,虽然在精度上比别的模型可能差一点点,但计算量却少了非常多。


完整的网络结构图table 1如下:


image.png


table 1: 这里的3x3 reduce,5x5 reduce指的是在其前面添加了1x1。


   其结构图如下:


image.png

image.png

image.png


Figure3:


     (1)图中有3个softmax输出位置,有两个是在中间位置,这样方便在中间层输出分类,同时通过加权(中间0.3)的方式加到最终的分类结果中。同时,还能给模型增加反向传播的梯度信号,缓解了梯度消失问题,在一定程度上也有正则化的效果。在推理阶段,这两个softmax将会去除。


     (2)使用了平均池化来代替全连接层,论文提到这样可以提高0.6%的准确率,但还是添加了一层FC,这是为了方便对输出进行调整,并且也使用了Dropout。


     (3)关于table1中的Inception 3a 3b 4a 4b 4c等,区分方式是汇合的MaxPool层和DepthConcat。


     (4)图像输入都经过了去均值,即每个位置减去整体均值。

 

如有错误或不合理之处,欢迎在评论中指正。


相关文章
|
5月前
|
机器学习/深度学习 计算机视觉
Inception模型及其实现
【7月更文挑战第26天】Inception模型及其实现。
66 7
|
5月前
LeNet-5
【7月更文挑战第25天】LeNet-5。
33 2
|
机器学习/深度学习 数据挖掘 PyTorch
图像分类经典神经网络大总结(AlexNet、VGG 、GoogLeNet 、ResNet、 DenseNet、SENet、ResNeXt )
图像分类经典神经网络大总结(AlexNet、VGG 、GoogLeNet 、ResNet、 DenseNet、SENet、ResNeXt )
6933 1
图像分类经典神经网络大总结(AlexNet、VGG 、GoogLeNet 、ResNet、 DenseNet、SENet、ResNeXt )
|
计算机视觉
VGG的成功之处在哪
VGG的成功之处在哪
163 0
|
PyTorch 算法框架/工具
Inception(Pytorch实现)
Inception(Pytorch实现)
70 0
|
网络架构
VGG为什么叫做VGG,VGG的由来
VGG为什么叫做VGG,VGG的由来
173 0
VGG为什么叫做VGG,VGG的由来
|
机器学习/深度学习 PyTorch 算法框架/工具
|
机器学习/深度学习 计算机视觉 网络架构
Backbone 网络-ResNet v2 详解
Backbone 网络-ResNet v2 详解
317 0
|
算法框架/工具 计算机视觉
《ImageNetVGGNet,ResNet,Inception,and Xception with Keras》电子版地址
ImageNet:VGGNet,ResNet,Inception,and Xception with Keras
78 0
《ImageNetVGGNet,ResNet,Inception,and Xception with Keras》电子版地址
|
机器学习/深度学习 人工智能 计算机视觉
Inception-v4 和 Inception-ResNet
Inception-v3 结构的复杂程度以后够复杂了,但是它还有几个升级版本,就是 Inception-v4,Inception-ResNet-v1 和 Inception-ResNet-v2。这几个升级版本都出自同 一篇论文《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》
168 0
Inception-v4 和 Inception-ResNet