神经元与感知机
深度学习的基础单元是人工神经元,它模拟了生物神经元的结构:接收多个输入信号,经过加权求和后再通过激活函数产生输出。
1943 年 McCulloch-Pitts 提出了最早的神经元模型,1958 年 Rosenblatt 在此基础上发明了感知机(Perceptron)。但单层感知机无法解决 XOR 等非线性问题,这个局限导致了 AI 的第一次寒冬。
多层感知机与反向传播
多层感知机(MLP)通过在输入和输出之间加入隐藏层来解决非线性问题。但如何训练多层网络曾长期困扰研究者。
1986 年,Rumelhart、Hinton 和 Williams 提出了反向传播算法(Backpropagation),这是深度学习史上最重要的突破之一。核心思路是:计算输出误差对每个权重的梯度,然后沿梯度反方向更新权重。
import torch
import torch.nn as nn
# 定义一个简单的 MLP
class SimpleMLP(nn.Module):
def __init__(self):
super().__init__()
self.net = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Dropout(0.2),
nn.Linear(256, 64),
nn.ReLU(),
nn.Linear(64, 10)
)
def forward(self, x):
return self.net(x)
model = SimpleMLP()
卷积神经网络(CNN)
CNN 专为处理网格状数据(如图像)而设计。核心操作是卷积,用一个可学习的卷积核在输入上滑动并计算点积。
关键组件
- 卷积层 — 提取局部特征
- 池化层 — 降采样,保留主要特征
- 全连接层 — 在特征提取后进行决策
经典 CNN 架构包括 LeNet(1998)、AlexNet(2012)、VGGNet(2014)、ResNet(2015)等。ResNet 提出的残差连接有效解决了深层网络的退化问题。
# 一个简单的 CNN 分类器
class SimpleCNN(nn.Module):
def __init__(self):
super().__init__()
self.conv = nn.Sequential(
nn.Conv2d(1, 32, 3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.fc = nn.Linear(64 * 7 * 7, 10)
def forward(self, x):
x = self.conv(x)
x = x.view(x.size(0), -1)
return self.fc(x)
循环神经网络(RNN)
RNN 用于处理序列数据(文本、时间序列、语音)。它通过隐藏状态在不同时间步之间传递信息。
但标准 RNN 存在梯度消失和梯度爆炸的问题,难以捕捉长距离依赖关系。LSTM(1997)和 GRU(2014)通过门控机制有效缓解了这些问题。
Transformer
2017 年 Google 团队发表的《Attention Is All You Need》带来了彻底改变 NLP 领域的 Transformer 架构。
核心创新
- 自注意力机制(Self-Attention) — 直接计算序列中任意两个位置的相关性
- 多头注意力(Multi-Head Attention) — 从不同角度关注信息
- 位置编码(Positional Encoding) — 为模型提供序列位置信息
# 缩放点积注意力
import torch.nn.functional as F
def scaled_dot_product_attention(Q, K, V):
d_k = Q.size(-1)
scores = torch.matmul(Q, K.transpose(-2, -1))
scores = scores / torch.sqrt(torch.tensor(d_k, dtype=torch.float32))
attention_weights = F.softmax(scores, dim=-1)
return torch.matmul(attention_weights, V)
主流架构演进
- BERT(2018) — 双向编码器,擅长理解任务
- GPT 系列(2018-2023) — 自回归解码器,擅长生成任务
- ViT(2020) — 将 Transformer 应用于视觉
- CLIP、DALL-E — 多模态 Transformer
深度学习仍在快速演进,新的架构层出不穷,但理解这些基石会帮助你跟上这个领域的发展步伐。