深度学习

从神经网络到 Transformer,掌握现代深度学习的核心架构与训练方法。

概述

深度学习(Deep Learning, DL)是机器学习的一个子领域,使用多层神经网络来学习数据的层次化表示。它在图像识别、语音合成、自然语言处理等领域取得了突破性成果。

深度学习 vs 传统机器学习的核心区别:

神经网络基础

人工神经网络受人脑神经元结构启发,由多层相互连接的节点(神经元)组成。

感知机

最简单的神经网络单元,接收多个输入,计算加权和,通过激活函数输出:

output = activation(Σ wᵢxᵢ + b)

激活函数

函数公式特点
ReLUmax(0, x)最常用,缓解梯度消失
Sigmoid1/(1+e⁻ˣ)输出 0~1,用于二分类
Softmaxeˣⁱ/Σeˣʲ多分类输出概率分布
GELUx·Φ(x)Transformer 中常用

反向传播

深度学习训练的核心算法。通过链式法则计算损失函数对每个参数的梯度,然后使用梯度下降更新参数:

w = w - learning_rate × ∂Loss/∂w

卷积神经网络(CNN)

CNN 专为处理网格状数据(如图像)设计,核心组件包括:

经典架构:LeNet → AlexNet → VGG → ResNet → EfficientNet

循环神经网络(RNN)

RNN 专为序列数据设计,通过隐藏状态传递历史信息:

Transformer 架构

2017 年提出的 Transformer 彻底改变了 NLP 领域,现已成为 AI 的基础架构。

核心机制:自注意力(Self-Attention)

允许序列中每个位置关注所有其他位置,并行计算,捕捉长距离依赖:

Attention(Q,K,V) = softmax(QKᵀ/√dₖ)V

关键组件

💡 大模型的基础

GPT、BERT、LLaMA 等所有现代大语言模型都基于 Transformer 架构。理解 Transformer 是进入大模型领域的必经之路。

训练技巧

PyTorch 实战:构建神经网络

Python · PyTorch
import torch
import torch.nn as nn

class SimpleNet(nn.Module):
    def __init__(self, input_size, hidden_size, num_classes):
        super().__init__()
        self.network = nn.Sequential(
            nn.Linear(input_size, hidden_size),
            nn.ReLU(),
            nn.Dropout(0.3),
            nn.Linear(hidden_size, hidden_size),
            nn.ReLU(),
            nn.Linear(hidden_size, num_classes)
        )

    def forward(self, x):
        return self.network(x)

# 创建模型
model = SimpleNet(input_size=784, hidden_size=256, num_classes=10)

# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

# 训练循环
for epoch in range(10):
    optimizer.zero_grad()
    outputs = model(X_train)
    loss = criterion(outputs, y_train)
    loss.backward()
    optimizer.step()
    print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}")