AI 基础实战营打卡笔记提交 第二课

课程链接:火爆全网的 OpenMMLab 实战项目来了(基于 PyTorch)

目录

  • 一、图像分类算法技术演进
    • 1.1 传统方法:设计图像特征 (1990s~2000s)
    • 1.2 AlexNet (2012)
    • 1.3 Going Deeper (2012~2014)
    • 1.4 残差网络 ResNet (2015)
    • 1.5 神经结构搜索 Neural Architecture Search (2016+)
    • 1.6 Vision Transformers (2020+)
    • 1.7 ConvNeXt (2022)
  • 二、图像技术详解
    • 2.1 如何计算卷积的参数量和计算量
    • 2.2 如何减少卷积的计算量
    • 2.3 注意力机制
    • 2.4 Vision Transformer (2020)
    • 2.5 Swin Transformer (ICCV 2021 best paper)
  • 三、模型学习技术详解
    • 3.1 学习率与优化器策略
    • 3.2 数据增强 Data Augmentation
    • 3.3 模型相关策略

一、图像分类算法技术演进

1.1 传统方法:设计图像特征 (1990s~2000s)

    在 ImageNet 图像识别挑战赛里,2010 和 2011 年的冠军队伍都使用了经典的视觉方法,基于手工设计的特征 + 机器学习算法实现图像分类,Top-5 错误率在 25% 上下
    受限于人类的智慧,手工设计特征更多局限在像素层面的计算,丢失信息过多,在视觉任务上的性能达到瓶颈

1.2 AlexNet (2012)

  • 第一个成功实现大规模图像的模型,在 ImageNet 数据集上达到 ~85% 的 top-5 准确率
  • 5 个卷积层,3 个全连接层,共有 60M 个可学习参数
  • 使用 ReLU 激活函数,大幅提高收敛速度
  • 实现并开源了 cuda-convnet ,在 GPU 上训练大规模神经网络在工程上成为可能

1.3 Going Deeper (2012~2014)

  • VGG-19 19 层 ImageNet Top-5 准确率:92.7%
        将大尺寸的卷积拆解为多层 3×3 的卷积相同的感受野、更少的参数量、更多的层数和表达能力
  • GoogLeNet 22 层 ImageNet Top-5 准确率:93.4%
         - 使用 Inception 模块堆叠形成, 22 个可学习层
         - 最后的分类仅使用单层全连接层,可节省大量参数
         - 仅 7M 权重参数(AlexNet 60M、VGG 138M

1.4 残差网络 ResNet (2015)

     - 视觉领域影响力最大、使用最广泛的模型结构,获得 CVPR 2016 最佳论文奖

1.5 神经结构搜索 Neural Architecture Search (2016+)

    基本思路:借助强化学习等方法搜索表现最佳的网络
    代表工作:NASNet (2017)、MnasNet (2018)、EfficientNet (2019) 、RegNet (2020) 等

1.6 Vision Transformers (2020+)

    使用 Transformer 替代卷积网络实现图像分类,使用更大的数据集训练,达到超越卷积网络的精度
    代表工作:Vision Transformer (2020),Swin-Transformer (2021 ICCV 最佳论文)

1.7 ConvNeXt (2022)

    将 Swin Transformer 的模型元素迁移到卷积网络中,性能反超 Transformer

二、图像技术详解

2.1 如何计算卷积的参数量和计算量

    参数量计算公式: ′ × ( × × + 1) = ′2 + ′
    乘加次数计算公式:′ × ′× ′ × ( × × ) = ′′′2

2.2 如何减少卷积的计算量

  • 基本思路:降低通道数 ′ 和 (平方级别)、减小卷积核的尺寸 (平方级别)
  • GoogLeNet 使用不同大小的卷积核。基本思路:并不是所有特征都需要同样大的感受野,在同一层中混合使用不同尺寸的特征可以减少参数量
  • ResNet 使用1×1卷积压缩通道数
  • 可分离卷积:将常规卷积分解为逐层卷积和逐点卷积,降低参数量和计算量

2.3 注意力机制

  • 实现层次化特征: 后层特征是空间邻域内的前层特征的加权求和。权重越大,对应位置的特征就越重要
  • 多头注意力 Multi-head (Self-)Attention:使用不同参数的注意力头产生多组特征,沿通道维度拼接得到最终特征,Transformer Encoder 的核心模块

2.4 Vision Transformer (2020)

    将图像切分成若干 16×16 的小块,当作一列"词向量",经多层 Transformer Encoder 变换产生特征
    图块之外加入额外的 token,用于 query 其他 patch 的特征并给出最后分类
注意力模块基于全局感受野,复杂度为尺寸的 4 次方

2.5 Swin Transformer (ICCV 2021 best paper)

    为了减少序列长度和降低计算复杂度,在小窗口之内计算自注意力,所以只要窗口大小固定,自注意力的计算复杂度也是固定的,那么总的计算复杂度就是图像尺寸的线性倍。也就是使用了局部性的先验知识,在小窗口使用自注意力就可以了,并不需要去做全局的自注意力。
    为了生成多尺寸的特征,回想卷积神经网络为什么会有多尺寸的特征,主要是Pooling操作。Pooling可以增大每一个卷积核的感受野,所以可以获得不同尺寸的特征。于是提出了一个类似池化的操作patch merging,也就是将相邻的四个小patch合成一个大patch,从而获得不同尺寸的特征。所以swin transformer可以作为一个通用的骨干网络,不仅可以用于图像分类,还能做密集预测型的任务

三、模型学习技术详解

3.1 学习率与优化器策略

  • 学习率退火 Annealing :在训练初始阶段使用较大的学习率,损失函数稳定后下降学习率:
  • 学习率升温 Warmup :在训练前几轮学习率逐渐上升,直到预设的学习率,以稳定训练的初始阶段
  • Linear Scaling Rule:针对同一个训练任务,当 batch size 扩大为原来的 倍时,学习率也应对应扩大 倍
  • 自适应梯度算法:不同的参数需要不同的学习率,根据梯度的历史幅度自动调整学习率
  • 正则化与权重衰减 Weight Decay
  • 早停 Early Stopping:将训练数据集划分为训练集和验证集,在训练集上训练,周期性在验证集上测试分类精度当验证集的分类精度 达到最值时,停止训练,防止过拟合
  • 模型权重平均 EMA
  • 模型权重平均 Stochastic Weight Averaging:原理同 EMA,但在训练末期使用较高的学习率,在损失平面的平坦区域上做更多的探索,最后平均模型

3.2 数据增强 Data Augmentation

  • 数据增强 Data Augmentation
  • 组合数据增强 AutoAugment & RandAugment
  • 组合图像 Mixup & CutMix
  • 标签平滑 Label Smoothing

3.3 模型相关策略

  • 丢弃层 Dropout
  • 随机深度 Stochastic Depth

你可能感兴趣的:(人工智能,深度学习,计算机视觉)