【CV-baseline】05GoogLeNet_v3(笔记)

论文标题:Rethinking the Inception Architecture for Computer Vision

作者: Christian Szegedy etc.

单位: Google Inc.

时间: 2015

学习目标

  1. 模型设计准则
  2. 模型设计技巧
    1. 卷积分解
    2. 辅助分类层探讨
    3. 特征图下降策略
    4. 标签平滑
    5. 低分辨率图像分类
  3. 测试技巧
    1. Multi-crop测试
    2. 多模型融合

论文导读

研究背景

GoogLeNet–V1 采用多尺度卷积核, 1 × 1 1\times 1 1×1卷积操作, 辅助损失函数,实现更深的22层卷积神经网络,夺得 ILSVRC-2014 分类和检测冠军,定位亚军GoogLeNet-V2 基础上加入BN层,并将 5 × 5 5\times5 5×5卷积全面替 换为2个3*3卷积堆叠的形式,进一步提高模型性能。

但是VGG网络模型大,参数多,计算量大,不适用于真实场景

研究成果

  1. 提出inception-v2和inception-v3,inception-v3模型获得了ILSVRC分类任务SOTA
  2. 提出4个网络模型设计准则,为模型设计提供参考
  3. 提出卷积分解、高效率降低特征图分辨率方法和标签平滑技巧。提升了网络速度和精度

研究意义

  1. 总结模型设计准则,为卷积神经网络模型设计提供参考
  2. 提出3个技巧,结合Inception,奠定Inception系列最常用模型——Inception-V3

注意:GoogLeNet-V2(论文) 不是 Inception-V2, Inception-V2是GoogLeNet-V3(论文) 中提出的

论文泛读

摘要

  1. 介绍背景:自2014年以来,深度卷积神经网络成为主流,在多个任务中获得优异成绩
  2. 提出问题:目前精度高的卷积神经网络,参数多,计算量大,存在落地困难问题
  3. 解决问题:本文提出分解卷积及正则化策略,提升深度卷积神经网络速度和精度
  4. 本文成果:单模型+single crop,top-5, 5.6%; 模型融合+multi-crop,top-5,3.5%

论文精读

网络设计准则

通过大量实验得出的结论,并无理论证明

  1. 尽量避免信息瓶颈,通常发生在池化层,即特征图变小,信息量减少,类似一个瓶颈
  2. 采用更高维的表示方法能够更容易的处理网络的局部信息
  3. 大的卷积核可以分解为数个小卷积核,且不会降低网络能力
  4. 把握好深度和宽度的平衡

第2、4点根本就是废话

卷积分解(factorizing convolutions)

卷积分解1

大卷积核分解为小卷积核堆叠。 1个 5 × 5 5\times 5 5×5卷积分解为2个 3 × 3 3\times 3 3×3卷积。参数减少了1-(9+9)/25 = 28%

在这里插入图片描述

卷积分解2

1个 n × n n\times n n×n卷积分解为 1 × n 1\times n 1×n卷积和 n × 1 n\times 1 n×1卷积堆叠。对于 3 × 3 3\times 3 3×3而言,参数减少了1-(3+3)/9=33%

注意:非对称卷积在后半段网络使用效果才好,特别是特征图分辨率在12-20之间,本文在分辨率为 17 × 17 17\times 17 17×17的时候使用非对称卷积分解

在这里插入图片描述

辅助分类层

GoogLeNet-V1中提出辅助分类层,用于缓解梯度消失, 提升低层的特征提取能力 本文对辅助分类层进行分析,得出结论:

  1. 辅助分类层在初期起不到作用,在后期才能提升网
    络性能
  2. 移除第一个辅助分类层不影响精度
  3. 辅助分类层可辅助低层提取特征是不正确的
  4. 辅助分类层对模型起到正则的作用
  5. googlenet-v3在 17 × 17 17\times 17 17×17特征图结束接入辅助分类层

高效特征图下降策略

传统池化方法存在信息表征瓶颈问题,违反了设计准则1,也就是特征图信息变少了(如图9左所示)

