当前位置: 首页 > 工具软件 > baseline > 使用案例 >

八篇baseline总结

麹学文
2023-12-01

1 AlexNet

Local Response Normalization LRN 侧抑制

overlapping pooling 带重叠的池化

torch.topk(input,k,dim=None,largest=True,sorted=True,out=None)
# 功能:找出前k大的数据,及其索引序号
- input 张量
- k 决定选取k个值
- dim 索引维度
返回:
Tensor 前k大的值
LongTensor 前k大的值所在的位置

图像增强

功能:在图像的上下左右以及中心裁剪出尺寸为size的5张图片,TenCrop对这5张图片进行水平或者垂直镜像获得10张图片

  • FiveCrop(size)
  • TenCrop(size,vertical_flip) 是否垂直翻转

制作网格图像

torchvision.utils.make_grid
# 功能 制作网格图像
- tensor:图像数据 BCHW形式
- nrow:行数(列数自动计算)
- padding:图像间距
- normalize:是否将像素标准化
- range:标准化范围
- scale_each:是否单张图维度标准化
- pad_value:padding的像素值

2 GoogLeNet V1 更深的卷积网络

模型结构设计

  • 多尺度卷积
  • 1*1降维
  • 池化保留特征
  • 中间层输出辅助损失

训练技巧

  • 尺度扰动 8%-100%
  • 长宽比
  • 亮度、饱和度和对比度

测试技巧

  • Multi-crop测试

    • 1张图变144张图
      • Step1 等比例缩放短边至256、288、320、352
      • Step2 在长边上裁剪出3个正方形,左中右或者上中下三个位置
      • Step3 左上、右上、左下、右下、中心、全局resize 六个位置
      • Step4 水平镜像
  • 多模型融合

研究背景 成果及意义

  • NIN
  • 开启多尺度卷积

NIN网络 首次采用1*1卷积的卷积神经网络

特点:1*1卷积 GAP输出

多尺度Gabor滤波器

辅助损失

增加两个辅助损失,缓解梯度消失(中间层特征具有分类能力) 增加loss回传 充当正则约束,迫使中间层特征也能具备分类能力

学习率下降策略

每8个epoch下降4% 人民币玩家。800个epochs 才下降不到100倍

数据增强

  • 图像尺寸均匀分布在8%-100%之间
  • 长宽比在[3/4,4/3]之间
  • 高亮、饱和度和对比度

稀疏结构

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

关键点&创新点

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

3 GoogLeNet V2 批标准化:缓解内部协变量偏移加快深度神经网络训练

ICS 内部协变量偏移

输入数据分布变化,导致的模型训练困难,对深度神经网络影响极大

针对ICS以前的相关研究

白化: 0均值、1标准差实现白化

研究成果(BN)

提出BN层 加快模型收敛,比v1快10倍

优点:

  • 可以用更大学习率,加速模型收敛
  • 可以不用设计权值初始化
  • 可以不用dropout
  • 可以不用L2
  • 可以不用LRN

存在问题 使神经元输出值在sigmoid线性区,削弱了网络的表达能力

解决办法 y = Rx+P。增加了可学习参数R和P 增加线性化变化,提升网络表达能力 同时提供恒等映射的可能

Batch Normalization 批标准化

  • 在mini-batch上计算均值
  • 在mini-batch上计算标准差
  • 减均值除以标准差
  • 线性变化,乘r加p 使用缩放与平移

存在问题 mini-batch的统计信息充当总体是不准确的

解决办法 采用指数滑动平均

BN注意事项:

  • BN层前一层不需要加偏执,该偏执可被BN层中的shift给抵消
  • 卷积网络时,是针对特征图为单位进行BN层,即使2D的BN操作

BN工作流程

  • 训练阶段:均值和标准差通过指数滑动平均统计得来,gamma和beta通过梯度反向传播不断更新
  • 测试阶段:均值和标准差时固定的,gamma和beta也是固定的

