YOLOv4 中的 Mish 激活函数

时间:2022-07-24
本文章向大家介绍YOLOv4 中的 Mish 激活函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文转载自AI公园。

作者:Miracle R 编译:ronghuaiyang

导读

对YOLOv4中的Mish激活函数进行解释和优缺点对比。

YOLO,是一种 one-shot 的目标检测技术,由Joseph Redmon和Ali Farhadi在2016年引入,目前已经有4个版本的技术。在这里,我们会来看看YOLOv4,特别是它的优化器,使用的两个bags的优化函数:在训练期间使用的“Bag of Freebies (BoF)”和在推理期间使用的“Bag of Specials (BoS)”。

Bag of Specials包含了用于YOLOv4架构的主干和检测器的低计算成本模块。这些是:

在这里,我们可以看到Mish激活函数同时存在于主干和检测器中。那么,是什么让它“special”呢?让我们进一步了解这个激活函数。

Mish激活函数

Mish是光滑的非单调激活函数,可定义为:

f(x) = xtanh(ς(x))

其中, ς(x) = ln(1+e^x),是一个softmax激活函数和。

这与另一个被称为Swish函数的激活函数非常相似,可以定义为:

在YOLOv4中使用Mish函数的原因是它的低成本和它的平滑、非单调、上无界、有下界等特点,与其他常用函数如ReLU和Swish相比,提高了它的性能。

Mish的性能详细说明如下:

  1. 无上界有有界:无上界是任何激活函数都需要的特性,因为它避免了导致训练速度急剧下降的梯度饱和。因此,加快训练过程。无下界属性有助于实现强正则化效果(适当的拟合模型)。(Mish的这个性质类似于ReLU和Swish的性质,其范围是[≈0.31,∞))。
  2. 非单调函数:这种性质有助于保持小的负值,从而稳定网络梯度流。大多数常用的激活函数,如ReLU [f(x) = max(0, x)], Leaky ReLU [f(x) = max(0, x), 1],由于其差分为0,不能保持负值,因此大多数神经元没有得到更新。
  3. 无穷阶连续性和光滑性:Mish是光滑函数,具有较好的泛化能力和结果的有效优化能力,可以提高结果的质量。在图中,可以看到ReLU和Mish之间的一个随机初始化的神经网络在宏观平滑度上的剧烈变化。然而,在Swish和Mish的情况下,宏观上或多或少还是相似的。
  1. 计算量较大,但是效果更好:与ReLU相比,它的计算比较贵,但在深度神经网络中显示了比ReLU更好的结果。

![](Mish Activation Function In YOLOv4.assets/0_PJVEahgbKstqbgAd.png)

  1. 自门控:此属性受到Swish函数的启发,其中标量输入被提供给gate。它优于像ReLU这样的点式激活函数,后者只接受单个标量输入,而不需要更改网络参数。

Python实现

使用PyTorch可以在python中实现Mish函数,如下所示:

![0_93iwe6BzbP6VRSAj](Mish Activation Function In YOLOv4.assets/0_93iwe6BzbP6VRSAj.png)import torch
import torch.nn as nn
import torch.nn.functional as Fclass Mish(nn.Module):
    def __init__(self):
        super().__init__()
    def forward(self, x):
        return x*(torch.tanh(F.softplus(x)))

总结

在诸如CIFAR-10, CIFAR-100, CalTech-256, ASL等具有挑战性的数据集的70多个不同的问题标准中,Mish函数的表现超过了广泛使用的激活函数,如ReLU和Swish。下图显示了Mish、Swish和ReLU在不同模型的CIFAR-10数据集上的性能,从图中可以很容易地推断,Mish比Swish函数的性能大约高0.494%,ReLU比Swish函数的性能高1.671%,因此是三者中最准确的:

在YOLOv4中,使用了Mish函数+ CSPDarknet53的组合,尽管代价有点高,但它极大地提高了检测的准确性,因此使Mish成为**“Specials”**之一。

—END—

英文原文:

https://medium.com/clique-org/mish-activation-function-in-yolov4-49d2f30c6bb3

END

备注:CV