1. 背景
提高网络性能 --> increasing size(depth,width) --> 缺点:大量参数所需的样本难以获得,增加了计算资源的使用(wasted) --> 解决方法:引入sparsity ( 稀疏 ) 代替全连接//甚至卷积内部结构 --> 当前 computing infrastructures(计算基础设施)不能满足 非均匀稀疏矩阵数据结构要求 --> there is any hope for a next, intermediate step: an architecture that makes use of filter-level sparsity ? (filter级别的稀疏结构) : clustering sparse matrices into relatively dense submatrices
- 为了找到最优的稀疏结构单元,提出 inception 结构:
- The main idea of the Inception architecture is to consider
how an optimal local sparse structure of a convolutional vision network can be approximated and covered by readily available dense components.(既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能)
2.inception 主要贡献:1x1卷积升降维;多个尺寸上同时进行卷积再聚合。
- Inception稀疏性:多尺度卷积再聚合
- 将不同大小的卷积核并联到一起,即不同大小的感受野,最后拼接意味着不同尺度特征的融合,提取多尺度信息,多分辨率融合
(大小目标 大小卷积核)/ (远近目标 大小卷积核 ) - Googlenet 中的 inception 对特征图进行3种不同卷积(1 * 1 ,3 * 3 , 5 * 5),方便对齐
设定卷积步长stride=1,分别设定pad=0、1、2,卷积后可得到相同维度特征,直接拼接在一起。
多个不同卷积核卷积结果 进行聚合操作,在输出通道数的维度上进行合并输出 - 很多文献表明pooling有效,所以Inception里面也嵌入了
- 改进了网络内部计算资源利用率
- 内存影响,建议在用在网络后面层,前几次正常cnn结构。
3.Googlenet
GoogLeNet针对深度宽度问题给出了两个解决方案:
深度方面:层数更深,文章采用了22层,为了避免上述提到的梯度消失问题,GoogLeNet巧妙的在不同深度处增加了两个loss来保证梯度回传消失的现象。
宽度方面:采用了Inception结构,这是一种网中网(Network In Network)的结构,即原来的结点也是一个网络
(1)结构:
- 有9个相似的 Inception 组成。
共5块(类比Alexnet,vggnet)
inception 之间用 maxpooling 减少 feature map
用平均池化层代替了最后的全连接层 - 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。
- 网络额外增加了2个辅助的softmax用于向前传导梯度。 避免梯度消失
中间节点的分类效果也很好。使用辅助分类节点(auxiliary classifiers),即将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中。这样相当于做了模型融合,同时给网络增加了反向传播的梯度信号,也提供了额外的正则化。
这两个辅助的分类器的loss应该加一个衰减系数,但看caffe中的model也没有加任何衰减。此外,实际测试的时候,这两个额外的softmax会被去掉。 - 含参22层 / 加池化27层 。出现参数爆表情况
(2)改进
- 使用1 * 1 的卷积降维(dimension reductionality),减少参数。
3.inception 后续改进
(1) 图4是GoogLeNet V1中使用的Inception结构;
(2) 图5是用3x3卷积序列来代替大卷积核;inception_v2 学习VGG,用2个 3 * 3 代替 5 * 5,提出Batch Normalization,去除了Dropout、LRN等结构
(3) 图6是用nx1卷积来代替大卷积核,这里设定n=7来应对17x17大小的feature map。该结构被正式用在GoogLeNet V2中。
inception_v3 把二维卷积拆成2个一维卷积 (7 * 7 —> 1 * 7 和 7 * 1),增加非线性扩展模型表达能力
(4) inception _v4 结合resnet
任意nxn的卷积都可以通过1xn卷积后接nx1卷积来替代。实际上,作者发现在网络的前期使用这种分解效果并不好,还有在中度大小的feature map上使用效果才会更好。(对于mxm大小的feature map,建议m在12到20之间)。
4.补充
-
全卷积网络(FCN): 没有全连接层
空间信息有丢失
不适合分类,适合做数据生成 -
采用稀疏:
(1)现实生物神经系统的连接是稀疏的
(2)对于大规模稀疏的神经网络,可以通过分析激活值的统计特性和对高度相关的输出进行聚类来逐层构建出一个最优网络。
(3)为了打破网络对称性和提高学习能力,传统的网络都使用随机稀疏连接。但是,计算机软硬件对非均匀稀疏数据的计算效率很差,所以在AlexNet中又重新启用了全连接层,目的是为了更好地优化并行运算。
参考:
https://blog.csdn.net/shuzfan/article/details/50738394
https://blog.csdn.net/qq_31531635/article/details/72232651