一、Pytorch操作

  • 前向传播:模型从输入到输出的核心推理过程
    经过输入层–隐藏层–输出层
    神经网络从输入层开始,经过隐藏层,最终到达输出层,逐层计算产生预测值。输入数据通过网络中的权重和偏置进行线性变换,然后进入隐藏层,通过激活函数进行非线性变换,得到每一层的输出。输出层的输出即为神经网络的预测值。

    Z 1 = X ⋅ W 1 + b 1 Z_1 = X \cdot W_1 + b_1 Z1=XW1+b1
    A 1 = σ ( Z 1 ) A_1 = \sigma(Z_1) A1=σ(Z1)
    Z 2 = A 1 ⋅ W 2 + b 2 Z_2 = A_1 \cdot W_2 + b_2 Z2=A1W2+b2
    Y p r e d = σ ′ ( Z 2 ) Y_{pred} = \sigma'(Z_2) Ypred=σ(Z2)

  • 反向传播与梯度:模型训练的优化核心,通过前向传播的预测结果与真实值计算损失,再从损失层反向遍历网络求解各层参数的梯度,梯度反映了参数对损失的影响程度,是参数更新的核心依据。其本质是链式求导
    ∂ L ∂ W = ∂ L ∂ Y p r e d ⋅ ∂ Y p r e d ∂ Z ⋅ ∂ Z ∂ W \frac{\partial \mathcal{L}}{\partial W} = \frac{\partial \mathcal{L}}{\partial Y_{pred}} \cdot \frac{\partial Y_{pred}}{\partial Z} \cdot \frac{\partial Z}{\partial W} WL=YpredLZYpredWZ

  • 优化器:根据梯度更新参数的工具,以达到最小化损失函数的目标。
    比如 SGD随机梯度下降:每次只用1个样本 算梯度,立刻更新参数.

w = w − η ⋅ ∇ L ( w ) w = w - \eta \cdot \nabla \mathcal{L}(w) w=wηL(w)

  • 归一化:将数据按比例缩放,使之落入一个小的特定区间,消除量纲差异,改善算法的收敛速度和性能。
    ① Min-Max 归一化(将数据缩到0~1)
    公式:
    x n o r m = x − x m i n x m a x − x m i n x_{norm}=\frac{x-x_{min}}{x_{max}-x_{min}} xnorm=xmaxxminxxmin ② Z-Score 归一化(均值0,方差1)
    x n o r m = x − μ σ x_{norm}=\frac{x-\mu}{\sigma} xnorm=σxμ
    BN批量归一化
    插在卷积之后、激活之前,把每一批数据均值≈0,方差≈1
    1.标准化:
    x ^ = x − μ B σ B 2 + ε \hat x=\frac{x-\mu_B}{\sqrt{\sigma_B^2+\varepsilon}} x^=σB2+ε xμB
    当前batch的均值 μ \mu μ、方差 σ \sigma σ
    2.缩放平移:
    y = γ x ^ + β y=\gamma\hat x+\beta y=γx^+β

  • 正则化:抑制模型过拟合的方法。
    L2正则(权重衰减 Weight Decay)

L t o t a l = L o r i + λ ∑ w 2 \mathcal{L}_{total}=\mathcal{L}_{ori}+\lambda\sum w^2 Ltotal=Lori+λw2
加入正则化惩罚项

二、CNN框架

  • 卷积计算:卷积核滑到图像某一区域时,对应位置相乘,全部元素累加求和得到输出一个像素点
    输出特征图尺寸公式: O = ⌊ I + 2 P − K S ⌋ + 1 \boldsymbol{O=\lfloor \frac{I+2P-K}{S}\rfloor+1} O=SI+2PK+1
    输入特征图 I:原始图像 / 上一层输出矩阵
    卷积核 K:小型权重矩阵,常用 3×3,用来提取边缘、纹理特征
    P:填充,图像四周补 0,防止边缘信息丢失、控制输出大小
    S :步长,卷积核每次滑动几格
  • ResNet残差连接:解决梯度消失(若每一层的误差梯度小于1,反向传播时,网络越深,梯度越趋近于0)和梯度爆炸(若每一层的误差梯度大于1,反向传播时,网络越深,梯度越来越大)问题,分为恒等映射(输入输出通道/尺寸一致)和投影映射(尺寸/通道不一致)两种形式
    • 恒等映射(shortcut无变换): F ( x ) = H ( x ) − x F(x) = \mathcal{H}(x) - x \quad F(x)=H(x)x
    • 投影映射(shortcut加1×1卷积,匹配维度): y = F ( x ) + W s ⋅ x y = F(x) + W_s \cdot x y=F(x)+Wsx
      其中 x x x为残差块输入, F ( x ) F(x) F(x)为残差函数(卷积层的计算结果); H ( x ) \mathcal{H}(x) H(x)为无残差连接的原始输出, W s W_s Ws为1×1卷积的权重(用于匹配输入输出的维度); y y y为残差块的最终输出。

