NN
🕌

NN

 
下面我给你一个清晰、结构化、从浅到深的解释,用来理解神经网络每一层在干什么。这完全可以用于面试回答。

⭐ 一句话概念

一个典型的神经网络(如 MLP / CNN / RNN / Transformer)由多种层组成:
输入层 → 线性层(加权求和) → 非线性层(激活函数) → 正则化层 → 输出层
每一层都在解决:信息提取、特征转换、稳定训练、提升泛化

⭐ 1. 输入层(Input Layer)

接收数据,不做任何变换。
例:
  • 二分类输入:x ∈ ℝⁿ
  • 图像输入:H × W × C
  • 文本输入:token embeddings
作用:
把原始数据的张量(tensor)喂进网络。

⭐ 2. 线性层(全连接层 / Dense Layer / Linear Layer)

核心公式:
[
z = W x + b
]
作用:
  • 将输入做线性变换
  • 从 n 维 → m 维,改变特征空间
  • 学习到要“加多少”“减多少”的权重
这是神经网络中最核心的参数层
例:
nn.Linear(128, 64)
表示把 128 维特征变成 64 维。

⭐ 3. 激活层(Activation Layer)

对线性层输出添加非线性
常见函数:
  • ReLU:max(0, x)
  • Sigmoid:将数值映射到 (0,1)
  • Tanh:映射到 (-1,1)
  • GELU:Transformer 默认激活
作用:
引入非线性 → 使得网络能拟合任意复杂函数(Universal Approximation)
如果没有激活函数,网络就变成了一个大线性变换,毫无意义。

⭐ 4. Dropout 层(随机失活)

训练时随机将部分神经元置 0。
作用:
减少过拟合,提高泛化;相当于对网络做“子结构随机采样”。

⭐ 5. Batch Normalization / LayerNorm(归一化层)

BN:
LN:
作用:
  • 加速训练
  • 稳定梯度
  • 减小 internal covariate shift
  • 改善深层网络的优化
Transformer 全部用 LayerNorm。

⭐ 6. 卷积层(CNN 专用)

卷积:
[
(\text{Conv}) = \sum_{i,j} W_{i,j} \cdot x_{i,j}
]
作用:
  • 提取空间局部特征(边缘、纹理等)
  • 权重共享 → 大幅减少参数
  • 从图片中自动学特征
适用于图像、语音。

⭐ 7. 池化层(Pooling)

max pooling:
[
y = \max(x)
]
average pooling:
[
y = \text{avg}(x)
]
作用:
  • 降低分辨率
  • 保留主要特征
  • 降低计算量

⭐ 8. RNN / LSTM / GRU 层(序列数据专用)

核心思想:状态 + 输入 = 新状态
例:LSTM
[
c_t = f_t c_{t-1} + i_t \tilde{c}_t
]
作用:
  • 处理序列数据(文本、时间序列)
  • 建模上下文依赖
  • 保留长期记忆(LSTM 比 RNN 稳定)

⭐ 9. Attention / Transformer 层

核心公式(Scaled Dot-Product Attention):
[
\text{Attention}(Q, K, V)=\mathrm{softmax}\left(\frac{QK^\top}{\sqrt{d}}\right)V
]
作用:
  • 建模任意距离的依赖关系
  • 取代 RNN 的顺序处理
  • 支撑 GPT / BERT / LLaMA 等大模型
Transformer = LayerNorm + MHA + FFN。

⭐ 10. 输出层(Output Layer)

决定最终任务的输出形式:
  • 回归:Linear layer 输出一个 real 数
  • 分类:Softmax
    • [
      p = \text{softmax}(z)
      ]
  • 二分类:Sigmoid
  • 语言建模:投影到 vocab size (e.g., 30522)
作用:
将模型内部表示转化为最终预测结果。

⭐ 神经网络的典型结构(MLP)

Input → Linear → ReLU → Linear → ReLU → Linear → Output
CNN:
Input → Conv → ReLU → Conv → ReLU → Pool → FC → Output
Transformer:
Input → Embedding → (LN → Attention → LN → FFN)xN → Output

⭐ 总结(面试可直接说)

神经网络由多种功能不同的层构成:
输入层接收数据;线性层进行加权求和;激活层注入非线性;
归一化层确保训练稳定;Dropout 用于正则化;
CNN 的卷积提取局部特征;RNN/LSTM 处理序列;
Transformer 的 Attention 建模全局依赖;
最后输出层把内部表示映射到预测结果。
每一层都在把特征一步步转换成更抽象的表示,最终完成任务。

如果你愿意,我可以帮你:
📌 画出神经网络结构图
📌 写 PyTorch 实现一个简单 MLP
📌 对比 CNN / RNN / Transformer 的不同层设计
随时告诉我!