本文主要是介绍《南溪的目标检测学习笔记》——激活函数的学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍
激活函数的作用是为神经网络提供非线性;
1. Sigmoid
Sigmoid函数的图像如下:
梯度曲线如下:
关于Sigmoid的详细分析请参考《为什么sigmoid会造成梯度消失?》
2. ReLU——最常用的激活函数
我们可以看看ReLU的图像
ReLU比Sigmoid好的原因是因为梯度更加容易更新
可以使用Cockpit来进行实验看看,请参考《Cockpit:深度神经网络的训练调试神器!NeurIPS 2021》
3. SiLU – nn.functional.silu
使用ReLU和Sigmoid的机制改进的激活函数,被用于GiraffeDet[paper]中;
其函数公式如下:
SiLU ( x ) = x ⋅ σ ( x ) \text{SiLU}(x) = x \cdot \sigma(x) SiLU(x)=x⋅σ(x)
2. Swish (同“SiLU”)
Swish函数在PyTorch中没有进行实现,需要自己实现;
其公式与SiLU一样。
3. H-Swish
H-Swish对ReLU函数的高效近似,使用在PicoDet中;
3. SiLU
SiLU可以看作是一种较为平滑的ReLU函数;
可以看看SiLU的图像,
3 PyTorch激活函数
使用nn.ActFunc()
来新建一个激活函数层,
(这里我们参考官方ResNet的实现形式,不使用torch.nn.functional.act_func()来进行计算);
这篇关于《南溪的目标检测学习笔记》——激活函数的学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!