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

下一篇
分享一个把网页当播客听的Mac小工具:Orate →
一、 神经网络的底层逻辑
神经网络其实就是一堆层的堆叠。最基本的单元是神经元,它的逻辑很简单:输入 $\times$ 权重 $+$ 偏置 → 激活函数 → 输出。
如果没有激活函数,无论你叠多少层,最终结果依然是一个线性函数,根本学不到复杂模式。常用的激活函数有:
- ReLU:隐藏层的标配,简单暴力,解决了正值区域的梯度消失问题。
- Sigmoid/Tanh:现在主要用于特定输出层,深层网络里容易出现梯度消失,少用。
- GELU:Transformer里的常客,比ReLU更平滑。
- Softmax:多分类任务的终点,把输出变成概率分布。

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

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,底层跑的都是这个逻辑。
