YOLO,是一种one-hot的目标检测技术。由Joseph Redmon和Ali Farhadi在2016年引入,目前已经存在4个版本了。YOLOv4使用了两个bags的优化函数:在训练期间使用的“Bag of Freebies(BoF)”和在推理期间使用的“Bag of Special(BoS)”。
Bag of Special包含了用于YOLOv4架构的主干和检测器的低计算成本模块。
Mish激活函数是光滑的非单调激活函数,被定义为:
begin{align}
f(x)=xcdot tanh(zeta (x))
end{align}
其中, $ zeta (x)=ln(1+e^{x}) $ ,是一个softmax激活函数和。
这与另一个被称为Swish函数的激活函数类似,定义为:
begin{align}
f(x)=xcdot sigmoid(x)
end{align}
在YOLOv4中使用Mish函数的原因是它的低成本和它的平滑、非单调、上无界、有下界等特点,与其它常用函数如ReLU、Swish相比,提高了它的性能。
Mish的性能如下:
- 无上界,有下界:无上界是任何激活函数都需要的特性,因为它避免了导致训练速度急剧下降的梯度饱和。因此,加快训练过程。无下界属性属性有助于实现强正则化效果(适当的拟合模型)。(Mish的这个性质类似于ReLU和Swish的性质,其范围是 $ [approx 0.31,infty ) $ )。
- 非单调函数:这种性质有助于保持小的负值,从而稳定网络梯度流。大多数常用的激活函数,如ReLU,Leaky ReLU,由于其差分为0,不能保持负值,因此大多数神经元没有得到更新。
- 无穷连续性和光滑性:Mish是光滑函数,具有较好的泛化能力和结果的有效优化能力,可以提高结果的质量。
- 计算量较大,但是效果好:与ReLU相比,它的计算量比较大,但在深度神经网络中显示了比ReLU更好的结果。
- 自门控:此属性受到Swish函数的启发,其中标量输入被共给gate。它优于像ReLU这样的点式激活函数,后者只接受单个标量输入,而不需要更改网络参数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【目标检测】YOLOv4中的Mish激活函数 - Python技术站