神经网络激活函数:ReLU基础

ReLU 是什么?

ReLU,全称是 Rectified Linear Unit(整流线性单元),它的定义超级简单:

f(x) = max(0, x)

换句话说:

  • 如果输入 x是正数或零,输出就是 x本身。
  • 如果输入 x是负数,输出就是 0。

它的函数图像是一条折线,在原点左侧沿横轴为0,右侧是一条斜率为1的直线。

ReLU 的数学表达式和代码实现

  • 数学表达式: 0 0 & ext{otherwise} end{cases}”>神经网络激活函数:ReLU基础
  • Python 实现(使用 NumPy):
import numpy as np
def relu(x):
    return np.maximum(0, x)

ReLU 的优点(为什么它如此流行?)

ReLU几乎取代了传统的 Sigmoid 和 Tanh 函数,成为深度学习的默认激活函数,主要归功于以下几个优势:

缓解梯度消失问题:

  • 对于 Sigmoid 和 Tanh 函数,当输入值很大或很小时,函数的梯度会接近于0。在反向传播时,梯度会一层层连乘,导致网络前层的梯度变得超级小,参数几乎无法更新,这就是“梯度消失”。
  • ReLU 在正区间的梯度恒为 1,在进行反向传播时,梯度不会由于连乘而迅速减小,极大地缓解了梯度消失问题,使得网络可以训练得更深,这是深度神经网络成功的关键之一。

计算效率极高:

  • 它的计算超级简单,只涉及一个阈值判断(是否大于0),没有像 Sigmoid/Tanh 中复杂的指数运算。在训练大型深度网络时,需要计算数百万甚至数十亿次激活函数,ReLU 带来的速度优势是巨大的。

加速收敛:

  • 由于梯度在正区间稳定为1,ReLU 能使网络更快地收敛。相比之下,Sigmoid 函数在接近饱和区时,微小的梯度更新需要许多步骤。

符合生物神经元的稀疏激活性:

  • 在必定时间内,大脑中只有少量神经元被激活。ReLU 也具有类似的“稀疏性”:当输入为负时,神经元输出为0,相当于“死亡”或“未被激活”;只有输入为正时,神经元才被激活。这种稀疏性可以让网络更好地学习相关特征,并具有必定的鲁棒性。

神经网络激活函数:ReLU基础

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容