【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础

计算机视觉之图像分类算法基础

图像分类与基础视觉模型

图像分类的任务目标:给定一张图片,识别图像中物体的类别

图像分类问题:构建一个可计算实现的函数(即将图像映射到对应的类别)
图像为: X ∈ R H ∗ W ∗ 3 X \in R^{H*W*3} XRHW3
类别为: y ∈ { 1 , … , k } y \in \left \{ {1,\dots,k} \right \} y{1,,k}
F : R H ∗ W ∗ 3 → { 1 , … , k } F:R^{H*W*3}\to \left \{ {1,\dots,k} \right \} F:RHW3{1,,k}
难点:图像的内容与单个像素的值无关,难以遵循具体的规则设计算法

解决方法:让机器从数据中学习

  1. 收集数据

  2. 定义模块

    通常为含参变量的函数: y = F Θ ( X ) y=F_{\Theta}(X) y=FΘ(X)

    例子: y = σ ( Θ T X ) y=\sigma(\Theta^{T}X) y=σ(ΘTX)

  3. 训练

    寻找最佳参数$ \Theta ^{*}$,使得模型 y = F Θ ∗ ( X ) y=F_{\Theta^{*}}(X) y=FΘ(X),在训练集上达到最高正确率

  4. 预测

    对于新图像 X ^ \widehat{X} X ,用训练好的模型预测其类别,即 y ^ = F Θ ∗ ( X ^ ) \widehat{y} =F_{\Theta^{*}}(\widehat{X} ) y =FΘ(X )

特征工程与特征学习的区别:

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第1张图片

层次化特征的实现方式:

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第2张图片

AlexNet的诞生:在 2012 年的竞赛中,来自多伦多大学的团队首次使用深度学习方法,一举将错误率降低至 15.3% ,而传统视觉算法的性能已经达到瓶颈,2015 年,卷积网络的性能超越人类。

图像分类的数学表示:
图像 → P ( y ∣ X ) = F Θ ( X ) 概率向量 → y ∗ = a r g m a x y ( P ( y ∣ X ) ) 类别 图像 \xrightarrow[]{P(y\mid X)=F_{\Theta}(X)} 概率向量 \xrightarrow[]{y^{*}=\mathop{argmax}\limits_{y}(P(y\mid X))} 类别 图像P(yX)=FΘ(X) 概率向量y=yargmax(P(yX)) 类别

1.模型设计:设计适合图像的 F Θ ( X ) F_{\Theta}(X) FΘ(X)

  • 卷积神经网络
  • 轻量化卷积神经网络
  • 神经结构搜索
  • Transformer

卷积神经网络

AlexNet(2012)

AlexNet:

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第3张图片

Going Deeper(2012~2014)

VGG-19 19层 ImageNet Top-5 准确率:92.7%

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第4张图片

GoogLeNet 22层 ImageNet Top-5 准确率:93.4%

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第5张图片

残差网络ResNet(2015)

残差学习的基本思路:

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第6张图片

ResNet-34 34层 ImageNet Top-5 准确率:94.4%

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第7张图片

ResNet中的两种残差模块:

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第8张图片

更强的图像分类模型

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

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第9张图片

Vision Transformers (2020+)

使用 Transformer 替代卷积网络实现图像分类,使用更大的数据集训练,达到超越卷积网络的精度

代表工作:Vision Transformer (2020),Swin-Transformer (2021 ICCV 最佳论文)

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第10张图片

ConvNeXt (2022)

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

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第11张图片

轻量化卷积神经网络

卷积的参数量

  • 输入特征图 X ∈ R H ∗ W ∗ C X \in R^{H*W*C} XRHWC
  • 输出特征图 Y ∈ R H ′ ∗ W ′ ∗ C ′ Y \in R^{H'*W'*C'} YRHWC
  • C ′ C' C C C C通道的卷积核 K ∈ R C ′ ∗ K ∗ K ∗ C K \in R^{C'*K*K*C} KRCKKC
  • C ′ C' C个偏置值 b ∈ R C ′ b \in R ^{C'} bRC

卷积层的可学习参数包括:卷积核 + 偏置值

参数量的计算公式: C ′ ∗ ( C ∗ K ∗ K + 1 ) = C ′ C K 2 + C ′ C'*(C*K*K+1)=C'CK^{2}+C' C(CKK+1)=CCK2+C

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第12张图片

卷积的计算量(乘加次数)

  • 输入特征图 X ∈ R H ∗ W ∗ C X \in R^{H*W*C} XRHWC
  • 输出特征图 Y ∈ R H ′ ∗ W ′ ∗ C ′ Y \in R^{H'*W'*C'} YRHWC
  • C ′ C' C C C C通道的卷积核 K ∈ R C ′ ∗ K ∗ K ∗ C K \in R^{C'*K*K*C} KRCKKC
  • C ′ C' C个偏置值 b ∈ R C ′ b \in R ^{C'} bRC

输出特征图每个通道上的每个值都是输入特征图和1个 C C C通道的卷积核进行一次卷积的结果

乘加次数计算公式: H ′ ∗ W ′ ∗ C ′ ∗ ( C ∗ K ∗ K ) = H ′ W ′ C ′ C K 2 H'*W'*C'*(C*K*K)=H'W'C'CK^{2} HWC(CKK)=HWCCK2

