线性整流函数

整流線性單位函数(Rectified Linear Unit, ReLU),又称修正线性单元,是一种人工神经网络中常用的激勵函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。

比较常用的线性整流函数有斜坡函数 f(x) = \max(0, x),以及带泄露整流函数(Leaky ReLU),其中 x 为神经元(Neuron)的输入。线性整流被认为有一定的生物学原理,并且由于在实践中通常有着比其他常用激勵函数(譬如逻辑斯谛函数)更好的效果,而被如今的深度神经网络广泛使用于诸如图像识别等计算机视觉人工智能领域, 带泄露随机线性整流(Randomized Leaky ReLU),以及噪声线性整流(Noisy ReLU).

带泄露线性整流
在输入值 x 为负的时候,带泄露线性整流函数(Leaky ReLU)的梯度为一个常数 \lambda \in (0, 1),而不是0。在输入值为正的时候,带泄露线性整流函数和普通斜坡函数保持一致。换言之,

:f(x) = \begin{cases}
x & \mbox{if } x > 0 \\
\lambda x & \mbox{if } x \leq 0
\end{cases}

在深度学习中,如果设定 \lambda 为一个可通过反向传播算法(Backpropagation)学习的变量,那么带泄露线性整流又被称为参数线性整流(Parametric ReLU)。

带泄露随机线性整流
带泄露随机线性整流(Randomized Leaky ReLU, RReLU)最早是在Kaggle全美数据科学大赛(NDSB)中被首先提出并使用的。相比于普通带泄露线性整流函数,带泄露随机线性整流在负输入值段的函数梯度 \lambda 是一个取自连续性均匀分布 U(l,u) 概率模型的随机变量,即

:f(x) = \begin{cases}
x & \mbox{if } x > 0 \\
\lambda x & \mbox{if } x \leq 0
\end{cases}

其中 \lambda \sim U(l,u), l 且 l,u \in [0,1)。

噪声线性整流
噪声线性整流(Noisy ReLU)是修正线性单元在考虑高斯噪声的基础上进行改进的变种激活函数。对于神经元的输入值 x,噪声线性整流加上了一定程度的正态分布的不确定性,即

:f(x)=\max(0, x+Y)

其中随机变量 Y \sim \mathcal{N}(0, \sigma(x))。目前,噪声线性整流函数在受限玻尔兹曼机在计算机图形学的应用中取得了比较好的成果。通常情况下,大脑中在同一时间大概只有1%-4%的神经元处于活跃状态。使用線性修正以及正規化(regularization)可以对机器神经网络中神经元的活跃度(即输出为正值)进行调试;相比之下,逻辑函数在输入为0时達到 \frac{1}{2},即已经是半饱和的稳定状态,不够符合实际生物学对模拟神经网络的期望。不过需要指出的是,一般情况下,在一个使用修正线性单元(即线性整流)的神经网络中大概有50%的神经元处于激活态,然而這樣的對比不具科學意義,原因在於大腦是多功能多模態模型,神經元集輸出輸入思考記憶為一體,因此處理單向任務自然使用的相關神經元很少,而神經網路通常整個網路的神經元都為了單一任務訓練,因此活化時有很高比例的神經元都會用到。
*更加有效率的梯度下降以及反向传播:避免了梯度爆炸和梯度消失问题
*简化计算过程:没有了其他复杂激活函数中诸如指数函数的影响;同时活跃度的分散性使得神经网络整体计算成本下降

参考资料
外部链接

评论 (0)

  • 还没有评论,来抢沙发吧。