`nn.Linear` + `LeakyReLU` 核心知识点总结
·
nn.Linear + LeakyReLU 核心知识点总结
1. nn.Linear 本质
nn.Linear(in_features, out_features)
本质公式:
y = xW^T + b
作用:
输入特征 → 加权组合 → 新特征
2. Linear 做了什么
例如:
nn.Linear(4, 8)
表示:
4维输入 → 8维输出
作用:
特征映射 / 升维 / 特征组合
3. 神经网络中的意义
Linear 负责:
学习“哪些输入特征重要”
例如:
x1*0.8 + x2*(-0.3) + ...
权重会自动学习。
4. 为什么需要激活函数
多个 Linear 连起来:
Linear + Linear
本质仍然:
一个 Linear
没有真正“深度”。
所以必须加入:
非线性激活函数
5. LeakyReLU 的作用
nn.LeakyReLU()
公式:
x > 0 : x
x < 0 : 0.01x
作用:
加入非线性
避免 dead neuron(神经元死亡)
相比 ReLU:
负数不会直接变0
6. 经典 MLP 结构
Linear
↓
LeakyReLU
↓
Linear
↓
LeakyReLU
含义:
线性变换
↓
非线性
↓
更深层特征组合
↓
非线性
这是:
最经典的前馈神经网络(MLP)
7. nn.Linear 如何处理二维 Tensor
输入:
x.shape = (batch, feature)
例如:
(5, 4)
表示:
5个样本
每个样本4个特征
Linear 会:
对每一行 independently 做同一个线性变换
但不是 Python for 循环。
而是:
GPU矩阵并行运算
8. 最重要规律
**nn.Linear 只处理最后一个维度**
规律:
(*, in_features)
→
(*, out_features)
即:
前面的维度全部保留
最后一个维度被变换
9. 二维 Tensor 示例
输入:
x.shape = (5,4)
经过:
Linear(4,3)
输出:
(5,3)
含义:
4维特征 → 3维特征
batch=5 不变
10. 三维 Tensor 也一样
输入:
(32,100,256)
经过:
Linear(256,512)
输出:
(32,100,512)
因为:
只处理最后一维
256 → 512
11. Transformer 里的本质
Transformer 中:
(batch, seq_len, embedding_dim)
经过:
Linear(d_model, ...)
实际上:
对每个 token 的 embedding 做变换
12. 一句话理解 nn.Linear
把最后一个维度当“特征维”
其它维度全部当 batch
ln = nn.LayerNorm(n) 也是在最后一维上操作,n代表最后一个维的大小
13. 一句话理解 MLP
Linear 负责特征组合
激活函数负责非线性表达
多层叠加负责学习复杂模式
14. 最终记忆图
输入
↓
Linear
(特征加权组合)
↓
LeakyReLU
(加入非线性)
↓
Linear
(进一步特征提取)
↓
LeakyReLU
(形成高级特征)
↓
输出
15. 最容易考/最容易忘的点
(1)Linear 不会遍历 Python for
而是:
矩阵并行计算
(2)Linear 只改最后一维
(*, in_features)
→
(*, out_features)
(3)没有激活函数就没有深度学习
因为:
Linear + Linear = 一个Linear
(4)LeakyReLU 比 ReLU 更稳定
因为:
负数区域保留小梯度
更多推荐

所有评论(0)