【CV-baseline】03GoogLeNet-笔记

学习目标

  1. 模型结构设计
    1. 多尺度卷积
    2. 1 × 1 1\times 1 1×1卷积降维
    3. 池化保留特征
    4. 中间层输出辅助损失
  2. 训练技巧
    1. 尺度扰动:8% ~ 100%
    2. 长宽比: [3/4, 4/3]
    3. 亮度、饱和度和对比度
  3. 测试技巧
    1. Multi-crop测试: 1-144
    2. 多模型融合

论文导读

背景、成果和意义

背景
  1. ILSVRC=2014
  2. 相关研究
    1. NIN:首个采用 1 × 1 1\times 1 1×1卷积的卷积神经网络,舍弃全连接层,大大减少网络参数
    2. 赫布理论:一起激发的神经元连接在一起
    3. Robust Object Recognition with Cortex-Like Mechanisms, 多尺度滤波器:S1层采用8种尺度Gabor滤波器进行提取不同尺度特征
成果
  1. ILSVRC定位冠军、检测冠军、定位亚军
意义
  1. 开启多尺度
  2. 1 × 1 1\times 1 1×1卷积降维
  3. GoogLeNet系列

论文泛读

摘要

  1. 本文主题:提出名为Inception的深度卷积神经网络,在ILSVRC-2014获得分类及检测双料冠军
  2. 模型特点1:Inception特点是提高计算资源利用率,增加网络深度和宽度的同时,参数少量增加基本不变
  3. 模型特点2:借鉴赫布理论和多尺度理论

GoogLeNet结构

Inception Module

特点

  1. 多尺度:使用不同大小的卷积核以及池化,获得不同大小的感受野,最后对4个通道进行组合
  2. 1 × 1 1\times 1 1×1卷积降维,信息融合
  3. 3 × 3 3\times 3 3×3 max pooling 保留了特征图数量

在这里插入图片描述

上面两张图表示了没有 1 × 1 1\times1 1×1卷积核以及加入了 1 × 1 1\times1 1×1卷积核的inception结构。

首先,在naive inception module结构中, 3 × 3 3\times 3 3×3 pool可以让特征图通道数增加,且用较少的计算量。但是总的空间维度高达 28 × 28 × 672 28\times 28 \times 672 28×28×672.因此论文作者借鉴了 1 × 1 1\times 1 1×1卷积核来降低矩阵空间维度。

在上图二的inception module结构中,中间两个卷积核路径在输出数据矩阵前,加入了一层 1 × 1 1\times 1 1×1卷积核,而最右边的池化路径,则在池化之后加了一层 1 × 1 1\times 1 1×1卷积核。因为我们知道,卷积层中卷积核的数量决定了输出后的张量的通道数量。因此这里 1 × 1 1\times 1 1×1卷积层就压缩了右边三个路径中张量的厚度,从256降低到了64。比如,我们拿出左边第二条路径作对比:

在这里插入图片描述

对于没有 1 × 1 1\times 1 1×1卷积核的情况,256通道的输入张量直接与 3 × 3 3\times 3 3×3卷积层连接,总的参数量是442k。而用 1 × 1 1\times 1 1×1卷积层做了厚度降低后,总的参数量就降低到了23296,降低了差不多一半。

GoogLeNet

从high level来说,GoogLetNet有三个特点

  1. 网络结构分为三个阶段:conv-pool-conv-pool快速降低分辨率;然后堆叠inception结构;最后是全连接FC层分类输出预测结果
  2. 中间第二阶段,总共堆叠使用的inception module有多达22层
  3. 在中间第二阶段,还增加了两个辅助损失路径,缓解梯度消失,同时使得中间层特征进行了一定程度的正则化,具有了分类能力

在这里插入图片描述

在这里插入图片描述

(图片来源:https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43022.pdf)

