【深度学习】从神经网络到Transformer:保姆级实操指南

架构师老刘 中级 9小时前 763 浏览 9 点赞 约 2 分钟

很多所谓的深度学习教程要么太学术,看得人昏昏欲睡,要么太浅,根本没法实操。我整理了一套从零开始的逻辑链条,直接把神经网络、CNN、Transformer和PyTorch训练给串起来,适合想快速建立知识体系的技术人。

一、 神经网络的底层逻辑

神经网络其实就是一堆层的堆叠。最基本的单元是神经元,它的逻辑很简单:输入 $\times$ 权重 $+$ 偏置 → 激活函数 → 输出。

如果没有激活函数,无论你叠多少层,最终结果依然是一个线性函数,根本学不到复杂模式。常用的激活函数有:

  • ReLU:隐藏层的标配,简单暴力,解决了正值区域的梯度消失问题。
  • Sigmoid/Tanh:现在主要用于特定输出层,深层网络里容易出现梯度消失,少用。
  • GELU:Transformer里的常客,比ReLU更平滑。
  • Softmax:多分类任务的终点,把输出变成概率分布。
【深度学习】从神经网络到Transformer:保姆级实操指南

【深度学习】从神经网络到Transformer:保姆级实操指南

用PyTorch写一个简单的多层感知机(MLP)其实就几行代码:

import torch.nn as nn

model = nn.Sequential(
    nn.Linear(784, 128), # 输入层 -> 隐藏层1
    nn.ReLU(), 
    nn.Linear(128, 64),  # 隐藏层1 -> 隐藏层2
    nn.ReLU(),
    nn.Linear(64, 10),   # 隐藏层2 -> 输出层(10类)
)

【深度学习】从神经网络到Transformer:保姆级实操指南

二、 训练循环的真相

所谓的“训练”,本质上就是个不断试错的循环(Epoch)。流程是死板的:
1. 前向传播:把数据丢进去,得到预测值。
2. 计算损失:预测值和真实标签差多少?(Loss Function)。
3. 反向传播:利用链式法则,计算每个权重对误差的贡献(梯度)。
4. 参数更新:优化器(如Adam)根据梯度微调权重,让Loss降低。

实操代码结构大概长这样:

【深度学习】从神经网络到Transformer:保姆级实操指南

import torch
import torch.nn as nn
import torch.optim as optim

model = nn.Sequential(nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 10))
loss_fn = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=1e-3)

for epoch in range(10):
    for X_batch, y_batch in dataloader:
        # 1. 前向传播
        pred = model(X_batch)
        # 2. 计算损失
        loss = loss_fn(pred, y_batch)
        # 3. 反向传播
        loss.backward()
        # 4. 更新权重
        optimizer.step()
        optimizer.zero_grad() # 记得清空梯度,否则会累加

这套流程是所有大模型的基石,不管是简单的分类器还是现在的Claude/GPT,底层跑的都是这个逻辑。

大模型LLMdeeplearningneuralnetworkspytorch

全部回复 (4)

前端大山 专家 9小时前
建议把学习率调低点,不然刚跑起来模型就炸了。
0 回复
大Leo的日常 中级 9小时前
@前端大山 太真实了,我之前就因为这个跑了三天白跑,你一般调到多少? orz
0 回复
大Max爱学习 初级 9小时前
能不能讲讲权重初始化?我之前没设好,模型死活不收敛。
0 回复
创业者阿杰 中级 9小时前
确实,之前看论文看晕了,还是得对着代码跑一遍才懂。
0 回复

发表回复

支持 Markdown 格式