yolov5的激活函数

神经网络中的激活函数用来提升网络的非线性(只有非线性的激活函数才允许网络计算非平凡问题),以增强网络的表征能力。对激活函数的一般要求是:必须非常数、有界、单调递增并且连续,并且可导。
SiLU(Swish 激活函数):f(x)=x*sigmoid(x)

relu的优缺点?

  1. SGD算法的收敛速度比 sigmoid 和 tanh 快;(梯度不会饱和,解决了梯度消失问题)
  2.  计算复杂度低,不需要进行指数运算, 适合用于后向传播。

缺点

  1. 对参数初始化和学习率非常敏感,存在神经元死亡;
  2. ReLU的输出均值也大于0,偏移现象和神经元死亡会共同影响网络的收敛性;

SiLU是Sigmoid和ReLU的改进版。SiLU具备无上界有下界、平滑、非单调的特性。SiLU在深层模型上的效果优于 ReLU。可以看做是平滑的ReLU激活函数。
f ( x ) = x ⋅ sigmoid ( x ) f(x) = x · \text{sigmoid}(x)

yolov5的激活函数_第1张图片

Hardswish

yolov5的激活函数_第2张图片

yolov5的激活函数_第3张图片

 HardSwish平滑地在ReLU和线性函数之间进行了非线性差值。HardSwish的属性与Swish相似,因为它们都是上下无界的,它是非单调的。该函数与Swish相比,它的计算速度更快。
 

Mish:Mish = x*tanh(ln(1+e^x))

激活函数无边界这个特点,让他避免了饱和这一问题
比如sigmoid,tanh激活函数通常存在梯度饱和问题,在两边极限情况下,梯度趋近于1
而Mish激活函数则巧妙的避开了这一点

另外Mish函数也保证了每一点的平滑,从而使得梯度下降效果比Relu要好

yolov5的激活函数_第4张图片

 
  
FReLU: FReLU的形式为 y = m a x ( x , T ( x ) ) y = max(x, T(x))y=max(x,T(x)) ,其中 T ( ⋅ ) T(·)T(⋅) 为二维空间条件。
AconC:    (p1*x-p2*x) * sigmoid(beta*(p1*x-p2*x)) + p2*x ;beta is a learnable parameter 它通过引入开关因子去学习非线性(激活)和线性(非激活)之间的参数切换
MetaAconC:(p1*x-p2*x) * sigmoid(beta*(p1*x-p2*x)) + p2*x;beta is generated by a small network

你可能感兴趣的:(图像处理笔记,深度学习)