线性整流函数(ReLU)

  线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。比较常用的线性整流函数有斜坡函数{displaystyle f(x)=max(0,x)},以及带泄露整流函数 (Leaky ReLU),其中 x 为神经元(Neuron)的输入。线性整流被认为有一定的生物学原理[1],并且由于在实践中通常有着比其他常用激活函数(譬如逻辑函数)更好的效果,而被如今的深度神经网络广泛使用于诸如图像识别等计算机视觉[1]人工智能领域。

  定义:

通常意义下,线性整流函数指代数学中的斜坡函数,即

{displaystyle f(x)=max(0,x)}

而在神经网络中,线性整流作为神经元的激活函数,定义了该神经元在线性变换 {displaystyle mathbf {w} ^{T}mathbf {x} +b}{displaystyle mathbf {w} ^{T}mathbf {x} +b}之后的非线性输出结果。换言之,对于进入神经元的来自上一层神经网络的输入向量 {displaystyle x}x,使用线性整流激活函数的神经元会输出

{displaystyle max(0,mathbf {w} ^{T}mathbf {x} +b)}

至下一层神经元或作为整个神经网络的输出(取决现神经元在网络结构中所处位置)。

  优势:

相比于传统的神经网络激活函数,诸如逻辑函数(Logistic sigmoid)和tanh等双曲函数,线性整流函数有着以下几方面的优势:

  • 仿生物学原理:相关大脑方面的研究表明生物神经元的信息编码通常是比较分散及稀疏的[6]。通常情况下,大脑中在同一时间大概只有1%-4%的神经元处于活跃状态。使用线性修正以及正则化(regularization)可以对机器神经网络中神经元的活跃度(即输出为正值)进行调试;相比之下,逻辑函数在输入为0时达到 {displaystyle {frac {1}{2}}}{frac {1}{2}},即已经是半饱和的稳定状态,不够符合实际生物学对模拟神经网络的期望[1]。不过需要指出的是,一般情况下,在一个使用修正线性单元(即线性整流)的神经网络中大概有50%的神经元处于激活态[1]
  • 更加有效率的梯度下降以及反向传播:避免了梯度爆炸和梯度消失问题
  • 简化计算过程:没有了其他复杂激活函数中诸如指数函数的影响;同时活跃度的分散性使得神经网络整体计算成本下降

参考文档:

1 https://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E6%95%B4%E6%B5%81%E5%87%BD%E6%95%B0

原文地址:https://www.cnblogs.com/dylancao/p/9103955.html