目录

  1. ​模型结构详解​
    • 层级组成
    • 激活函数
    • 输入与输出
  2. ​数学原理与推导​
    • 前向传播公式
    • 反向传播推导
  3. ​代表性变体及改进​
    • ResNet中的MLP
    • GRU中的门控MLP
    • BERT中的MLP层
    • StyleGAN中的映射网络
  4. ​应用场景与优缺点​
  5. ​PyTorch代码示例​

1. 模型结构详解

1.1 层级组成

前馈神经网络(MLP)由​​输入层、隐藏层、输出层​​组成,每层全连接。


  • ​输入层​​:维度 = 特征数(如28x28图像展平为784维)。
  • ​隐藏层​​:可多层堆叠,每层含多个神经元(如256维)。
  • ​输出层​​:维度 = 类别数(如10分类任务输出10维)。

1.2 激活函数

激活函数引入非线性,常见选择:

​隐藏层常用ReLU​​,输出层根据任务选择(如分类用Softmax)。


1.3 输入与输出

  • ​输入格式​​:向量形式(如展平的图像、表格数据)。
  • ​输出格式​​:
    • 回归任务:线性输出(无激活)。
    • 分类任务:Softmax概率分布。

2. 数学原理与推导

2.1 前向传播公式

设第 l 层权重 W(l),偏置 b(l),激活函数 f,则:

​输出层​​(以Softmax为例):


2.2 反向传播推导

以交叉熵损失 为例:

  1. ​输出层梯度​​:

  1. ​隐藏层梯度​​(链式法则):

  1. ​参数更新​​:


3. 代表性变体及改进

3.1 ResNet中的MLP

在残差块中,MLP用于​​1x1卷积通道数调整​​:


  • ​作用​​:调整通道维度,实现跨层连接。

3.2 GRU中的门控MLP

GRU的​​更新门​​和​​重置门​​由MLP实现:

  • ​作用​​:动态控制历史信息的遗忘与保留。

3.3 BERT中的MLP层

Transformer中的​​前馈网络(FFN)​​:

  • ​作用​​:特征非线性变换,增强表达能力。

3.4 StyleGAN中的映射网络

​8层MLP​​将噪声向量映射为风格向量:


  • ​作用​​:解耦潜在空间,控制生成图像属性。

4. 应用场景与优缺点

4.1 应用场景

  • ​表格数据分类/回归​​(如房价预测、用户流失分析)。
  • ​特征转换​​:Autoencoder中的编码器/解码器。
  • ​组合模型组件​​:如ResNet、Transformer中的子模块。

4.2 优缺点

​优点​ ​缺点​
结构简单,易于实现 难以处理空间/时序依赖
适合结构化数据 参数量大,易过拟合
可扩展性强(堆叠隐藏层) 需要特征工程(对比CNN/RNN)

5. PyTorch代码示例

import torch
import torch.nn as nn

class MLP(nn.Module):
    def __init__(self, input_dim, hidden_dims, output_dim):
        super().__init__()
        layers = []
        prev_dim = input_dim
        for dim in hidden_dims:
            layers.append(nn.Linear(prev_dim, dim))
            layers.append(nn.ReLU())
            prev_dim = dim
        layers.append(nn.Linear(prev_dim, output_dim))
        self.net = nn.Sequential(*layers)
    
    def forward(self, x):
        return self.net(x)

# 示例:MNIST分类(输入784维,输出10维)
model = MLP(input_dim=784, hidden_dims=[256, 128], output_dim=10)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
loss_fn = nn.CrossEntropyLoss()

# 训练循环(伪代码)
for x, y in dataloader:
    logits = model(x.view(-1, 784))
    loss = loss_fn(logits, y)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