三、Transformer:

3.1 整体Transformer架构

基于编码器(Encoder)- 解码器(Decoder)架构来处理序列对,完全基于注意力机制。

  • 词嵌入:将离散词映射为连续向量。
  • 位置编码:给每个位置加入固定、可学习的位置向量
  • 编码器:编码器由 N 层相同结构堆叠,每层含两个子层:多头注意力 + FNN前馈网络,带残差连接 + 层归一化
  • 解码器:同样由 N 层相同结构堆叠,包含带掩码的自注意力交叉注意力FFN 前馈网络,带残差连接 + 层归一化

3.2 图像Transformer架构

  • ViT(Vision Transformer):首个纯Transformer的视觉模型,不用卷积CNN,将图像切割为多个图像块(Patch),把Patch展平为一维向量后按NLP词向量的方式处理,通过自注意力机制提取Patch间的全局关联,实现图像特征提取。
  • Swin Transformer:改进型ViT计算量大,忽略图像层级结构的缺点,核心创新是窗口自注意力分层特征融合,将自注意力的计算范围限制在局部窗口内,大幅降低计算量。同时支持多尺度特征提取,窗口之间互通信息,有层级结构,更适配视觉任务。

3.3 Transformer用于目标检测

DETR: 用 CNN 提取特征,Transformer 建模,用可学习的对象查询和一对一匈牙利匹配直接预测目标集合,无需锚框与 NMS,是纯 Transformer 风格的端到端检测器。

四、半监督:

4.1 半监督下的弱增强/强增强操作

一致性正则化的基础,分为弱增强强增强两种方式:

  • 弱增强:对图像做轻微变换(如随机裁剪、水平翻转),保留核心特征与标签信息,适用于标注数据训练
  • 强增强:对图像做剧烈变换(如随机擦除、随机缩放),图像外观变化大但核心特征保留,适用于未标注数据训练,考验模型对特征的鲁棒性。

4.2 检测架构细分

  • 双阶段检测器 :先生成候选框,再对候选框做分类和回归,精度高但速度慢(Faster R-CNN);
  • 单阶段检测器 :全图遍历,同时预测边界框和类别,无需候选框步骤,速度快且满足实时性需求(YOLO系列)

4.3 损失函数

模型训练的优化目标,损失值的大小反映模型预测结果与真实值的差异。

  • 分类损失:衡量目标类别预测的误差,公式为:
    L c l s = − 1 N ∑ i = 1 N ∑ c = 1 C y i c log ⁡ ( p i c ) \mathcal{L}_{cls} = -\frac{1}{N} \sum_{i=1}^N \sum_{c=1}^C y_{ic} \log(p_{ic}) Lcls=N1i=1Nc=1Cyiclog(pic)
    其中 N N N为样本数, C C C为类别数; y i c y_{ic} yic为真实标签; p i c p_{ic} pic为模型预测第 i i i个样本为第 c c c类的概率。
  • 定位损失:衡量目标边界框预测的误差,公式为:
    L i o u = 1 − IOU ( B p r e d , B g t ) = 1 − ∣ B p r e d ∩ B g t ∣ ∣ B p r e d ∪ B g t ∣ \mathcal{L}_{iou} = 1 - \text{IOU}(B_{pred},B_{gt}) = 1 - \frac{|B_{pred} \cap B_{gt}|}{|B_{pred} \cup B_{gt}|} Liou=1IOU(Bpred,Bgt)=1BpredBgtBpredBgt
    其中 B p r e d B_{pred} Bpred为模型预测边界框, B g t B_{gt} Bgt为真实边界框; ∣ B p r e d ∩ B g t ∣ |B_{pred} \cap B_{gt}| BpredBgt为两框的交集面积, ∣ B p r e d ∪ B g t ∣ |B_{pred} \cup B_{gt}| BpredBgt为两框的并集面积。
  • 匈牙利匹配损失:DETR类Transformer检测模型的损失,解决预测框与真实框的一对一匹配问题,避免重复检测或漏检。核心是通过匈牙利算法找到预测框集合与真实框集合的最优匹配对,再对每一对匹配框计算分类损失+定位损失,总损失公式为:
    L H u n g a r i a n = ∑ i ∈ M [ L c l s ( y ^ i , y σ ∗ ( i ) ) + λ L l o c ( b ^ i , b σ ∗ ( i ) ) ] \mathcal{L}_{Hungarian} = \sum_{i \in \mathcal{M}} [\mathcal{L}_{cls}(\hat{y}_i,y_{\sigma^*(i)}) + \lambda \mathcal{L}_{loc}(\hat{b}_i,b_{\sigma^*(i)})] LHungarian=iM[Lcls(y^i,yσ(i))+λLloc(b^i,bσ(i))]
    其中 M \mathcal{M} M为匹配对的集合, σ ∗ \sigma^* σ为匈牙利算法得到的最优匹配策略; y ^ i 、 b ^ i \hat{y}_i、\hat{b}_i y^ib^i为预测框的类别和位置, y σ ∗ ( i ) 、 b σ ∗ ( i ) y_{\sigma^*(i)}、b_{\sigma^*(i)} yσ(i)bσ(i)为对应真实框的类别和位置; λ \lambda λ为权重系数,平衡分类损失与定位损失。