降低模型参数量和计算量的方法:

  • 降低通道数 C ′ C' C C C C
  • 减小卷积核的尺寸 K K K

参数量计算公式: C ′ ∗ ( C ∗ K ∗ K + 1 ) = C ′ C K 2 + C ′ C'*(C*K*K+1)=C'CK^{2}+C' C(CKK+1)=CCK2+C

乘加次数计算公式: H ′ ∗ W ′ ∗ C ′ ∗ ( C ∗ K ∗ K ) = H ′ W ′ C ′ C K 2 H'*W'*C'*(C*K*K)=H'W'C'CK^{2} HWC(CKK)=HWCCK2

GoogLeNet使用不同大小的卷积核

基本思路: 并不是所有特征都需要同样大的感受野,在同一层中混合使用不同尺寸的特征可以减少参数量

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第13张图片

ResNet 使用1×1卷积压缩通道数

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第14张图片

可分离卷积将常规卷积分解为逐层卷积和逐点卷积,降低参数量和计算量

例:MobileNet V1/V2/V3 (2017~2019)

MobileNet V1 使用可分离卷积,只有 4.2M 参数,MobileNet V2/V3 在 V1 的基础上加入了残差模块和 SE 模块

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第15张图片

ResNeXt将ResNet中的3×3卷积改为分组卷积,降低了模型的计算量

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第16张图片

Vision Transformer

注意力机制Attention Mechanism

实现层次化特征: 后层特征空间邻域内前层特征的加权求和

权重越大,对应位置的特征就越重要

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第17张图片

实现Attention

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第18张图片

多头注意力 Multi-head (Self-)Attention

使用不同参数的注意力头产生多组特征,沿通道维度拼接得到最终特征,Transformer Encoder 的核心模块

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第19张图片

2.模型学习:求解一组好的参数 Θ \Theta Θ

  • 监督学习:基于标注数据学习
    • 损失函数
    • 随机梯度下降算法
    • 视觉模型常用训练技巧
  • 自监督学习:基于无标注的数据学习

模型学习的范式:

目标: 确定模型 F Θ F_{\Theta} FΘ的具体形式后,找到最优参数 Θ ∗ \Theta^{*} Θ,使得模型 F Θ ∗ ( X ) F_{\Theta^{*}}(X) FΘ(X)给出准确的分类结果 P ( y ∣ X ) P(y\mid X) P(yX)

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第20张图片

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第21张图片

监督学习

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第22张图片

交叉熵损失 Cross-Entropy Loss

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第23张图片

优化目标 & 随机梯度下降

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第24张图片

动量 Momentum SGD

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第25张图片

学习率与优化器策略

权重初始化

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第26张图片

学习率对训练的影响

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第27张图片

学习策略:学习率退火 Annealing

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第28张图片

学习策略:学习率升温 Warmup

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第29张图片

自适应梯度算法

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第30张图片

早停 Early Stopping

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第31张图片

数据增强

数据增强 Data Augmentation

训练泛化性好的模型,需要大量多样化的数据,而数据的采集标注是有成本的图像可以通过简单的变换产生一系列**“副本”,扩充训练数据集数据增强操作可以组合**,生成变化更复杂的图像。

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第32张图片

组合数据增强 AutoAugment & RandAugment

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第33张图片

组合图像 Mixup & CutMix

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第34张图片

模型相关策略

Dropout

神经网络在训练时会出现共适应现象 (co-adaption),神经元之间产生高度关联,导致过拟合

训练时随机丢弃一些连接,破坏神经元之间的关联,鼓励学习独立的特征;推理时使用全部连接。

常用于全连接层,通常不与 BN 混用

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第35张图片

随机深度 Stochastic Depth

训练 ResNet 网络时,加入了随机变量 b(伯努利随机变量,只能取 0/1,取 0 的概率是 1−p,取 1 的

概率是 p),对整个 ResBlock 卷积部分做了随机丢弃。

• 如果 b = 1,则简化为原始的 ResNet 结构;

• 如果 b = 0,则这个 ResBlock 未被激活,降为恒等函数。
H l = R e L u ( b l f l ( H l − 1 ) + i d ( H l − 1 ) ) H_{l}=ReLu(b_{l}f_{l}(H_{l-1})+id(H_{l-1})) Hl=ReLu(blfl(Hl1)+id(Hl1))
【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第36张图片

自监督学习

自监督学习的常见类型

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第37张图片

Relative Location (ICCV 2015)

基本假设:模型只有很好地理解到图片内容,才能够预测图像块之间的关系

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第38张图片

SimCLR (ICML 2020)

基本假设:如果模型能很好地提取图片内容的本质,那么无论图片经过什么样的数据增强操作,提取出来的特征都应该极为相似。

对于某种图片 ,对它进行两次数据增强,得到 1 和 2

• 1 和 2 互为正样本

• 其他图片的增强结果都是 1 和 2 的负样本

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第39张图片

Masked autoencoders (MAE, CVPR 2022)

基本假设:模型只有理解图片内容、掌握图片的上下文信息,才能恢复出图片中被随机遮挡的内容。

【OpenMMLab AI 实战营】第二课:计算机视觉之图像分类算法基础_第40张图片

你可能感兴趣的:(OpenMMLab,AI,实战营,人工智能,计算机视觉,算法)