基础网络 (Basemodel) 综述

以下是我在2018年7月份找工作时,根据个人所学总结出的基础网络 (Basemodel) 综述。
其中,仅仅挑出我认为比较重要的一系列基础网络,按照时间顺序进行简要概述。

如有阐述不对的地方,恳请指出。

LeNet

时间

1998

意义

  1. 标志着 CNN 的真正面世。

优点

  1. 在字符识别上取得了高于 99%的准确率。

缺点

  1. 当时没有 GPU,训练LeNet 极耗时;
  2. 非 OCR 的任务上,甚至不如 SVM。

应用

  1. OCR (如美国邮政系统)。

AlexNet

时间

2012

意义

  1. 证明了 CNN 在复杂模型下的有效性,CV 领域迎来“井喷式”大发展。
  2. ImageNet2012 1st。

创新点

  • 数据层面:
    1. 使用了 ImageNet 的海量数据(防止过拟合);
    2. 使用了数据增强(防止过拟合)。
  • 网络层面:
    1. 加入 dropout 防止过拟合;
    2. Relu 激活函数,避免了正半轴的梯度消失;
    3. 局部响应归一化(LRN) ,利用临近的数据做归一化 (2015 年 bn 出现后被淘汰)。
  • 硬件层面:
    1. 使用了 GPU,快速收敛(论文中的双 pipe-line 即表示双 GPU 并行)。

优点

打破了层数的天花板,深度达到 8 层。

应用

  1. R-CNN;
  2. SPPNet。

ZFNet

时间

2013

意义

  1. 利用反卷积对 CNN 特征进行可视化,洞察了 CNN 的层次性。

应用

  1. Faster R-CNN。

NiN

意义

  1. 采用多层感知机(多层全连接层和非线性函数的组合)替代了先前 CNN中简单的线性卷积层。由于非线性是深度学习一切抽象能力和表示能力的来源,因此相当于“在层间加塞多层感知机以增加非线性”。

应用

  1. 被 Inceptionv1 所借鉴。

GoogleNet

时间

2014

意义

  1. 提出了 Inceptionv1,开启了 Inception 系列;
  2. 刷新了网络的深度新刷新了网络的深度新纪录;
  3. 第一个提出了 conv1×1 的降维方法。第一个提出了 conv1×1 的降维方法。

创新点

  1. 类似于 NiN 的结构,即原来的节点也是一个子网络。

优点

  1. 参数量少。

缺点

  1. 结构复杂。

变种

  1. Inceptionv2/3/4、Xception

应用

  1. YOLOv1。

VGGNet

时间

2014

意义

  1. ImageNet2014 定位任务第一、分类任务第二。

创新点

  1. 该网络普遍使用小卷积核以替代大卷积核。

优点

  1. 网络结构超简单,高度模块化。
  2. 小卷积核叠加后可取得与大卷积核相同规模的感受野,而参数量更少;
  3. 加深了网络层数->增强了网络容量。

缺点

  1. 模型太大 (绝大部分参数在最后三个 fc 层),效率很低。
  2. 叠加卷积核意味着层数的增加,从而导致整个网络的总计算量增加;
  3. 层数增加导致更大的梯度风险。

结构

五个尺度的卷积,前两个每个都含有 2 层卷积,后三个每个含有 3-4 层卷积;跟着 3 个 fc,最后一个 Softmax 收尾。

应用

  1. Fast R-CNN;
  2. Faster R-CNN;
  3. SSD。

ResNet

时间

2015

意义

  1. 目前的主流 basemodel;
  2. ImageNet2015 冠军;
  3. CVPR2016 Best Paper。

创新点

  1. Highway Networks 第一个设计了不同层间的 mapping,而 ResNet 简化了 Highway Networks 的设计,只在相邻的 module 之间进行 mapping。再一次缓解了梯度问题,并又一次打破了网络层数的天花板。同时该设计也使得训练早期可以极快的收敛。

分析

为什么有效:

  1. 要学得的模型中,有一部分结构本来就是 identity mapping。而原始的“串行式”网络很难学得这种 mapping。ResNet 相当于增加了约束,帮模型轻松学得了 identity mapping。
  2. 加入 identity mapping 后,学习目标变成了残差,明显比学习原来的对象要容易。
  3. 站在 identity mapping的角度看,再深的 ResNet 其实也没几层。

思考

  1. ResNet 超过 50 层的才有用到 conv1×1,个人认为就是为了降维。

变种

  1. ResNeXt;
  2. DenseNet;
  3. DPN。

应用

  1. R-FCN;
  2. FPN(+Faster R-CNN);
  3. Mask R-CNN;
  4. RetinaNet。

DenseNet

时间

2016

意义

  1. CVPR2017 Best Paper。

创新点

  1. 将原本 ResNet 的“串行式的一对一 identity mapping”变成了“一对多的 identity mapping”,设计较为简单。

思考

  1. 因为只是对 ResNet 的 identity mapping 进行发扬光大,这个 idea 很多人都能想到,所有该文并不惊艳。

应用

  1. 打比赛刷榜;
  2. 论文刷 AP。

Xception

时间

2016

意义

  1. 目前最主流的几个轻量级 basemodel 之一。

创新点

  1. 用串行式 group 替代了之前常用的并行式 group。(负责串行式 group 的 module 叫做 separable convolution)

优点

  1. 参数量极少,模型超小。

缺点

  1. 特征抽取能力较差。

变种

  1. Xception145;
  2. Xception39。

ResNeXt

时间

2016

创新点

将 ResNet 原本简单的”残差架构”替换成“Inception 版的残差结构”。

优点

在 ImageNet 上可以比 ResNet 收敛得更快,分类效果稍优一点。

缺点

复杂。

应用

  1. 打比赛刷榜;
  2. 论文刷 AP。

DPN

时间

2017

创新点

  1. 双 pipe-line。一边是 ResNet,一边是 DenseNet,号称可以让两个pipe-line 优势互补。

应用

  1. 打比赛刷榜;
  2. 论文刷 AP。

总结

在 ResNet 出来之前,basemodel 经历了从 AlexNet 一家独大,到 GoogleNet 和 VGGNet 平分天下的时期。ResNet 出来后,由于其简单和强大,成为了 basemodel 的绝对标杆。

如今从业者一般遵循的流程是:

  1. 先用 ResNet-50 来验证算法的有效性;
  2. 当该算法在 ResNet-50 上切实有效后,如果要追求算法速度(如落地到移动端),则替换 basemodel 为 Xception、ShuffleNet;如果要追求高精度(如论文刷 AP、打比赛刷榜),则将 basemodel 替换为 ResNet-101/ResNeXt/DPN。
  3. train 阶段,一般直接导入预训练好的 basemodel,在自己的数据集上 fine-tune 一、二十个 epoch 即可。
发布了599 篇原创文章 · 获赞 856 · 访问量 184万+

猜你喜欢

转载自blog.csdn.net/JNingWei/article/details/86608063
今日推荐