4.4 评价指标

  1. 基础指标TP/FP/FN
    TP:模型预测为目标,真实也为目标,表示检测正确;
    FP:模型预测为目标,真实为背景,模型预测错误;
    FN:模型预测为背景,真实为目标,即漏检。

  1. 衍生指标Precision/Recall:由TP/FP/FN推导而来,分别反映模型的抗误检和抗漏检能力,公式为:
    Precision = T P T P + F P \text{Precision} = \frac{TP}{TP + FP} Precision=TP+FPTP
    Recall = T P T P + F N \text{Recall} = \frac{TP}{TP + FN} Recall=TP+FNTP

  1. AP@0.5、AP@0.5:0.95、mAP
    以Recall(召回率)为横轴、Precision(精确率)为纵轴,绘制的模型在不同置信度阈值下的性能曲线,反映模型在 “漏检” 和 “误检” 之间的综合权衡能力。PR 曲线越靠近右上角,模型性能越好

    • AP(平均精确率):单个类别的 PR 曲线下的面积,数值越大代表该类别的检测性能越好,公式为:
      A P = ∫ 0 1 P ( R ) d R AP = \int_0^1 P(R) dR AP=01P(R)dR

    • AP@0.5/AP@0.5:0.95:在特定IOU阈值下计算的AP,AP@0.5为IOU阈值设为0.5时的AP,AP@0.5:0.95为IOU阈值从0.5到0.95以0.05为步长的所有AP的平均值,更全面衡量模型的定位精度。

    • mAP(平均AP):所有检测类别的AP的平均值,反映模型对所有类别的综合检测能力。公式为:
      m A P = 1 C ∑ c = 1 C A P c mAP = \frac{1}{C} \sum_{c=1}^C AP_c mAP=C1c=1CAPc
      其中 C C C为检测的类别数, A P c AP_c APc为第 c c c类的AP值。


  1. AR :
    多条件(IOU 阈值范围单图像最大检测数量限制 )下的召回率平均值
    AR@10:每张图像最多输出 10 个预测框
    AR@100:每张图像最多输出 100 个预测框,几乎不限制检测数量,该指标越高,说明模型在无检测数量约束时,能找出的真实目标越多,漏检率极低。

  1. FPS
    每秒处理的图像帧数,FPS越高,模型的实时检测能力越强。

