图像分类与 MMClassification
图像分类
图像:像素构成的数组
视觉任务的难点:图像的内容是像素整体呈现出的结果,和个别像素的值没有直接关联,难以遵循具体的规则设计算法
解决:让机器从数据中学习
- 收集数据
- 定义模型:设计适合图像的F(X)
- 卷积神经网络
- 轻量化卷积神经网络
- 神经结构搜索
- Transformer
- 训练:寻找最佳参数,使模型在训练集上达到最高正确率
- 监督学习:基于标注数据学习
- 自监督学习:基于无标注的数据学习
- 预测
机器学习的局限:机器学习算法善于处理低维、分布相对简单的数据,常规的机器学习算法难以处理图像这种复杂的数据分布
特征工程与特征学习
特征工程:通过变换或合并问题的原始特征,使其帮助算法更简单地做出准确的预测
特征学习:学习如何产生适合分类的特征,多个简单特征变换复合构成一个复杂的端到端的分类器
卷积神经网络
AlexNet (2012)
- 5个卷积层,3个全连接层,共60M个可学习参数
- 使用ReLU激活函数,大幅提高收敛速度
VGG-19
VGG (2014)
-
将大尺寸卷积拆解为多层3 x 3的卷积
-
相同的感受野、更少的参数量、更多的层数和表达能力
GoogLeNet (Inception v1, 2014)
- 使用 Inception 模块堆叠形成, 22 个可学习层
- 最后的分类仅使用单层全连接层,可节省大量参数,仅7M权重参数
精度退化问题:模型层数增加到一定程度后,分类正确率不增反降
残差网络 ResNet
- 残差建模:让新增加的层拟合浅层网络与深层网络之间的差异
- 残差连接:损失曲面更平滑,更容易收敛到全局/局部最优解
Vision Transformers
层次化特征
- 后层特征是空间领域内的前层特征的加权求和
- 权重越大,对应位置特征越重要
卷积
- 前层特征 * 卷积核 = 后层特征
- 权重是可学习的参数,与输入无关
- 只能建模局部关系,远距离关系只能通过多层卷积实现
注意力机制
- 前层特征 * 输入相关权重 = 后层特征
- 权重是输入的函数
- 可以不局限于邻域,显示建模远距离关系
多头注意力:使用不同参数的注意力头产生多组特征,沿通道维度拼接得到最终特征,Transformer Encoder 的核心模块
监督学习
简介
流程
- 标注一个数据集
- 定义损失函数L
- 解决一个最优化问题,寻找使总损失最小的参数
交叉熵损失 Cross-Entropy Loss
- 对于预测的类别概率 𝑃 ∈ [ 0 , 1 ] 𝐾 [0,1]^ 𝐾 [0,1]K 和类别真值 𝑦 ∈ {1, … ,𝐾} ,定义交叉熵损失为: L ( P , y ) = − l o g P y L(P,y) = -logP_y L(P,y)=−logPy
- 当预测准确时,损失为0,否则损失随目标类别概率减小而增大
针对神经网络,若损失函数为非凸函数,通常采用随机梯度下降算法求解
动量
- 将上一步的移动延续到本步
- 缓解随机梯度下降的波动
- 帮助逃离局部极小值点和鞍点
学习率与优化器策略
学习率对训练的影响
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JVOJvIzS-1675404055241)(https://microsoft.github.io/ai-edu/%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/A2-%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86/%E7%AC%AC5%E6%AD%A5%20-%20%E9%9D%9E%E7%BA%BF%E6%80%A7%E5%88%86%E7%B1%BB/img/12/learning_rate.png)]
- 从头训练可使用较大的学习率:如0.01~0.1
- 微调通常使用较小的学习率,如0.001~0.01
学习率策略
- 学习率退火:在训练初始阶段使用较大的学习率,损失函数稳定后下降学习率
- 学习率升温:在训练前几轮学习率逐渐上升,直到预设的学习率,以稳定训练的初始阶段
经验:针对同一个训练任务,当 batch size 扩大为原来的 𝑘 倍时,学习率也应对应扩大 𝑘 倍
早停:当验证集的分类精度 达到最值时,停止训练,防止过拟合
数据增强
图像可以通过简单的变换产生一系列"副本",扩 充训练数据集
组合图像
- Mixup:逐像素混合图像
- CutMix:遮盖原图并用另一幅图填充
标签平滑
- 动机:类别标注可能错误或不准确,让模型最大限度拟合标注类别可能会有碍于泛化性
- 做法:引入平滑参数,降低标签的“自信程度”
模型相关策略
丢弃层 Dropout
- 神经网络在训练时会出现共适应现象 (co-adaption),神经元之间产生高度关联,导致过拟合
- 训练时随机丢弃一些连接,破坏神经元之间的关联,鼓励学习独立的特征,推理时使用全部连接
随机深度 Stochastic Depth