Yolov5x反向传播的路径,按顺序从检测头到主干网络列出:
1. YOLOv5检测头的反向传播:根据预测框和真实框之间的差异计算出损失函数值,然后通过反向传播来更新网络参数。
2. Path Aggregation Network(PAN)的反向传播:使用自适应加权路由策略对低层级特征进行修正,需要计算路由系数的梯度。
3. Feature Pyramid Network(FPN)的反向传播:由于FPN在自顶向下的特征传播过程中使用了上采样、下采样等操作,需要计算每层特征图的梯度。
4. Spatial Pyramid Pooling(SPP)模块的反向传播:在反向传播时需要计算其输出与前向传播的输入之间的梯度。
5. BottleneckCSP模块的反向传播:该模块包括了跳跃连接和残差连接,需要计算其输出与前向传播的输入之间的梯度。
6. Convolutional Block Layer (CBL)的反向传播:该层中使用卷积操作,需要计算其输出与前向传播的输入之间的梯度。
7. 输入特征图的反向传播:最终得到输入特征图的梯度,用于更新网络参数。
在YOLOv5x网络中,sigmoid和softmax函数是在训练阶段之前被用来生成预测输出的,而不是在反向传播的过程中。具体地说,Detection Head的输出会被应用一系列的sigmoid函数和softmax函数,将不同的预测输出投影到预定义的范围内,最终得到分类、定位和置信度预测。
在反向传播的过程中,我们需要计算损失函数关于网络各个参数的梯度,以便通过梯度下降来更新网络参数。而在反向传播过程中,我们只需要计算损失函数的导数,而不需要像预测阶段那样对输出结果进行sigmoid或者softmax变换。
因此,在上述分类损失项的反向传播中,我们只需要计算输出结果$\text{p}_i(c)$和标签值$\widehat{p}_i(c)$之间的导数即可,无需进行其他的变换。
YOLOv5的联合损失函数包括了3个部分:坐标损失函数、置信度损失函数和类别损失函数。
这是坐标损失
其中,表示预测框i 的坐标输出,
表示真实框i 的坐标值,
表示系数。
好的,具体讲解反向传播的过程及公式。
接下来,我们来分别求关于第i个预测框的四个参数(