机器学习中的数学——激活函数(三):ReLU(Rectified Linear Unit)函数

相关文章

ReLU(Rectified Linear Unit)激活函数详解

1.数学定义:

ReLU ( x ) = max ⁡ ( 0 , x ) = { x 如果  x ≥ 0 , 0 如果  x < 0 \text{ReLU}(x) = \max(0, x) = \begin{cases} x & \text{如果 } x \geq 0, \\ 0 & \text{如果 } x < 0 \end{cases} ReLU(x)=max(0,x)={x0如果 x0,如果 x<0
在这里插入图片描述

2.函数特性:

  • 输出范围:[0, +∞),非负输出。
  • 计算简单:仅需比较和取最大值,无指数运算。
  • 稀疏激活:负输入直接输出0,可产生稀疏性。
  • 当输入为正时,不存在梯度饱和问题
  • 导数:
    ReLU ′ ( x ) = { 1 如果  x > 0 , 0 如果  x < 0 , 未定义 在  x = 0  处(实际实现中常设为  0  或  1 ) \text{ReLU}'(x) = \begin{cases} 1 & \text{如果 } x > 0, \\ 0 & \text{如果 } x < 0, \\ \text{未定义} & \text{在 } x = 0 \text{ 处(实际实现中常设为 } 0 \text{ 或 } 1\text{)} \end{cases} ReLU(x)= 10未定义如果 x>0,如果 x<0, x=0 处(实际实现中常设为 0  1
  1. 在 x≠0 时,ReLU 的导数是明确的分段函数(x>0 时为 1,x<0 时为 0)。
  2. x=0 处的导数:数学上不可导(左导数为 0,右导数为 1),但实际编程(如深度学习框架)中通常约定为 0 或 1(例如 TensorFlow 默认为 1)。

3. 优点:

  • . 缓解梯度消失:正区间的梯度恒为1,彻底解决梯度消失问题(相比Sigmoid/Tanh)。
  • 计算高效:无需复杂运算,加速训练和推理。
  • 稀疏性:约50%的神经元可能被抑制(输出0),提升模型泛化能力。

4.缺点:

  1. Dead ReLU问题
    • 当输入为负时,ReLU完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零
    • 解决方案:使用Leaky ReLU或初始化时偏置设小正值(如0.01)。
  2. 非零中心化:输出均值大于0,可能影响梯度下降效率(但影响小于Sigmoid)。

5. 变体改进

变体名称公式特性
Leaky ReLUmax(0.01x,x)负区间小斜率,缓解Dead ReLU
PReLUmax(αx,x)(α可学习)自适应负区间斜率
ELU f ( x ) = { x if  x ≥ 0 , α ( e x − 1 ) if  x < 0 f(x) = \begin{cases} x & \text{if } x \geq 0, \\ \alpha(e^x - 1) & \text{if } x < 0 \end{cases} f(x)={xα(ex1)if x0,if x<0平滑处理负区间

6. 应用场景

  • CNN/全连接网络:90%以上隐藏层的默认选择。
  • 深层网络:避免梯度消失的核心工具。
  • 输出层:不适合需要概率输出或负值的场景(如回归问题可能需线性激活)。

7. 与其他激活函数对比

激活函数计算复杂度梯度消失Dead Neurons输出范围
ReLUO(1)可能[0, +∞)
Tanh高(指数)严重(-1, 1)
Sigmoid高(指数)严重(0, 1)

8. 使用建议

  1. 初始化:配合He初始化(方差为2/n)效果更佳。
  2. Batch Normalization:可进一步减少Dead ReLU概率。
  3. 监控:训练中跟踪神经元激活率(理想为30-50%)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值