通用视觉框架OpenMMLab 图像分类与基础视觉模型 | 学习笔记
内容摘要
引入
-
什么是图像分类?
-
任务目标
- 给定一张图片,识别图像中的物体是什么
-
问题的数学表示
- 图像 = 像素数组 X -----y=F(X)------> y = 1(类别:香蕉)
-
视觉任务的难点
-
图像的内容是像素整体呈现出的结果,和个别像素的值没有直接关联,难以遵循具体的规则设计算法
-
超越规则:让机器从数据中学习
- 收集数据
- 定义模型
- 训练
- 预测
-
-
-
机器学习的局限
-
传统方法
-
设计图像特征 (1990s~2000s)
- 特征工程的天花板
-
-
从特征工程到特征学习
- 层次化特征的实现方式
- AlexNet 的诞生 & 深度学习时代的开始
-
卷积神经网络
- AlexNet (2012)
- Going Deeper (2012~2014)
- VGG (2014)
- GoogLeNet (Inception v1, 2014)
- 精度退化问题
- 实验的反直觉
- 残差学习的基本思路
- 残差网络 ResNet (2015)
- ResNet 中的两种残差模块
- ResNet 的成就和影响力
- ResNet 是深浅模型的集成
- 残差链接让损失曲面更平滑
- ResNet 的后续改进
ResNet 的后续改进
- 神经结构搜索 Neural Architecture Search (2016+)
- Vision Transformers (2020+)
- ConvNeXt (2022)
- 图像分类 & 视觉基础模型的发展
轻量化卷积神经网络
- 卷积的参数量
- 卷积的计算量(乘加次数)
- 降低模型参数量和计算量的方法
- GoogLeNet 使用不同大小的卷积核
- ResNet 使用1×1卷积压缩通道数
- 可分离卷积
- MobileNet V1/V2/V3 (2017~2019)
- ResNeXt 中的分组卷积
ResNeXt 中的分组卷积
- 注意力机制 Attention Mechanism
- Why Attention
- 实现 Attention
- 多头注意力 Multi-head (Self-)Attention
- 1D 数据上的 Attention
- Vision Transformer (2020)
- Swin Transformer (ICCV 2021 best paper)
模型学习
- 模型学习的范式
监督学习
- 监督学习流程
- 交叉熵损失 Cross-Entropy Loss
- 优化目标 & 随机梯度下降
- 动量 Momentum SGD
- 基于梯度下降训练神经网络的整体流程
- 训练技巧的重要性
学习率与优化器策略
- 权重初始化
- 学习率对训练的影响
- 学习率策略:学习率退火 Annealing
- 学习率策略:学习率升温 Warmup
- Linear Scaling Rule
- 自适应梯度算法
- 正则化与权重衰减 Weight Decay
- 早停 Early Stopping
- 模型权重平均 EMA
- 模型权重平均 Stochastic Weight Averaging
数据增强
- 数据增强 Data Augmentation
- 组合数据增强 AutoAugment & RandAugment
- 组合图像 Mixup & CutMix
- 标签平滑 Label Smoothing
模型相关策略
- 丢弃层 Dropout
- 随机深度 Stochastic Depth
自监督学习
-
自监督学习的常见类型
-
Relative Location (ICCV 2015)
-
SimCLR (ICML 2020)
-
Masked autoencoders (MAE, CVPR 2022)
-
总结
- 模型设计
- 模型学习
MMClassification 介绍
- 图像分类工具包 MMClassification
- Python 推理 API
- 推理工具(需源码安装)
- 训练工具(需源码安装)
- 使用 MIM 工具实现训练和测试
- 环境搭建
- OpenMMLab 项目中的重要概念——配置文件
- 配置文件的运作方式
- 图像分类模型的构成
- 图像分类模型构建
- 数据集构建
- 定义数据加载流水线
- 配置学习策略
- 预训练模型库
课程链接: