【AI课程领学】第九课 · 激活函数(课时4) Leaky ReLU:为“死 ReLU”开一条小缝(课时5) PReLU:让模型自己学“负区间斜率”(含过拟合风险与工程实践)

【AI课程领学】第九课 · 激活函数(课时4) Leaky ReLU:为“死 ReLU”开一条小缝(课时5) PReLU:让模型自己学“负区间斜率”(含过拟合风险与工程实践)



欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可扫描博文下方二维码 “学术会议小灵通”或参考学术信息专栏:https://ais.cn/u/mmmiUz
详细免费的AI课程可在这里获取→www.lab4ai.cn


前言

Leaky ReLU 的目标非常明确:

  • 保留 ReLU 的优点,同时让负区间也有小梯度,避免神经元死亡。

1. 定义与导数

在这里插入图片描述
导数:

  • 正区间:1
  • 负区间: α α α(常取 0.01 或 0.1)

2. 为什么它能缓解 Dying ReLU?

  • 即使 x < 0 x<0 x<0,梯度不为 0,神经元仍能被更新,未来可能回到正区间。

3. PyTorch 使用

import torch.nn as nn

act = nn.LeakyReLU(negative_slope=0.01)

4. 实战建议:α 怎么选?

  • 默认:0.01(稳健通用)
  • 若数据噪声大、分布偏移明显:可以试 0.05~0.2
  • α 过大:会降低稀疏性,表现可能接近线性

5. 小实验:LeakyReLU 的负区间梯度

import torch

x = torch.tensor([-2.0, -1.0, 0.0, 1.0], requires_grad=True)
y = torch.nn.LeakyReLU(0.1)(x).sum()
y.backward()
print("x:", x.detach())
print("grad:", x.grad)

前言

  • PReLU(Parametric ReLU)进一步把 LeakyReLU 的 α α α 变成可学习参数。

1. 定义

在这里插入图片描述
其中 a a a 是可学习参数(可按通道学习)。

2. 优点与风险

优点:

  • 模型自动适配数据分布
  • 在某些任务中精度会略优于固定 α

风险:

  • 参数更多,可能过拟合(小数据集更明显)
  • 学到过大的负斜率 → 稀疏性下降

3. PyTorch 使用

import torch.nn as nn

act = nn.PReLU(num_parameters=1)    # 全层共享一个 a
# 或按通道学习(CNN)
act_ch = nn.PReLU(num_parameters=64)  # 64 channels

4. 观察 PReLU 学到的 a

import torch
import torch.nn as nn

act = nn.PReLU()
print("init a:", act.weight.item())
# 训练若干步后打印 act.weight 就能看到变化

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