核心:
核心:
全局平均池化:对于输出的每一个通道的特征图的所有像素计算一个平均值。优点:降维、减少网络参数、正则、
收敛速度减慢
为什么使用全局平均池化层
非对称卷积:非对称卷积不要用在靠近输入的层,会影响精度,要用在较高的层,这种方法不是哪儿都适用的,非对称卷积在图片大小介于12×12到20×20大小之间的时候,效果比较好,具体原因未知。
非对称卷积(googlenet系列)
详解Inception结构:从Inception v1到Xception
[论文笔记] Inception V1-V4 系列以及 Xception
从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2,ShuffleNetV2,MobileNetV3
核心:
提出原因:
传统的要提高模型的准确率,都是加深或加宽网络,但是随着超参数数量的增加(比如channels数,filter size等等),网络设计的难度和计算开销也会增加
核心;
1.ResNeXt结合了inception与resnet的优点
2.分组卷积(优势):参数量减少,分可以学习更多元的特征表示,此外分组的操作或许能起到网络正则化的作用。
核心:通道注意力SE模块、分组卷积
NAS(Neural Architecture Search)网络搜索技术非常火,但这对计算资源要求也比较高(都是大厂玩的东西)。包括这篇论文中的RegNet也有使用到NAS技术。但在论文中作者一再强调这篇论文与之前的一些NAS论文不同(例如MobileNetv3,EfficientNet),之前的一些有关NAS的论文都是在给定的设计空间(designed search space)中通过搜索算法去搜索出一组最佳参数组合。但在这篇论文中作者要探究的是如何去设计设计空间(design design spaces)并发现一些网络的通用设计准则(network design principles),而不是仅仅去搜索出一组参数.(即如何从一个给定的原始设计空间AnyNet一步步探索出最终的RegNet空间)
RegNetX的网络结构(stem+body+head)
RegNetY在block中的Group Conv后接了个SE(Squeeze-and-Excitation)模块(类似于EfficientNet吧)
RegNet网络结构与搭建
ResNeSt看上去像ResNeXt 和 SKNet 的结合体
从ResNet、DenseNet、ResNeXt、SE Net、SE ResNeXt 演进学习总结
ResNet家族:ResNet、ResNeXt、SE Net、SE ResNeXt(讲的很细)
核心;
建立了不同层之间的连接关系(每一层的输入来自前面所有层的输出),充分利用了feature,进一步减轻了梯度消失问题,加深网络不是问题,而且训练效果非常好。
利用bottleneck layer(1x1conv),Translation layer(倍率减少维度)以及较小的growth rate(固定输出特征图的个数-特征维度?)使得网络变窄,参数减少,有效抑制了过拟合,同时计算量也减少
1、减轻了vanishing-gradient(梯度消失)
2、加强了feature的传递
3、更有效地利用了feature
4、一定程度上较少了参数数量
核心:
1*1conv
升维+3*3DW conv
+ 1*1conv
降维)MobileNetV3的网络基础模块,包括深度可分离卷积(depthwise separable convolutions),逆向残差模块(inverted residual structure),线性瓶颈模块(linear bottleneck),**挤压模块(Squeeze-And-Excite)**等都是借鉴的mobile v1,v2,SENet等网络结构。基于这些网络结构的基础组件,采用NAS(network architecture search)的方式,搜索得到MobileNetV3-Large 和MobileNetV3-Small这2个网络结构。
MobileNet(v1、v2)网络详解与模型的搭建
轻量级网络模型之MobileNet系列
使用group convolution的网络有很多,如Xception,MobileNet,ResNeXt等。其中Xception和MobileNet采用了depthwise convolution,这是一种比较特殊的group convolution,此时分组数恰好等于通道数,意味着每个组只有一个特征图。但这些网络存在一个很大的弊端:采用了密集的1x1 pointwise convolution(计算量还是较大)
group convolution层另一个问题是不同组之间的特征图需要通信,否则就好像分了几个互不相干的路,大家各走各的,会降低网络的特征提取能力,这也可以解释为什么Xception,MobileNet等网络采用密集的1x1 pointwise convolution,因为要保证group convolution之后不同组的特征图之间的信息交流
1*1 group conv
升维+channel shuffle
+ 3*3DW conv
+ 1*1 group conv
降维channel shuffle:对group convolution之后的特征图进行“重组”,这样可以保证接下来采用的group convolution其输入来自不同的组,因此信息可以在不同组之间流转(具体操作需要看源代码)
shuffleNet系列
提出原因:
单纯的乘加运算FLOPs并不能完全表示模型的运算速度,访存开销memory access cost(MAC)也应该考虑进去
核心:
从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2,ShuffleNetV2,MobileNetV3
EfficientNet网络详解
EfficientNetV2网络详解
训练时要采用多分支结构,丰富了梯度的流动性,增强模型的表征能力。
推理采用单路模型会更快、更省内存并且更加的灵活。
3*3
卷积层和BN层进行融合(其实就是通过BN的计算公式和卷积的计算做的线性融合);1*1
卷积转换为3*3
卷积(对1*1
卷积周围补0);3*3
卷积,再用卷积和BN融合公式;3*3
卷积。即将所有分支的权重W和偏置B叠加起来,从而获得一个融合之后的Conv3*3
网络层。(1)从训练阶段转推理阶段之前,需要执行模型重参数化操作;(2)在模型重参数化过程中会增加一些额外的计算量;(3)由于每个残差块中引入了多个残差分支,网络的参数量也增加了一些。
RepVGG网络简介
RepVGG算法详解
ConvNeXt
使用的全部都是现有的结构和方法,没有任何结构或者方法的创新。论文中的作者认为可能是随着技术的不断发展,各种新的架构以及优化策略促使Transformer
模型的效果更好,然后对标Swin Transformer
的设计用卷积进行了一系列的仿照实验。
首先利用训练 vision Transformers
的策略去训练原始的ResNet50
模型,提升了许多:AdamW优化器进行了300轮训练并使用 cosine衰减学习率调度器,前20轮进行了预热。批量大小为1024,初始化学习率为 0.001,0.05的权重衰退。我们在训练的是时候用了 [63]中的绝大多数数据增强和正则化策略。除了与在 [31]中重复的数据增强操作和 [45]中的EMA,这些没有带来性能提升。注意这点和 [63]相反,在 [63]中重复的数据增强对ViT的稳定训练是至关重要的。( [63]、[31]、[45]均为Swin Transformer论文的参考文献)。
macro design:改变stage的比率、改变stem结构(卷积核大小为4x4步距为4)
ResNeXt:作者采用的是更激进的depthwise convolution,认为depthwise convolution和self-attention中的加权求和操作很相似。
inverted bottleneck:作者认为Transformer block中的MLP模块非常像MobileNetV2中的Inverted Bottleneck模块,即两头细中间粗。(但作者修改了一下顺序)
large kerner size:作者将depthwise conv的卷积核大小由3x3改成了7x7(和Swin Transformer一样)
various layer-wise micro designs:和Transformer一样,使用GELU替换ReLU;使用更少的激活函数(但在Transformer中并不是每个模块后都跟有激活函数);使用更少的Normalization;将BN替换成LN;在Swin Transformer中是通过一个单独的Patch Merging实现下采样,ConvNext网络也单独使用了一个下采样层卷积核大小为2步距为2的卷积。
ConvNeXt网络详解