摘要核心

  • 提出问题 数据分布变化导致训练困难 (权重变化–输出变化–输入变化–训练困难)
  • 已有方法:通过小学习率和精心权重初始化 但是训练缓慢 效果不佳
  • ICS 上述现象为ICS 本文提出标准化网络层来缓解他
  • BN 在模型中增加BN层,可在MINI—batch中执行标准化,让模型可以用大学习率,不需要精心设计权重初始化 可以少用Dropout

GoogLeNet-V2 模型结构

  1. 激活函数前加了BN层
  2. 5*5卷积替换为2个3X3卷积
  3. 第一个Inception模块增加了一个Inception结构
  4. 增多5X5卷积核
  5. 尺寸变化采用stride=2的卷积
  6. 增加9层到31层

实验结果分析

  • MNIST 更快更稳定
    • 加入BN层之后,收敛速度更快
    • 加入BN层之后,输出值更稳定,缓解ICS问题
  • ILSVRC 更快精度更高
  • 模型集成 超越人类精度

0均值,1标准差的数据分布可以加速网络的训练

推理时,BN相当于线性变换,即缩放加平移,进一步的可以将BN层融合到卷积层中

bias作用被抵消,因此不需要bias,并且线性变换中的beta可充当bias

卷积层的BN层,不仅考虑batch维度,还考虑空间维度,以feature map维度进行求取均值、方差

4 GoogLeNet V3 重新思考计算机视觉中Inception结构

模型设计技巧

  • 卷积分解
  • 辅助分类层讨论
  • 特征图下降策略
  • 标签平滑
  • 低分辨率图像分类

相关研究

  • V1 多尺度卷积核 1X1卷积 辅助损失函数 实现更深的22层卷积神经网络
  • v2 BN层 并将5X5卷积全面替换2个3X3卷积堆叠的形式
  • VGG网络模型大 参数多,计算量大,不适用于真实场景
  • 提出卷积分解,高效降低特征图分辨率方法 和 标签平滑技巧 提升网络速度与精度

摘要核心

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

4个网络设计准则

通过大量实验得出的结论:

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

2种卷积分解

卷积分解(1) 大卷积核分解为小卷积核堆叠 (VGG中7X7和3个3X3)

卷积分解(2)分解为非对称卷积 1个nXn卷积分解为1*n卷积核nX1卷积堆叠

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

辅助分类层再探讨

  • V1 中提出辅助分类层,用于缓解梯度消失,提升底层的特征提取能力
  • 本文对辅助分类层进行分析,得出结论:
    • 辅助分类层再初期起不到作用,在后期才能提升网络性能
    • 移除第一个辅助分类层不影响精度
    • 辅助分类层可辅助底层特征提取是不正确的
    • 辅助分类层对模型起到正则的作用
    • v3在17X17特征图结束接入辅助分类层

高效特征图下降策略

传统池化方法存在信息表征瓶颈问题,即特征图信息变少了

  • 解决方法 先用卷积将特征图通道翻倍,再用池化
  • 存在问题:计算量过大
  • 高效特征图分辨率下降策略:
    • 用卷积得到一半特征图,用池化得到另一半特征图
    • 用较少的计算量获得较多的信息,避免信息表征瓶颈
  • 该inception-module用于35X35下降至17X17以及17X17下降至8X8

标签平滑

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

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

网络结构

  • Inception-v2
    • 针对 v1
      • 采用3个3X3卷积替换1个7X7卷积,并且在第一个卷积就采用stride =2 来降低分辨率
      • 第二个3个3X3卷积,在第2个卷积才下降分辨率
      • 第一个block增加一个inception-module,第一个inception-module只是将5X5卷积替换为2个3X3卷积
      • 第二个block,处理17X17特征图,采用非对称卷积
      • 第三个block,处理8X8特征图,突出拓展的卷积
      • 最后输出2048个神经元,v1是1024个神经元
  • inception-v2 和 v3
    • inception-v3在v2基础上四点改进
      • 采用RMSProp 优化方法
      • 采用Label Smoothing正则化方法
      • 采用非对称卷积提取17X17特征图
      • 采用带BN的辅助分类层

低分辨率图像分类策略

在目标检测中广泛应用

本文方案:

  • 将第一个卷积层步长2改为1 用于151X151的图像

  • 将第一个卷积层步长2改为1 移除第一个池化层 用于79X79

