# 评价指标
# 基本概念
- TP(True Positive): 真正例,指正例被正确地预测为正例。
- TN(True Negative): 真负例,指负例被正确地预测为负例。
- FP(False Positive): 假正例,指负例被错误地预测为正例。
- FN(False Negative): 假负例,指正例被错误地预测为负例。
# 核心指标
- 准确率(Accuracy): 模型正确预测的比例。
- 精确率(Precision): 在所有预测为正例的样本中,实际为正例的比例。
- 召回率(Recall): 在所有实际为正例的样本中,被正确预测为正例的比例。
- F1 Score: 精确率和召回率的调和平均值,综合评估模型的性能。
# 词袋法(Bag of Words)
# 基本流程
1. 训练框架:从训练数据中创建视觉字典
- 局部特征提取: 从训练图像中提取局部特征描述向量。
- 空间量化: 划分特征描述向量的空间。
- 视觉单词定义: 将量化后的空间定义为视觉单词。
2. 测试框架:将测试图像转化为词频直方图
- 局部特征提取: 从测试图像中提取局部特征描述向量。
- 视觉单词分配: 根据已创建的视觉字典,为每个描述符分配一个视觉单词。
- 词频直方图生成: 统计每个视觉单词的出现频率,生成词频直方图。
# 算法详解
1. 梯度直方图(HOG, Histogram of Oriented Gradients)
- 将图像分割成 像素的单元格。
- 对每个单元格:
- 计算每个像素点的梯度幅度和方向,得到 个数值。
- 构建一个方向梯度直方图(如包含 9 个“桶”),将每个像素点的梯度幅度值根据其方向按比例分配到相应的“桶”中,得到一个 的向量。
- 将一个 像素(覆盖 4 个单元格)的窗口内的 4 个 向量连接成一个 的向量,并进行归一化处理,以提高对光照变化的鲁棒性。
- 移动该窗口(步长为 8),得到图像的所有描述符集合。
- 优点: 能够有效捕捉局部梯度信息,对光照和对比度变化具有鲁棒性。
2. K-Means 聚类
- 将所有训练图像的 HOG 描述符集合使用 K-Means 聚类成 K 个类别,每个类别对应一个视觉单词。
- 按距离分类: 将每个样本 分配到距离最近的聚类中心 。
- 更新中心点: 将每个聚类中心 更新为该聚类中所有样本的平均值。
- 模型训练: 使用所有训练图像生成的视觉单词词频直方图作为特征向量,训练一个分类器(如线性逻辑回归或支持向量机)进行图像分类。
# 卷积神经网络(CNN)
# 基础架构与核心概念
- 输入维度: 。
- 卷积核: 大小为 。
- 偏置: 大小为 。
- 输出维度: 。
- 输出形状:
其中 是填充大小, 是卷积核的宽度和高度。
- 感受野: 每层卷积会增加 的感受野大小。对于 层卷积核大小相同的网络,总感受野大小为 。
- 卷积层参数量: 。
- 池化层: 输入输出维度计算。
- 和 卷积核: 卷积核通常用于减少通道数(即降维)。
# 缓解过拟合方法
- Dropout(随机失活): 训练时以概率 随机失活神经元,测试时神经元输出乘以 (或训练时神经元输出除以 ,测试时保持不变)。这可以减少神经元间的相互依赖性,但会增加训练时间。
- 图像增强: 通过对图像进行平移、翻转、颜色偏移等操作来增加训练数据量。
- 正则化: 包括 L1、L2 和 Elastic 正则化。
# 核心模块与结构
-
残差结构(Residual Block):
- 核心思想是让网络层拟合残差映射 ,而不是直接拟合目标映射 。
- 通过跳跃连接(shortcut)实现 。
- 使得损失曲面更平滑,有助于网络收敛到更优解,解决了深层网络中的梯度消失问题。
-
Batch Normalization(批标准化):
- 方法: 对每个小批量数据进行标准化,使其均值为 0,方差为 1,然后通过可学习的缩放因子 和平移因子 恢复其表达能力。
- 解决的问题: 缓解了“内部协变量偏移”,即上层网络输入数据分布随下层参数变化而不断变化的问题,从而加快了网络训练速度。
- 优势:
- 使网络层与层之间解耦,提高学习速度。
- 允许使用较大的学习率,加快收敛。
- 缓解梯度消失问题,允许使用饱和性激活函数。
- 引入随机噪音,起到正则化作用。
- 劣势: 在测试时无法进行批标准化,需要使用训练时的均值和方差,这可能导致训练和测试表现不一致。
-
可形变卷积(Deformable ConvNets, DCN):
- 核心思想: 允许卷积核的采样位置是可学习和可变的,使其能够自适应地对不同形状的物体进行特征提取。
- 实现: 通过一个并行的常规卷积分支生成采样位置的偏移量 。
- 优点: 能够有效建模空间变换,显著提高复杂视觉任务的准确性,且无需额外的监督。
# 经典网络架构
-
AlexNet: 第一个成功应用于大规模图像分类的 CNN 模型。
- 创新: 使用 ReLU 激活函数显著加快收敛;使用 GPU 训练;采用 图像增强 和 Dropout 缓解过拟合;使用带动量的随机梯度下降。
-
VGGNet: 示网络深度对性能的影响。
- 创新: 仅使用 卷积核;通过最大池化减半分辨率并翻倍通道数,使不同层次的特征具有简单的比例关系;使用 图像增强 和 Dropout。
-
GoogLeNet: 提出 Inception Module 以提高计算效率。
- 创新: 使用 Inception Module,并行使用多种尺寸的卷积核并拼接输出;通过 卷积核 降低通道数;使用 全局平均池化 替代全连接层;引入多个辅助分支来传递梯度。
-
ResNet: 解决了深度神经网络中的退化问题。
- 创新: 使用 残差模块,通过跳跃连接缓解梯度消失问题;堆叠残差模块构建极深网络;没有使用 Dropout,每层卷积后都有 Batch Normalization。
-
ViT、Pyramid Vision Transformer、Swin Transformer 和 ConvNeXt 等,这里不做展开。