神经网络中的激活函数

一、激活的概念:

将输入映射为特定分布的输出,完成非线性变换。

神经网络中的激活函数_第1张图片

多细胞生物神经元的树突接收信息,触发区整合电位,产生神经冲动,末端的突触向下一个神经元传递刺激。以人脑为例,人脑的细胞受刺激产生活动,而刺激的强度需要达到一定的阈值,没有达到阈值的刺激是无法使人产生活动的,不同的刺激产生的输出不同,达到一定值后就会饱和。

二、激活函数

激活函数可以分为四类:S激活函数、ReLU激活函数(包括近ReLU激活函数)、Maxout激活函数和自动搜索的激活函数。

(一)、S激活函数

(1) Sigmoid激活函数,也叫Logistic函数,值域为[0,1],即对输入做0~1的平滑变化

Sigmoid(x)=\frac{1}{1+e^{-x}}=\frac{e^{x}}{1+e^{x}}

优点:输出0~1,映射平滑适合预测概率

缺点:不过零点,没有负值激活,影响梯度下降效率;由图可以看出,当输入的绝对值大于5以后,进入饱和区,梯度为零,即出现了梯度消失问题。

神经网络中的激活函数_第2张图片

 (2) Tanh激活函数,对Sigmoid函数做一些变换,就得到Tanh函数,相比于Sigmoid函数,Tanh过零点,对负值也有激活,值域为-1~1,但是还是存在梯度消失问题。

Tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}=\frac{e^{2x}-1}{e^{2x}+1}=2Sigmoid(2x)-1

(二)、ReLU(Rectified Linear Unit, 修正线性单元)激活函数

ReLU(x)=max\left \{ 0,x \right \}                     正区间恒等变换,负区间为0

Softplus(x)=log(1+e^{x})                ReLU的平滑版本

优点:计算简单,倒数恒定(阶跃函数),拥有稀疏性,符合人脑的神经元活跃特性;

缺点:非零中心化,没有负值激活,影响梯度下降效率;如果一次不恰当的参数更新后,所有数据都不能使某个神经元激活,则其对应的参数梯度为0,以后也无法激活,陷入“死亡”。

神经网络中的激活函数_第3张图片

 为了解决ReLU函数负区间零激活问题,提出Leaky ReLU(LReLU)、Parametric ReLU(PReLU)和Random ReLU(RReLU),其统一表达式为:

max\left \{ \alpha x,x\right \}

如果\alpha取定值就是LReLU;若\alpha是可学习的参数就是PReLU;若\alpha为随机值就是RReLU.

神经网络中的激活函数_第4张图片

 PReLU:网络的浅层尤其是第一层卷积层中,学习到的α比较大,而到了深层就比较小。可以理解为网络的浅层学习到了类似于Gabor的浅层特征,更大的α可以提取到更加稠密的特征,而随着网络深度的增加,特征变得更加稀疏。

PReLU:当作一个正则项,用于增强网络的泛化能力。

如果LReLU的负区间取非线性函数就是ELU函数,其有较高的噪声鲁棒性,能够使神经元的平均激活均值趋近为0,但需要指数运算,计算量大。

ELU(x)=\left\{\begin{matrix} \alpha (e^{x}-1), & x\leqslant 0 & \\ x& x>0& \end{matrix}\right.

(三)、Maxout激活函数——分段线性函数

从多个输入中取最大值,求导简单,只在最大值的一路有梯度,整体学习输入到输出的非线性映射关系,拟合能力很强,但是增加了k-1个神经单元,计算量大。

max \cdot a_{k}=max(w_{1}^{T}x+b_{1},w_{2}^{T}x+b_{2},\cdots ,w_{n}^{T}x+b_{n})

(四)、自动搜索激活函数——Swish函数

Swish(x)=x\cdot Sigmoid(\beta x)=\frac{x}{1+e^{-\beta x}}

Swish函数是线性函数和ReLU函数之间的非线性插值函数,无上界有下届、平滑非单调,从数据中学习参数β,可以获得任务相关的激活机制。

你可能感兴趣的:(神经网络,机器学习,深度学习)