在这里插入图片描述

简单解决方法:先用卷积将特征图通道数翻倍,再用池化。存在问题:计算量过大

进一步策略:用卷积得到一半特征图,用池化的到一半特征图。用较少的计算量获得较多的信息,避免信息表征瓶颈。

在这里插入图片描述

base是 35 × 35 × 320 35\times 35\times 320 35×35×320, concat之后就变成了 17 × 17 × 640 17\times 17\times 640 17×17×640.

该inception-module用于 35 × 35 35\times 35 35×35下降至 17 × 17 17\times 17 17×17以及 17 × 17 17\times 17 17×17下降至 8 × 8 8\times 8 8×8

标签平滑

传统的one-hot编码存在问题:过度自信,导致过拟合

文中提出标签平滑:把one-hot中概率为1的那一项进行衰减,避免过度自信,衰减的那部分confidence平均分到每一个类别中。

举例:4分类任务,label=(0, 1, 0, 0)

label smoothing: ( 0.001 4 , 1 − 0.001 + 0.001 4 , 0.001 4 , 0.001 4 ) = ( 0.00025 , 0.99925 , 0.00025 , 0.00025 ) (\dfrac{0.001}{4}, 1-0.001+\dfrac{0.001}{4}, \dfrac{0.001}{4}, \dfrac{0.001}{4})=(0.00025, 0.99925, 0.00025, 0.00025) (40.001,10.001+40.001,40.001,40.001)=(0.00025,0.99925,0.00025,0.00025)

标签平滑公式

回顾交叉熵定义: H ( q , p ) = − ∑ k = 1 K log ⁡ ( p k ) q k \mathrm{H}(q, p)=-\sum_{k=1}^{K} \log \left(p_{k}\right) q_{k} H(

这段代码主要是用来训练一个名为CenterFusion的目标检测模型,使用了DDDet(一个基于PyTorch的目标检测框架)。其中: - export CUDA_DEVICE_ORDER=PCI_BUS_ID export CUDA_VISIBLE_DEVICES=0,1:设置使用哪些GPU进行训练。 - cd src # train:进入src目录下进行训练。 - python main.py:运行main.py文件,即训练脚本。 - ddd:指定使用的模型是DDDNet。 - --exp_id centerfusion:设置训练实验的名称为centerfusion。 - --shuffle_train:在每个epoch开始前,打乱训练集的样本顺序。 - --train_split mini_train:使用mini_train作为训练集。 - --val_split mini_val:使用mini_val作为验证集。 - --val_intervals 1:设置每隔1个epoch进行一次验证。 - --run_dataset_eval:在训练过程中进行数据集的评估。 - --nuscenes_att:使用nuscenes属性进行训练。 - --velocity:使用速度信息进行训练。 - --batch_size 24:设置batch size为24。 - --lr 2.5e-4:设置学习率为2.5e-4。 - --num_epochs 60:设置训练的总epoch数为60。 - --lr_step 50:设置学习率下降的epoch数。 - --save_point 20,40,50:设置保存模型的epoch数。 - --gpus 0:设置使用的GPU编号为0。 - --not_rand_crop:不使用随机裁剪。 - --flip 0.5:进行数据增强时,以0.5的概率进行翻转。 - --shift 0.1:进行数据增强时,以0.1的概率进行平移。 - --pointcloud:使用点云数据进行训练。 - --radar_sweeps 3:设置雷达扫描数为3- --pc_z_offset 0.0:设置点云高度偏移量为0.0。 - --pillar_dims 1.0,0.2,0.2:设置pillar的尺寸为1.0*0.2*0.2。 - --max_pc_dist 60.0:设置点云距离的最大值为60.0。 - --load_model ../models/centernet_baseline_e170.pth:加载已经训练好的centernet_baseline_e170.pth模型。 - # --freeze_backbone \:注释掉的代码,原本可以冻结骨干网络,使得训练更加稳定。 - # --resume \:注释掉的代码,原本可以从已经训练好的模型继续训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值