计算机视觉之图像分类算法基础
图像分类与基础视觉模型
图像分类的任务目标:给定一张图片,识别图像中物体的类别
图像分类问题:构建一个可计算实现的函数(即将图像映射到对应的类别)
图像为:
X
∈
R
H
∗
W
∗
3
X \in R^{H*W*3}
X∈RH∗W∗3
类别为:
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:RH∗W∗3→{1,…,k}
难点:图像的内容与单个像素的值无关,难以遵循具体的规则设计算法
解决方法:让机器从数据中学习
-
收集数据
-
定义模块
通常为含参变量的函数: y = F Θ ( X ) y=F_{\Theta}(X) y=FΘ(X)
例子: y = σ ( Θ T X ) y=\sigma(\Theta^{T}X) y=σ(ΘTX)
-
训练
寻找最佳参数$ \Theta ^{*}$,使得模型 y = F Θ ∗ ( X ) y=F_{\Theta^{*}}(X) y=FΘ∗(X),在训练集上达到最高正确率
-
预测
对于新图像 X ^ \widehat{X} X ,用训练好的模型预测其类别,即 y ^ = F Θ ∗ ( X ^ ) \widehat{y} =F_{\Theta^{*}}(\widehat{X} ) y =FΘ∗(X )
特征工程与特征学习的区别:
层次化特征的实现方式:
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(y∣X)=FΘ(X)概率向量y∗=yargmax(P(y∣X))类别
1.模型设计:设计适合图像的 F Θ ( X ) F_{\Theta}(X) FΘ(X)
- 卷积神经网络
- 轻量化卷积神经网络
- 神经结构搜索
- Transformer
卷积神经网络
AlexNet(2012)
AlexNet:
Going Deeper(2012~2014)
VGG-19 19层 ImageNet Top-5 准确率:92.7%
GoogLeNet 22层 ImageNet Top-5 准确率:93.4%
残差网络ResNet(2015)
残差学习的基本思路:
ResNet-34 34层 ImageNet Top-5 准确率:94.4%
ResNet中的两种残差模块:
更强的图像分类模型
神经结构搜索 Neural Architecture Search (2016+)
Vision Transformers (2020+)
使用 Transformer 替代卷积网络实现图像分类,使用更大的数据集训练,达到超越卷积网络的精度
代表工作:Vision Transformer (2020),Swin-Transformer (2021 ICCV 最佳论文)
ConvNeXt (2022)
将 Swin Transformer 的模型元素迁移到卷积网络中,性能反超 Transformer
轻量化卷积神经网络
卷积的参数量
- 输入特征图 X ∈ R H ∗ W ∗ C X \in R^{H*W*C} X∈RH∗W∗C
- 输出特征图 Y ∈ R H ′ ∗ W ′ ∗ C ′ Y \in R^{H'*W'*C'} Y∈RH′∗W′∗C′
- C ′ C' C′个 C C C通道的卷积核 K ∈ R C ′ ∗ K ∗ K ∗ C K \in R^{C'*K*K*C} K∈RC′∗K∗K∗C
- C ′ C' C′个偏置值 b ∈ R C ′ b \in R ^{C'} b∈RC′
卷积层的可学习参数包括:卷积核 + 偏置值
参数量的计算公式: C ′ ∗ ( C ∗ K ∗ K + 1 ) = C ′ C K 2 + C ′ C'*(C*K*K+1)=C'CK^{2}+C' C′∗(C∗K∗K+1)=C′CK2+C′
卷积的计算量(乘加次数)
- 输入特征图 X ∈ R H ∗ W ∗ C X \in R^{H*W*C} X∈RH∗W∗C
- 输出特征图 Y ∈ R H ′ ∗ W ′ ∗ C ′ Y \in R^{H'*W'*C'} Y∈RH′∗W′∗C′
- C ′ C' C′个 C C C通道的卷积核 K ∈ R C ′ ∗ K ∗ K ∗ C K \in R^{C'*K*K*C} K∈RC′∗K∗K∗C
- C ′ C' C′个偏置值 b ∈ R C ′ b \in R ^{C'} b∈RC′
输出特征图每个通道上的每个值都是输入特征图和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} H′∗W′∗C′∗(C∗K∗K)=H′W′C′CK2
降低模型参数量和计算量的方法:
- 降低通道数 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′∗(C∗K∗K+1)=C′CK2+C′
乘加次数计算公式: H ′ ∗ W ′ ∗ C ′ ∗ ( C ∗ K ∗ K ) = H ′ W ′ C ′ C K 2 H'*W'*C'*(C*K*K)=H'W'C'CK^{2} H′∗W′∗C′∗(C∗K∗K)=H′W′C′CK2
GoogLeNet使用不同大小的卷积核
基本思路: 并不是所有特征都需要同样大的感受野,在同一层中混合使用不同尺寸的特征可以减少参数量
ResNet 使用1×1卷积压缩通道数
可分离卷积将常规卷积分解为逐层卷积和逐点卷积,降低参数量和计算量
例:MobileNet V1/V2/V3 (2017~2019)
MobileNet V1 使用可分离卷积,只有 4.2M 参数,MobileNet V2/V3 在 V1 的基础上加入了残差模块和 SE 模块
ResNeXt将ResNet中的3×3卷积改为分组卷积,降低了模型的计算量
Vision Transformer
注意力机制Attention Mechanism
实现层次化特征: 后层特征是空间邻域内的前层特征的加权求和
权重越大,对应位置的特征就越重要
实现Attention
多头注意力 Multi-head (Self-)Attention
使用不同参数的注意力头产生多组特征,沿通道维度拼接得到最终特征,Transformer Encoder 的核心模块
2.模型学习:求解一组好的参数 Θ \Theta Θ
- 监督学习:基于标注数据学习
- 损失函数
- 随机梯度下降算法
- 视觉模型常用训练技巧
- 自监督学习:基于无标注的数据学习
模型学习的范式:
目标: 确定模型 F Θ F_{\Theta} FΘ的具体形式后,找到最优参数 Θ ∗ \Theta^{*} Θ∗,使得模型 F Θ ∗ ( X ) F_{\Theta^{*}}(X) FΘ∗(X)给出准确的分类结果 P ( y ∣ X ) P(y\mid X) P(y∣X)
监督学习
交叉熵损失 Cross-Entropy Loss
优化目标 & 随机梯度下降
动量 Momentum SGD
学习率与优化器策略
权重初始化
学习率对训练的影响
学习策略:学习率退火 Annealing
学习策略:学习率升温 Warmup
自适应梯度算法
早停 Early Stopping
数据增强
数据增强 Data Augmentation
训练泛化性好的模型,需要大量多样化的数据,而数据的采集标注是有成本的图像可以通过简单的变换产生一系列**“副本”,扩充训练数据集数据增强操作可以组合**,生成变化更复杂的图像。
组合数据增强 AutoAugment & RandAugment
组合图像 Mixup & CutMix
模型相关策略
Dropout
神经网络在训练时会出现共适应现象 (co-adaption),神经元之间产生高度关联,导致过拟合
训练时随机丢弃一些连接,破坏神经元之间的关联,鼓励学习独立的特征;推理时使用全部连接。
常用于全连接层,通常不与 BN 混用
随机深度 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(Hl−1)+id(Hl−1))
自监督学习
自监督学习的常见类型
Relative Location (ICCV 2015)
基本假设:模型只有很好地理解到图片内容,才能够预测图像块之间的关系
SimCLR (ICML 2020)
基本假设:如果模型能很好地提取图片内容的本质,那么无论图片经过什么样的数据增强操作,提取出来的特征都应该极为相似。
对于某种图片 𝑥,对它进行两次数据增强,得到 𝑥1 和 𝑥2
• 𝑥1 和 𝑥2 互为正样本
• 其他图片的增强结果都是 𝑥1 和 𝑥2 的负样本
Masked autoencoders (MAE, CVPR 2022)
基本假设:模型只有理解图片内容、掌握图片的上下文信息,才能恢复出图片中被随机遮挡的内容。