以上的图表是文中对网络结构的描述。一个容易混淆的地方是中间两个标有’reduce’的列。这两列表示的是inception module中 3 × 3 , 5 × 5 3\times 3, 5\times 5 3×3,5×5卷积核路径中的 1 × 1 1\times 1 1×1卷积层中的卷积核数量。. 输入的图片张量是 224 × 224 × 3 224\times 224 \times 3 224×224×3, 在经过第一阶段conv-pool-conv-pool快速降低分辨率后,数据张量变成了 28 × 28 × 192 28\times 28\times 192 28×28×192。( 224 / ( 2 3 ) = 28 224/(2^{3})=28 224/(23)=28)然后,经过了第二阶段inception堆叠后,数据张量变成了 7 × 7 × 1024 7\times 7 \times 1024 7×7×1024,最后经过了全连接分类层后,输出 1 × 1 × 1000 1\times 1\times 1000 1×1×1000的预测向量结果。

训练技巧

辅助损失

本文的一个创新点就是在inception4b和inception4e两层中,增加引出了两个辅助分类层,用于计算辅助损失。最后输出损失函数与辅助损失函数的权重比是1:0.3:0.3

loss = loss_main + (0.3 * aug_loss1) + (0.3 * aug_loss2)

作用:

  1. 增加了loss回传,增大了反向传播的梯度值,有效更新了前半部分网络的参数
  2. 同时充当了正则约束,迫使中间层特征也能具备分类能力。

学习率下降策略

每8个epoch下降4%:fixed learning rate schedule (decreasing the learning rate by 4% every 8 epochs)

0.9 6 100 = 0.016 0.96^{100}=0.016 0.96100=0.016 , 800个epochs,才下降不到100倍。 这也导致本文模型的损失曲线下降比较平缓(相对ResNet而言)

数据增强

指导方针:

  1. 图像尺寸均匀分布在8%-100%之间
  2. 长宽比在[3/4, 4/3]之间
  3. Photometric distortions 有效,如亮度、饱和度和对比度等

测试技巧

Multi crop

1张图变144张图:

Step1: 等比例缩放短边至256, 288, 320, 352,四种尺寸。 一分为四

Step2: 在长边上裁剪出3个正方形,左中右或者上中下,三个位置。 一分为三(下图)

Step3: 左上,右上,左下,右下,中心,全局resize,六个位置。 一分为六

Step4: 水平镜像。 一分为二

因此总的数量是 4 × 3 × 6 × 2 = 144 4\times 3\times 6\times 2 = 144 4×3×6×2=144

在这里插入图片描述

model fusion

七个模型训练差异仅在图像采样方式和顺序的差异

实验结果以及分析

分类结果

  1. 模型融合: 多模型比单模型精度高

  2. Multi Cros:crop越多,精度越高

检测结果

  1. 模型融合:多模型比单模型精度高

稀疏结构

稀疏矩阵:数值为0的元素数目远远多于非0元素的数目, 且无规律

稠密矩阵:数值非0的元素数目远远多于为0元素的数目, 且无规律

稀疏矩阵优点是,可分解成密集矩阵计算来加快收敛速度

特征图通道的分解

672个特征图分解为四个部分

  1. 1 × 1 1\times 1 1×1卷积核提取的 128个通道

  2. 3 × 3 3\times 3 3×3卷积核提取的192个通道

  3. 5 × 5 5\times 5 5×5卷积核提取的96个通道

  4. 3 × 3 3\times 3 3×3池化提取的256个通道

打破均匀分布,相关性强的特征聚集在一起

论文总结

关键点与创新点

  • 大量使用1*1,可降低维度,减少计算量,参数是AlexNet的是十二分之一
  • 多尺度卷积核,实现多尺度特征提取
  • 辅助损失层,增加梯度回传,增加正则,减轻过拟合

启发点

  1. 池化损失空间分辨率,但在定位、检测和人体姿态识别中仍应用。延伸拓展:定位、检测和人体姿态识别这些任务十分注重空间分辨率信息
  2. 增加模型深度和宽度,可有效提升性能,但有2个缺点:容易过拟合,以及计算量过大。
  3. 为节省内存消耗,先将分辨率降低,再堆叠使用inception module
  4. 最后一个全连接层,是为了更方便的微调,迁移学习
  5. 网络中间层特征对于分类也具有判别性
  6. 学习率下降策略为没8个epoches下降4%(loss 曲线很平滑)
  7. 数据增强指导方针:1. 尺寸在8%-100%;2. 长宽比在[3/4, 4/3]; 3. 光照畸变有效
  8. 随机采用差值方法可提升性能
  9. 实际应用中没有必要用144crops
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值