前言
在深度学习相关的算法当中如果没有激活函数,就算模型结构再复杂都无法对非线性的数据进行相应的处理。而激活函数的加入则可以非常有效的解决这个问题。如今随着大模型时代的到来,不同的模型当中也采用了不同的激活函数,本文将对常见开源大模型中经常使用的激活函数进行简单的总结。
ReLU
ReLU函数,全称为修正线性单元(Rectified Linear Unit),是深度学习中常用的激活函数之一。
公式
f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)
当输入的 x x x为正数时,输出就等于输入 x x x本身;当输入 x x x为负数时,输出为0。
图像
优缺点
由上图可以看到,ReLU函数当值小于0时将对应的数据映射为0,而大于0的时候保持不变,这种激活函数运算非常简单,而且不存在饱和问题可以有效缓解梯度消失的问题。但是由于小于0的值会置零,这样容易导致对应的权重无法进行更新,这种现象被称为“神经元死亡”。
GELU
GELU全称为高斯误差线性单元(Gaussian Error Linear Units)在论文《Gaussian Error Lineas Units》(GELUs)中提出,设计灵感来自于随机神经网络和高斯误差函数,通过模仿自然神经元的行为,即输入信号与噪声的交互。
公式
具体的公式可以表示为
G E L U ( x ) = x P ( X ≤ x ) = x Φ ( x ) = x ⋅ 1 2 [ 1 + e r f ( x 2 ) ] GELU(x) = xP(X\le x) = x\Phi (x) = x·\frac{1}{2} [1+erf(\frac{x}{\sqrt{2} } )] GELU(x)=xP(X≤x)=xΦ(x)=x⋅21[1+