论文总结

  • 非对称卷积分解 减少参数计算量 为卷积结构提供新思路
  • 高效特征图下降策略 利用stride=2的卷积与池化 避免信息表征瓶颈
  • 标签平滑

启发点:

  • 非对称卷积分解在分辨率为12-20的特征图上效果较好,且用1X7和7X1进行特征提取
  • 在网络训练初期,辅助分类层的加入并没有加快网络收敛,在训练后期,才加快网络收敛
  • 移除两个辅助分类层中的第一个,并不影响网络性能
  • 标签平滑参数设置,让非标签的概率保持在10-4左右

5 GoogLeNet-V4 Inception-ResNet 残差连接对模型训练的影响

论文研究背景 成果 意义

相关研究

  • Residual Connection
  • GoogLeNet- v1/v2v3
  • 将inception与ResNet结合

研究意义

将当下优秀的技术结合到Inception系列中,获得更优模型,其借鉴新技术的思想值得学习,即A+B=AB的思路

摘要核心

  • 研究背景1:近年,卷积神经网络给图像识别带来巨大提升
  • 研究背景2:最近,残差连接的使用使卷积神经网络的到了巨大提升
  • 提出问题:是否可以将Inception与残差连接结合起来,提高卷积神经网络
  • 本文成果1:从实验经验得出,残差连接很大程度的加速了Inception的训练,提出了新的网络模型结构 streamlined architectures
  • 本文成果2:对于很宽的residual inception网络,提出激活值缩放策略,以使网络训练稳定
  • 本文成果3:模型融合在ILSVRC上获得3.08% top-5的错误率

激活值缩放

为了让模型训练稳定,在残差模块中对残差进行数值大小的缩放,通常乘以0.1-0.3之间的一个数。

当超过1000个卷积核时,会出现死神经元

在最后的平均池化层之前会出现值为0的现象

这个现象用小学习率和BN都没办法避免

6 SENet(2018) 模块

研究背景 研究意义 成果

  • CVPR 2018 第一篇论文
  • Cifar-10/100、places365、COCO数据集均超越主流
  • 较早的将注意力机制引入卷积神经网络,而且该机制是一种即插即用的模块,可嵌入任意主流的卷积神经网络中
  • 注意力机制
  • Attention ResNet
  • CDAM

注意力机制

相关研究

  • STNet :Spatial-transform Net 空间变换网络,用于增强CNN对图像的空间变换的鲁棒性。STNet通过spatital transformer将形变的、位置偏离的图像变换到图像中间,使得网络对空间变换更鲁棒

  • Attention

  • CBAM 提出两阶段的注意力机制,一个针对通道维度,一个针对空间维度,从这也可以看出,注意力机制可分不同维度进行

研究背景总结

注意力机制方式可理解为,设计一些网络层输出“权重”值,利用权重值与特征图进行计算,实现特征图的变换,使模型加强关注的区域的特征值。

Squeeze and Excitation

  • Squeeze:Global information Embedding
    • 采用全局池化,即压缩H和W至1*1 利用1个像素来表示一个通道,实现低纬嵌入
  • Excitation:Adaptive Recalibration
    • 第一个全链接层的激活函数为Relu,第二个全链接层激活函数为sigmoid
    • 重要参数:reduction ratio r 控制第一个全链接层神经元个数 进而影响SE Block的参数量 关于r的有对比实验,经验值为16
  • SE Block流程图
    • Squeeze:压缩特征图至向量形式
    • Excitation:两个全链接层对特征向量进行映射变换
    • Scale:将得到的权重向量与通道做乘法
  • 嵌入方式:
    • 基本原则:SE Block只重构特征图,不改变原来结构

SE-ResNet-50

本文并没有提出一个完整的网络模型,仅提出即插即用的网络模块-SE Module

每一个Residual Block后嵌入SE Block

实验结果及分析

  • SE-Module均带来了性能提升
  • SE-ResNet-50精度与ResNet-101差不多,但是GFLOPs少了一半
  • SE-Module与网络深度带来的提升是互补的
  • 非残差结构的模型上,同样有提升

