深度学习入门
深度学习入门
Section titled “深度学习入门”深度学习 = 多层神经网络。核心思想:层层抽象,自动学习特征。
flowchart LR A[输入层<br/>784 像素] --> B[隐藏层1<br/>256 神经元] B --> C[隐藏层2<br/>128 神经元] C --> D[输出层<br/>10 类别]感知机:起点
Section titled “感知机:起点”单个神经元完成”加权求和 + 激活”:
import numpy as np
def sigmoid(x): return 1 / (1 + np.exp(-x))
class Perceptron: def __init__(self, n_inputs): self.w = np.random.randn(n_inputs) * 0.01 self.b = 0.0
def forward(self, x): return sigmoid(np.dot(x, self.w) + self.b)
p = Perceptron(3)print(f"输出: {p.forward(np.array([1.0, 0.5, -0.3])):.4f}")多层感知机 (MLP)
Section titled “多层感知机 (MLP)”import torchimport torch.nn as nn
class MLP(nn.Module): def __init__(self): super().__init__() self.model = nn.Sequential( nn.Linear(784, 256), # 输入 → 隐藏层1 nn.ReLU(), nn.Dropout(0.2), nn.Linear(256, 128), # 隐藏层1 → 隐藏层2 nn.ReLU(), nn.Linear(128, 10), # 隐藏层2 → 输出 )
def forward(self, x): return self.model(x)
model = MLP()print(f"参数量: {sum(p.numel() for p in model.parameters()):,}")| 函数 | 公式 | 特点 |
|---|---|---|
| Sigmoid | 输出 (0,1),有梯度消失 | |
| ReLU | 简单高效,最常用 | |
| GELU | Transformer 标配 |
链式法则逐层计算梯度:
flowchart LR A[前向传播] --> B[计算损失] B --> C[反向传播<br/>链式法则] C --> D[更新参数] D --> Ax = torch.tensor([2.0], requires_grad=True)y = x ** 3 + 2 * xy.backward() # 自动计算 dy/dxprint(f"dy/dx at x=2: {x.grad.item()}") # 3×4 + 2 = 14def train_one_epoch(model, dataloader, optimizer, loss_fn): model.train() for x_batch, y_batch in dataloader: optimizer.zero_grad() loss = loss_fn(model(x_batch), y_batch) loss.backward() optimizer.step()