Inception系列详解
1.Inception结构
咱们知道当做卷积的时候,是选择1*1的卷积、3*3、5*5、MaxPooling还是Multiple1*1,到底用哪个比较好,对于Inception块来说,这几个卷积都选择了 ,要兼容并蓄,设计了不同的通道,使用不同窗口大小的卷积层,将4个路径从不同层面抽取信息,然后在输出通道维度合并。
其主要的思想是设计了一个inception模块,并通过不断复制这些inception模块来提高网络的深度和宽度,不过GooLeNet主要还是在深度上扩展这些inception模块。
左图(a)为Inception模块的初始版本,之前学过的网络架构都是卷积层串行的结构,但是Inception结构是并行结构,也就是说将我们的输入同时输入到四个分支中进行处理,处理后再将我们所得到的特征矩阵按深度进行拼接,得到我们的输出特征矩阵。即每一个inception模块中有四个并行通道,并在通道结束时进行concat。
1x1 conv在文章中主要是用来进行维度的降低以避免计算瓶颈。
其还在前面的网络层一些分支上加入了额外的softmax loss以避免梯度消失问题
通过四个分支可以得到不同尺度的特征矩阵。而且,我们每个分支所得到的特征矩阵的高和宽必须相同,否则就无法按深度进行拼接。
然后我们再看图(b),相对比加了三个1*1的卷积,意思是加了一个降维的功能。
四个并行通道:
1x1的conv:首先输入先经过1*1的卷积层;通道数是64;主要是用来融合多通道特征。借鉴了【Network in Network】,可以进行输入feature map的降维升维而不会太过损失输入的空间信息;
1x1conv followed by 3x3 conv:然后第二条路,首先通过1*1的卷积层对通道数做变换,降低通道数来控制模型的复杂度,然后再通过3*3的卷积层,pad=1,使得输入和输出的高宽一样;3x3 conv增大feature map的感受野。
1x1 conv followed by 5x5 conv
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!