线性整流函数

整流線性單位函数（Rectified Linear Unit, ReLU），又称修正线性单元，是一种人工神经网络中常用的激勵函数（activation function），通常指代以斜坡函数及其变种为代表的非线性函数。 比较常用的线性整流函数有斜坡函数 f ( x ) = max ( 0 , x ) {\displaystyle f(x)=\max(0,x)} ，以及带泄露整流函数（Leaky ReLU），其中 x {\displaystyle x} 为神经元（Neuron）的输入。线性整流被认为有一定的生物学原理，并且由于在实践中通常有着比其他常用激勵函数（譬如逻辑函数）更好的效果，而被如今的深度神经网络广泛使用于诸如图像识别等计算机视觉人工智能领域。 通常意义下，线性整流函数指代数学中的斜坡函数，即 f ( x ) = max ( 0 , x ) {\displaystyle f(x)=\max(0,x)} 而在神经网络中，线性整流作为神经元的激活函数，定义了该神经元在线性变换 w T x + b {\displaystyle \mathbf {w} ^{T}\mathbf {x} +b} 之后的非线性输出结果。换言之，对于进入神经元的来自上一层神经网络的输入向量 x {\displaystyle x} ，使用线性整流激活函数的神经元会输出 max ( 0 , w T x + b ) {\displaystyle \max(0,\mathbf {w} ^{T}\mathbf {x} +b)} 至下一层神经元或作为整个神经网络的输出（取决现神经元在网络结构中所处位置）。 线性整流函数在基于斜坡函数的基础上有其他同样被广泛应用于深度学习的变种，譬如带泄露线性整流（Leaky ReLU）， 带泄露随机线性整流（Randomized Leaky ReLU），以及噪声线性整流（Noisy ReLU）. 在输入值 x {\displaystyle x} 为负的时候，带泄露线性整流函数（Leaky ReLU）的梯度为一个常数 λ ∈ ( 0 , 1 ) {\displaystyle \lambda \in (0,1)} ，而不是0。在输入值为正的时候，带泄露线性整流函数和普通斜坡函数保持一致。换言之， f ( x ) = { x if  x > 0 λ x if  x ≤ 0 {\displaystyle f(x)={\begin{cases}x&{\mbox{if }}x>0\\\lambda x&{\mbox{if }}x\leq 0\end{cases}}} 在深度学习中，如果设定 λ {\displaystyle \lambda } 为一个可通过反向传播算法（Backpropagation）学习的变量，那么带泄露线性整流又被称为参数线性整流（Parametric ReLU）。 带泄露随机线性整流（Randomized Leaky ReLU, RReLU）最早是在Kaggle全美数据科学大赛（NDSB）中被首先提出并使用的。相比于普通带泄露线性整流函数，带泄露随机线性整流在负输入值段的函数梯度 λ {\displaystyle \lambda } 是一个取自连续性均匀分布 U ( l , u ) {\displaystyle U(l,u)} 概率模型的随机变量，即 f ( x ) = { x if  x > 0 λ x if  x ≤ 0 {\displaystyle f(x)={\begin{cases}x&{\mbox{if }}x>0\\\lambda x&{\mbox{if }}x\leq 0\end{cases}}} 其中 λ ∼ U ( l , u ) , l < u {\displaystyle \lambda \sim U(l,u),l<u} 且 l , u ∈ [ 0 , 1 ) {\displaystyle l,u\in [0,1)} 。 噪声线性整流（Noisy ReLU）是修正线性单元在考虑高斯噪声的基础上进行改进的变种激活函数。对于神经元的输入值 x {\displaystyle x} ，噪声线性整流加上了一定程度的正态分布的不确定性，即 f ( x ) = max ( 0 , x + Y ) {\displaystyle f(x)=\max(0,x+Y)} 其中随机变量 Y ∼ N ( 0 , σ ( x ) ) {\displaystyle Y\sim {\mathcal {N}}(0,\sigma (x))} 。目前，噪声线性整流函数在受限玻尔兹曼机（Restricted Boltzmann Machine）在计算机图形学的应用中取得了比较好的成果。 相比于传统的神经网络激活函数，诸如逻辑函数（Logistic sigmoid）和tanh等双曲函数，线性整流函数有着以下几方面的优势： 仿生物学原理：相关大脑方面的研究表明生物神經元的訊息编码通常是比较分散及稀疏的。通常情况下，大脑中在同一时间大概只有1%-4%的神经元处于活跃状态。使用線性修正以及正規化（regularization）可以对机器神经网络中神经元的活跃度（即输出为正值）进行调试；相比之下，逻辑函数在输入为0时達到 1 2 {\displaystyle {\frac {1}{2}}} ，即已经是半饱和的稳定状态，不够符合实际生物学对模拟神经网络的期望。不过需要指出的是，一般情况下，在一个使用修正线性单元（即线性整流）的神经网络中大概有50%的神经元处于激活态。 更加有效率的梯度下降以及反向传播：避免了梯度爆炸和梯度消失问题 简化计算过程：没有了其他复杂激活函数中诸如指数函数的影响；同时活跃度的分散性使得神经网络整体计算成本下降 Xavier Glorot, Antoine Bordes and Yoshua Bengio. Deep sparse rectifier neural networks (PDF). AISTATS. 2011 [2016-09-28]. （原始内容 (PDF)存档于2016-12-13）.  Andrew L. Maas, Awni Y. Hannum and Andrew Y. Ng. Rectified Nonlinearities Improve Neural Network Acoustic Models (PDF). ICML. 2013 [2019-07-29]. （原始内容 (PDF)存档于2021-01-10）.  Xu, Bing; Wang, Naiyan; Chen, Tianqi; Li, Mu. Empirical Evaluation of Rectified Activations in Convolution Network. 2015. arXiv:1505.00853v2 .  cite arXiv模板填写了不支持的参数 (帮助) Vinod Nair and Geoffrey Hinton. Rectified linear units improve restricted Boltzmann machines (PDF). ICML. 2010. （原始内容 (PDF)存档于2014-03-24）.  He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian. Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification. 2015. arXiv:1502.01852v1 .  cite arXiv模板填写了不支持的参数 (帮助) David Attwell and Simon B. Laughlin. An energy budget for signaling in the grey matter of the brain. JCBFM. 2001 [2016-09-28]. （原始内容存档于2016-09-08）.  Quora: What is special about rectifier neural units used in NN learning?