1.ResNet

  1. 为什么ResNet可以解决“随着网络加深,准确率不下降”的问题:答:理论上,Resnet提供了两种选择方式,也就是identity mapping 和 residual mapping,如果网络已经到达最优,继续加深网络,residual mapping将被push为0,只剩下identity mapping,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。
  2. ResNet的两种设计:
    ResNest网络系列
  3. bottleneck design中111*1的作用:
    a)减少计算与参数量(约17倍)
    b)神经网络层数曾多,可以更好的拟合非线性模型
    参考:https://blog.csdn.net/lanran2/article/details/79057994

2.DenseNet

核心:create short paths from early layers to later layers

  1. DenseNet 的本质:每一层的输入均来自前面所有层的输出
    ResNest网络系列

  2. DenseNet-BC网络结构
    ResNest网络系列DenseNet-BC 较 DenseNet 多了 bottleneck layer(B)和 Translation layer(C),接下来详细介绍一下两者的作用:

    • bottleneck layer 即 Dense Block中的111*1卷积,可以大大减少计算量。以 DensNet-169 中的 Dense Block(3)为例,第 32 层的输入为前 31 层输出进行concat,如果不做 bottleneck layer ,假设每层输出的channel 为 32(growth rate,文中超参),则第 32 层的输入为32 * 31 + 上一个transition layer的输出channel (合共约1000)。如果做 bottleneck layer ,111*1 的channel 为 128(growth rate*4),大大减少了计算量;
    • transition layer,也是用来减少计算量的。还拿 DensNet-169 中的 Dense Block(3)为例,第32层的输出为32(growth rate),concate前31层的输出及上个Dense Block的输出为此Dense Block的输出(channel也是1000左右),transition layer有个参数reduction(范围是0到1),表示将这些输出缩小到原来的多少倍,默认是0.5,这样传给下一个Dense Block的时候channel数量就会减少一半,这就是transition layer的作用。文中还用到dropout操作来随机减少分支,避免过拟合。
  3. DenseNet的优点:
    a. 减轻了梯度消失:DenseNet网络的设计相当于将每一层的input和loss直接相连。
    b. 极致利用feature达到更好的效果
    c. 一定程度上减少了参数量及防治过拟合(bottleneck layer,Translation layer以及较小的growth rate选择)
    参考:https://blog.csdn.net/u014380165/article/details/75142664

3.SENet

核心:对特征的通道之间加入类似attention机制考虑

  1. se block原理图:
    ResNest网络系列a. Squeeze:对channel进行了squeeze,通过ave pooling 将feature map([W, H, C])变为[1,1,C]。【顺着空间维度进行压缩,将每个二维的特征通道[W,H]变成一个实数,该实数某种程度上具有该通道全局的特征】
    b. Excitation:对得到的squeeze后的feature map,使用sigmoid函数进行excitation,得到每个通道的权重
    c. Reweight:根据b得到的权重与原feature map加权
  2. se block结构图:
    ResNest网络系列参考:https://blog.csdn.net/liuxiao214/article/details/81914743

相关文章: