ERFNet网络的演化

1. Resnet网络
Resnet: Residual Network 深度残差网络
我们都知道增加网络的宽度和深度可以很好的提高网络的性能,深的网络一般都比浅的的网络效果好。但是最这网络的层数加深,当网络层数达到一定的数目以后,网络的性能就会饱和,再增加网络的性能就会开始退化,但是这种退化并不是由过拟合引起的,因为我们发现训练精度和测试精度都在下降,这说明当网络变得很深以后,深度网络就变得难以训练了。
ResNet的出现其实就是为了解决网络深度变深以后的性能退化问题。
具体参考:残差resnet网络原理详解
ERFNet网络的演化_第1张图片
具体这块还可以参考知呼的解答https://zhuanlan.zhihu.com/p/31852747。
这块我个人理解了以下,举个很简单的了例子,我们从x映射到y,可能需要一个复杂的映射关系,但是,当我们从x映射到y-x上,相比之前,我只需要知道x需要变化多少即可,残差其实就是在说明输入和输出的变化值,相比直接找输出,变化值的范围大概率会更小一些,也更容易在网络中收敛。
ERFNet网络的演化_第2张图片

2. ENet

参考他人笔记
照搬了一些,如果对原作者造成困扰,请联系我,我会删除相关。主要是自己做对比记录用的。

  • 什么是Enet?
    ENet (efficient neural network)
  • 为什么要用Enet?
    Enet网络结构简单,参数少,运行速度快。按照原始论文的描述,Enet相比正常Segmentation Net计算需求减少75倍,参数少了79倍。然而最终出来的效果和正常网络差不多。
  • Enet做了什么优化?
    首先,先看一下整个的架构
    ERFNet网络的演化_第3张图片
    a. 初始化模块优化:
    Conv:3x3,stride 2,num 13
    Maxpooling:2x2,stride 2,num 3
    将两边结果 concat 一起,合并成 16 通道,这样可以上来显著减少存储空间。ERFNet网络的演化_第4张图片
    b. bottleneck 模块,基于 ResNet 思想。
    基本的 bottleneck
    ERFNet网络的演化_第5张图片
    第一个 1x1 卷积实现降维;
    第二个主卷积层可以是普通卷积、非对称卷积、空洞卷积;
    第三个 1x1 卷积实现升维;
    使用 PReLU 激活函数,ReLU 降低了模型精度(网络层数较少);
    drop 防止过拟合;
    元素级加法融合,Resnet shortcut connection 的思维;
    下采样的 bottleneck
    ERFNet网络的演化_第6张图片
    2x2 conv 利于信息的保留
    2x2 pool 降采样提取上下文信息,保存 pooling indices;
    1x1 卷积升维

上采样bottleneck
ERFNet网络的演化_第7张图片
upsample 采用的是 SegNet 的方法进行上采样,结合下采样中的 pooling indices

3. ERFNet整体网络

  • 什么是ERFNet?
    Efficient Residual Factorized ConvNet
    ERFNet的核心操作是residual connections 和factorized convolutions(convolutions with 1D kernels)
    ERFNet网络的演化_第8张图片
    ERFNet网络的演化_第9张图片
  • ERFnet优化了什么?

ERF通过使用一维卷积,相比其他的block,参数至少减少20%,减少了计算量,提高了运行速度,同时保证运行结果没有太大的变化。

ERFNet网络的演化_第10张图片

你可能感兴趣的:(网络)