4.5 经典半监督方法

  • 伪标签类操作:核心思路是让训练好的模型对未标注数据做预测,将高置信度预测结果作为 “伪标签”,与少量真实标注数据共同训练模型。

    • 基础伪标签
      直接将教师模型对未标注数据的原始预测结果作为伪标签,基础伪标签无任何质量控制,仅作为原始数据,必须经过优化后,才能成为有效训练样本。
    • 高置信度筛选
      只保留置信度≥阈值的预测结果(针对对目标类别的判断)
    • 动态阈值
      模型的预测能力会随训练轮数逐步提升:训练前期预测能力弱,阈值低从而防止有效伪标签数量过少,模型学习样本不足;训练后期模型预测能力强,若仍用低阈值会保留部分低质量伪标签,影响训练精度。
      动态阈值让置信度阈值随模型训练进程、模型性能、数据分布动态调整
    • 框过滤策略
      从目标边界框的位置精度、形状合理性、尺寸合理性层面,对候选伪标签做进一步过滤,以IOU 框质量过滤为核心.
  • 一致性正则化:核心思路是让模型对同一图像的不同增强版本的预测结果保持一致,利用未标注数据的“数据一致性”约束模型。核心是一致性损失,用于量化模型对不同增强图像的预测差异,差异越大,损失值越高,公式为:
    L c o n s i s t = L ( y ^ s t r o n g , y ^ w e a k ) \mathcal{L}_{consist} = \mathcal{L}(\hat{y}_{strong}, \hat{y}_{weak}) Lconsist=L(y^strong,y^weak)
    y ^ s t r o n g \hat{y}_{strong} y^strong为模型对强增强图像的预测结果, y ^ w e a k \hat{y}_{weak} y^weak为模型对弱增强图像的预测结果, L \mathcal{L} L为均方损失或交叉熵损失,让两者的预测结果尽可能接近。

    • 强增强
      对图像做剧烈的变换,大幅改变图像的外观特征,如随机擦除、混合裁剪、重度颜色抖动、随机缩放、旋转角度大于 30° 等,但目标的核心特征仍保留,弱增强数据输入Student 模型,提升模型对特征变换的鲁棒性。
    • 弱增强
      对图像做轻微、保守的变换,改变非核心特征,如随机水平 / 垂直翻转、小范围随机裁剪、轻微亮度 / 对比度微调等,输入EMA 的 Teacher 模型,预测更稳定。

4.6 EMA操作

EMA即指数移动平均,在师生模型中,其参数更新公式为:
θ T e a t h e r = α ⋅ θ T e a c h e r + ( 1 − α ) ⋅ θ S t u d e n t \theta_{Teather} = \alpha \cdot \theta_{Teacher} + (1 - \alpha) \cdot \theta_{Student} θTeather=αθTeacher+(1α)θStudent
教师模型不参与任何梯度计算和反向传播,仅通过 EMA 公式,由 Student 模型的最新参数做加权平滑更新,参数更新速度慢且稳定,初始时直接复制 Student 的初始参数。

4.7 伪标签质量控制

  • 置信度阈值 :人为设定的一个 0~1 之间的数值,用于筛选模型对目标检测结果的预测置信度(检测框内是某类目标的概率),保留置信度大于等于该阈值的预测结果,过滤掉置信度低的疑似错误预测,保证伪标签的可靠性

  • NMS非极大值抑制 :作用是过滤掉同一目标上的多个重叠预测框,只保留置信度最高的框,解决模型对同一目标重复检测的问题,让伪标签更精准。

  • IOU框质量过滤 :IOU 是衡量两个边界框空间重叠程度的指标,取值范围0~1,计算的是两个框交集面积与并集面积的比值,越接近1,定位精度越高,从而从位置精度层面筛选出高质量的框。

4.8 数据集设置

  • 训练集少量标注数据大量未标注数据的组合(对比全监督学习,训练集全部为带精准标注的数据集)。
  • 验证集是用于模型超参数调优(通过将不同超参数训练的模型在验证集上评估,选择验证集性能最优的超参数组合)、模型结构选择(选择适配任务的最优网络框架)、早停策略判断(防止过拟合,若模型在训练集上的损失持续下降,但验证集上的损失开始上升、性能开始下降,说明模型已出现过拟合,此时可停止训练,保留验证集性能最优的模型参数)的数据集,全程不参与模型的参数更新,仅用于评估模型的中间性能。验证集为带精准标注的数据集,且与训练集、测试集无数据重叠。
  • 测试集是用于模型最终泛化能力评估的数据集,全程为带精准标注的数据集

  • 不同数据集标注框的格式:
    • COCO 标注框为绝对像素值,直接描述边界框的像素位置,核心定义为左上角 x 坐标、左上角 y 坐标、框宽度 w、框高度 h
    • YOLO 标注框为 0~1 的归一化值(与图像尺寸无关),核心定义为框中心 x 坐标、框中心 y 坐标、归一化宽度 w、归一化高度 h
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