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 更稳定

因为:

负数区域保留小梯度
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