googlenet网络框架
原本用的是a图,但是最后得到的太厚了。采用b图,使用1*1卷积进行降维度操作,使用4种路径,总有一个可以抓到特征。
1*1卷积,可以降低维度,减少参数。
上图是全局平均池化,就是将每一个channel中最大的元素挑出来构成一个channel。在googlenet的最后使用,取代了原来的展平层。
辅助分类器的两个分支有什么用呢?
为了避免梯度消失。训练结束之后就不使用这两个分类器了。
作用一:可以把他看做inception网络中的一个小细节,它确保了即便是隐藏单元和中间层也参与了特征计算,他们也能预测图片的类别,他在inception网络中起到一种调整的效果,并且能防止网络发生过拟合。
作用二:给定深度相对较大的网络,有效传播梯度反向通过所有层的能力是一个问题。通过将辅助分类器添加到这些中间层,可以期望较低阶段分类器的判别力。在训练期间,它们的损失以折扣权重(辅助分类器损失的权重是0.3)加到网络的整个损失上。
inception v2和v3
采用了3种新的inception,第一个是把一个5*5的替换成2个3*3的,第二个是把7*7的换成一个1*7和一个7*1的;第三个是沿着横方向展开,展开为一个1*3和一个3*1的。
感受野的概念
在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域。
感受野:输出的一个像素点对应的在输入图上的区域。
第一种是把一个5*5的替换成2个3*3的,感受野都是5*5,但是2个3*3的可以降低参数数量。
这就是inception v3的示意图,其中模块a,b,c就是之前提到的那些。并且只留下一个辅助分类器。
inception v2还取消了one-hot格式,使用lable smooth方式。
可以看到,使用了grid sizereduction实现下采样操作。
左边是通常使用的两种下采用操作,都不是很好,所以采用右边这个,将卷积和池化分开,然后加在一起。
inception v4
v4的结构如上图。里面有3种inception模块和2种下采样模块。下采样模块起到池化的作用,而且不会导致信息的大量缺失。3种inception模块进行了微调和改进,数目也增加了。
k、l、m、n表示个数。
xception
使用了深度可分离卷积。
上图是深度可分离卷积的示意图。对每一个通道使用一个卷积,之后叠加起来,摞在一起。只处理了长宽的信息,忽略了跨通道的信息。
为了保留跨通道的信息,再使用11的卷积进行处理。最后实现解耦了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/448a3d24463946cc9ec5e3c5ec1e9281.png#pic_center
depthwise 和 pointwise
紫图使用k个11卷积就得到k个通道的黄图。
左边是v3的a模块,右边是xception的a模块,可以看到,把11换成了33卷积。
第四层简化可以看到,把通道分成3份,分别进行卷积。
第四层简化的示意图。分成2个通道,分别用不同的卷积进行处理。称为grouped convolution。
第五层简化:每个卷积处理一个通道。
v1到v3的发展历程。
xception的发展历程。
xception的结构,其中中间那个层重复了8次,separable conv就是前面说的那个结构,然后最左边的conv11和stride22是残差连接。最后使用全局平均池化取代全连接层。