【深度学习】YOLOv5网络结构图&FocalLoss的原理
YOLOv5网络结构图
以YOLOv5s为例,更新时间为2020.11.17
FocalLoss的原理
二分类的交叉熵损失函数公式如下:
H y / ( p ( y ) ) = − [ y / ∗ l o g ( p ( y ) ) + ( 1 − y / ) l o g ( 1 − p ( y ) ) ] H_{y^/}(p(y)) =-[y^/*log(p(y))+(1-y^/)log(1-p(y))] Hy/(p(y))=−[y/∗log(p(y))+(1−y/)log(1−p(y))]
y / y^/ y/是label, p ( y ) p(y) p(y)是网络的分类结果
即:
{ H y / ( p ( y ) ) = − l o g ( p ( y ) ) , y / = 1 H y / ( p ( y ) ) = − l o g ( 1 − p ( y ) ) , y / = 0 \begin{cases}H_{y^/}(p(y))=-log(p(y)),y^/=1\\H_{y^/}(p(y)) = -log(1-p(y)),y^/=0\end{cases} {Hy/(p(y))=−log(p(y)),y/=1Hy/(p(y))=−log(1−p(y)),y/=0
可见,当label为1时,预测结果越大loss越小;当label为0时,预测结果越小loss越小
Focal Loss在此基础上进行了改进,公式如下:
{ L y / ( p ( y ) ) = − α ( 1 − p ( y ) ) γ l o g ( p ( y ) ) , y / = 1 L y / ( p ( y ) ) = − ( 1 − α ) p ( y ) γ l o g ( 1 − p ( y ) ) , y / = 0 \begin{cases}L_{y^/}(p(y))=-\alpha(1-p(y))^{\gamma}log(p(y)),y^/=1\\L_{y^/}(p(y)) = -(1-\alpha)p(y)^{\gamma}log(1-p(y)),y^/=0\end{cases} {Ly/(p(y))=−α(1−p(y))γlog(p(y)),y/=1Ly/(p(y))=−(1−α)p(y)γlog(1−p(y)),y/=0
Focal Loss新加入两个参数 γ \gamma γ和 α \alpha α。
当 γ \gamma γ大于0时,如果正样本预测结果接近1,则 ( 1 − p ( y ) ) γ (1-p(y))^{\gamma} (1−p(y))γ很小,如果正样本预测结果接近0,则 ( 1 − p ( y ) ) γ (1-p(y))^{\gamma} (1−p(y))γ相对较大。同理,如果负样本预测结果接近0,则 p ( y ) γ p(y)^{\gamma} p(y)γ很小,如果负样本预测结果接近1,则 p ( y ) γ p(y)^{\gamma} p(y)γ相对较大。由此,Focal Loss对于Hard的样本权重更大,即更关注Hard的样本。 γ \gamma γ一般取2
α \alpha α为平衡因子,一般取0.25,即负样本loss的权重更大。
结语
如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
手打很辛苦,如果我的文章对您有帮助,转载请注明出处。