FLOPs - 衡量模型计算复杂度

  • FLOPS 每秒浮点运算次数 用来衡量硬件设备的运算速度
  • FLOPs 浮点运算数 用于衡量模型计算复杂度

Ablaton Study 控制变量法进行实验

启发点

  1. 本文研究通道之间的关系,表明模型的发展已经从框架走向细节
  2. 论文对自注意力机制的解释,计算资源偏向哪些有价值有意义的特征
  3. 低维嵌入的理解,将数据做了某种操作(变换、映射),将数据维度压缩之后,可称为Embedding
  4. 实验结果表明,加入SE blocks可作为模型增加深度的互补,即同时增加SE block和网络深度,均可以带来性能提升
  5. GoogLeNet系列模型难复现,表明其中有很多trick,所以模型适用性不如ResNet
  6. SE-ResNet、SE-ResNeXt and SE-Inception-ResNet
  7. SE block嵌入ResNet时,FC层不需要加偏执
  8. 越靠前的层的特征越普遍,越考后则越特殊,比如前面的层学习到边缘、颜色块等特征,后面学到物体的整体特征
  9. 训练技巧:为了让训练和测试保持一致,在最后几个epoch的时候,冻结住BN层的参数
  10. 训练技巧:Batchsize越大,学习率也可以越大,但普通玩家没有那么大的GPU,该结论为经验,并无理论证明

7 ResNeXt 深度神经网络中的残差聚合变换

论文研究背景、成果、意义

相关研究

  • VGG: 结构简洁(超参只需要关心深度和宽度)堆叠使用3X3卷积,广泛应用到各视觉任务中
  • ResNet:沿用VGG的简洁结构设计,同时堆叠的Building Block采用残差结构
  • Inception系列,采用多分枝结构,背后思想为Split-Transform-Merge,缺点是超参数过多,泛化能力差
  • ResNeXt:将VGG、ResNet和Inception中优秀的思想归纳并演绎,得到强大的ResNeXt结构
  • ResNeXt结构上采用多个Building BLock堆叠,结构简洁,Building Block中采用残差结构,同时采用Aggregated Transform 即Split-Transform-Merge思想

研究意义

  • 经典网络中提炼精华,进行改进ResNet 得到强大的ResNet改进版,其提炼出的Split-Transform-Merge思想对卷积神经网络的设计起到了重要作用
  • 提出**cardinality(分组卷积的组数)**指标用于衡量模型复杂度,为卷积神经网络设计提供了新思路

摘要核心

  • 全文概括:本文提出了一个简洁且高度可调节的神经网络结构,该网络通过反复堆叠Building Block实现,Building Block则通过聚集简洁的卷积模型来实现
  • 本文优点:该网络具有相同的,多分枝的结构,并且对应的超参数非常少
  • 本文方法:本文提出一个与网络宽度和深度类似作用的参数,用于衡量网络大小,称之为cardinality(基数)
  • 本文结论:imageNet-1k数据集上,不增加模型复杂度,增加cardinality可以提高网络性能,同时发现增加cardinality比增加网络深度和宽度可以更好的提升网络模型的性能
  • 本文成果:2016分类亚军,并在ImageNet-5k和COCO数据集上超越ResNet

聚合变换分析

一个神经元的操作

  • Splitting:X分解为D个元素,可理解为低维嵌入
  • Transforming:每个元素进行变换,此处仅做乘法
  • Aggregating:对D个变换后的结果进行聚合(求和)

Block中的聚合变换

  • splitting:通过1X1卷积实现低维嵌入,256通道变成4个通道,总共32个分支(cardinality=32)
  • transforming:每个分支进行变换
  • Aggregating:对32个分支得到的变换结果-特征图进行聚合(求和)

Block的三种等效形式

  • 将各分支的最后一个1X1卷积融合成一个卷积
  • 将各分支的第一个1X1卷积融合成一个卷积,3X3卷积采用分组卷积的形式,分组数等于cardinality(基数)

分组卷积

分组卷积用更少的参数得到相同的特征图

Feature map:CXHXW kernel size:KXK output channel:N

Conv:CXKXKXN group conv:C/G X KXKXN

分组卷积的好处:让网络学习到不同的特征,获得更丰富的信息

