常用的激活函数的总结
1. Sigmoid 函数
Sigmoid函数的图像
2. tanh函数
左:tanh函数,右:tanh函数的导数
3. ReLU函数
ReLU函数和其导数图像
ReLU函数可以达到比较快的收敛速度,但是其输出并不是zero-cnetered的,并且有Dead ReLU Problem
ReLU有其变体Leady ReLU
4. ELU(Exponential Linear Uints)函数
Exponential Linear Uints和其导数
5. MaxOut 函数
函数可以参考论文《maxout networks》Maxout是深度学习的一层网络。
对于网络中的某一层的输入,Maxout隐藏层中每个神经元的计算公式如下:
6.GeLU函数
GeLU是drouout,zoneout,Relu的结合体,GeLU对于输入一个乘以0,1组成,而该
的生成则是依据概率随机的依赖输入,假设输入为
,
为
那么
服从一个伯努利分布(
),最终的数学表示如下:
#源码可以如下方式表达:
def gelu(input_tensor):
cdf = 0.5*(1.0+torch.erf(input_tensor/torch.sqrt(2.0))
return input_tensor*cdf