本文内容同个人微信号推送文章:经典卷积神经网络(Classic Convolutional Neural Networks)
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
InceptionNet在2014的GoogleNet比赛中取得了第一名,与VGG同年。由Google提出。
InceptionNet V1
InceptionNet V1网络的结构为:
该网络有9个Inception module线性叠加,深度为22层(包括池化层为27层)。
特点1:
Inception Module
在同一级别上运行多种尺寸过滤器。因为在不同的图片中,信息位置的大小的变化的,例如有的信息占据图片很大空间,而有的信息占据图片很小空间。因此选择一个合适大小的卷积核很困难。大的卷积核有利于提取全局信息,而小的卷积核有利于提取局部信息。
其解决方案就是Inception模块,对输入使用3中大小不同的滤波器(1*1,3*3,5*5)进行卷积操作,使得网络可以提取到“稀疏”和“不稀疏”的特征,增加了网络深度的同时增加了网络对尺度的适应性。还进行了最大池化。输出连接到下一个Inception模块(如下图所示)。
为了降低计算成本,对Inception module进行了改进。在3*3和5*5的卷积之前加入额外的1*1的卷积来限制输入通道的数量,同时增加网络深度。输入通道数量的减少能够使得计算量减少(如下图所示)。
use 1×1 and 3×3(or 5×5) filters to reduce the number of parameters.
there are different sizes of convolutions for each layer. It can extract different kinds of features.
特点2:
Auxiliary Classifiers for Training
使用了辅助分类器。
InceptionNet是一个很深的网络,当网络深度较深时,将面临梯度消失问题。InceptionNet引入了辅助分类器,通过将softmax应用于两个Inception模块的输出,计算标签上的辅助损失(Auxiliary loss)。总损失是辅助损失和实际损失的加权和。每种辅助损失的权重为0.3。
The loss is added to the total loss, with weight 0.3。
InceptionNet V2
InceptionNet V2网络在InceptionNet V1的基础上进行了改进,提高了模型的准确性。Inception v2相比Inception v1在ImageNet的数据集上,识别误差率由29%降为23.4%。
特点3:
将5*5的卷积分解为两个3*3的卷积运算叠加。减少了训练的参数个数,提高网络的性能。
同时,将大小为n*n的滤波器分解为1*n和n*1的卷积的组合。
特点4:
模块中的滤波器被扩展,变得更加宽而不是更加深。从而可以提取出更多的特征,避免信息的丢失。
InceptionNet V3
InceptionNet V3网络在InceptionNet V2的基础上进行了改进。
改进有:
1.RMSProp优化器。
2.分解7x7卷积。(使用了7*1和1*7的卷积代替7*7)
3.辅助分类器中的BatchNorm。
4.标签平滑(添加到损失公式中的一种正规化组件,可防止网络对类过于自信。防止过度拟合)。
InceptionNet V4
InceptionNet V4网络将原来的卷积、池化的顺序替换为了stem模块,获得了更深的网络结构。stem模块为:
stem之后和Inception V3一样,是Inception模块和Reduction模块。
Inception模块为:
上图中分别表示InceptionA、InceptionB和Inception C。
Reduction模块为:
上图中分别表示ReductionA和ReductionB。
Inception V4模型最终的结构为:
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
广告时间:
本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。
希望大家可以共同进步,嘻嘻嘻!求关注,爱你呦!