实验结论

解决高方差采用更大的数据

数据足够时,ResNeXt比ResNet有更强的学习能力

论文总结

  • 提炼了VGG、ResNet和inception系列的优秀思想
    • 处理相同尺寸的特征图时,采用同样的大小、数量的卷积核
    • 特征图分辨率长款降低2倍,特征图通道数翻倍
    • block中各个分支采用相同结构,演化成分组卷积
  • 提出Cardinality来衡量模型复杂度,实验表明Cardinality比模型深度、宽度更有效

启发点

  • 视觉任务研究方向从传统特征工程转向网络工程
  • 相同架构的block进行堆叠,可以减少过度适应的风险,侧面反映出inception系列模型泛化能力可能较差
  • ResNet并不是模型集成的,各个branch是共同训练,只有当模型分开训练才称为模型集成

8 DenseNet 稠密连接的卷积神经网络

摘要核心

  • 背景介绍:近年卷积神经网络中加入捷径连接之后,可训练更深、精度更高、更高效的网络
  • 研究内容:本文提出DenseNet,其中的每一层会作为其后一层的输入层,对于L层的网络,传统方法有L层连接,而DenseNet有L*(L+1)/2个连接
  • 本文优点:减轻梯度消失,增强特征传播,加强特征复用,减少权重参数

DenseNet组件

Dense connectivity

稠密连接:在一个Block中,每一层的输入来自于它前面所有层的特征图,每一层的输出均会直接连接到它后面所有层的输入

优点:

  • 用较少参数获得更多特征,减少了参数
  • 低级特征得以服用,特征更丰富
  • 更强的梯度流动,调层连接更多,梯度可更容易向前传播

Composite function

将BN层、ReLu层和3X3卷积层组成一组操作对特征进行提取

pooling layers

池化层用于降低特征图分辨率,DenseNet将特征图分辨率下降操作称为transition layer由BN 1X1卷积 2X2池化构成

Dense block内部要求特征图分辨率保持一致

Growth rate

稠密连接的方式,使得特征图通道数睡着网络层的不断增多,因此要控制特征图数量,引入Growth rate超参数k来衡量dense block中特征图的多少

Bottleneck layers-DenseNet-B

瓶颈层来降低特征图通道数,减少后续卷积的计算量,当采用了以下形式进行特征提取,则网络会称为DenseNet-B

Compression 压缩

为进一步使DenseNet紧凑,在transition layer处采用较少的卷积核进行特征提取,从而压缩特征图通道数,压缩率用seta表示,典型值使0.5

当采用了Compression时,模型称为DenseNet-C 当同时采用Bottleneck layers和Compression称为DenseNet-BC,通常用的DenseNet指DenseNet-BC

网络结构

整体可分三大块,分别是头部卷积、Dense Block堆叠,全链接输出分类概率

论文总结

关键点&创新点

  • 将捷径连接和特征复用思想结合,同时借鉴及联机构思想,设计出稠密连接结构
  • 针对稠密连接,提出DenseNet-BC形式分别在block内部和transition部分采用1X1卷积进行数量的控制,使模型紧凑

启发点

  • 信息流通不顺畅时,普遍采用捷径连接来处理
  • 多采用捷径连接,便于信息流通,以及梯度传递,可使模型便于训练
  • 稠密连接在小数据集上起到正则作用,也有一种说法denseNet适用于小数据集
  • 不同程处理得到特征进行拼接,可丰富下一城网络输入特征的多样性,以及提高效率,注:提高效率是指不需要额外的计算,就可以得到特征
  • ResNet的求和形式由缺点,会阻碍信息流通,后续对要用拼接而不是求和时,可用
  • 多级特征融合时,要在卷积层之前执行BN-Relu 在卷积,否则多个层级输出时就执行BN,会导致特征的尺度不一致
  • 常规的数据集划分方式,通常拿到手的数据集划分为两部分,一部分训练、一部分验证、另外一部分没到手的作为测试集,用于评测模型最终指标,验证集的作用是用于挑选模型
  • DenseNet的训练及其消耗存储空间,因为需要保留大量的特征图用于反向传播计算
 类似资料: