主题
深度学习入门
深度学习(Deep Learning)是机器学习的子领域,使用深层神经网络来学习数据的表示。
什么是深度学习
深度学习 = 有很多层的神经网络
传统机器学习:
数据 → 手工提取特征 → 算法学习 → 结果
↑
需要人类专家设计特征
深度学习:
数据 → 神经网络(自动提取特征) → 结果
↑
自动学习特征神经网络基础
一个神经元(Perceptron)
输入 x1, x2, ... → [加权求和 + 激活函数] → 输出 y
例:
y = sigmoid(w1*x1 + w2*x2 + b)多层神经网络
输入层 → 隐藏层1 → 隐藏层2 → ... → 输出层
层数越多(越深),能学习的特征越复杂常见网络结构
1. 全连接网络(DNN)
最基础的结构,每层每个神经元都连接到上一层的所有神经元:
输入层 → 隐藏层 → 输出层
适合:简单任务、表格数据
不适合:图像(参数太多)、序列(无顺序感)2. 卷积神经网络(CNN)
专为图像设计,使用卷积层提取局部特征:
输入图像 → 卷积层 → 池化层 → ... → 全连接层 → 输出
经典模型:
- AlexNet(2012,深度学习爆发)
- VGGNet(2014)
- ResNet(2015,残差连接)python
# 用 PyTorch 写一个简单 CNN
import torch.nn as nn
class SimpleCNN(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(3, 32, kernel_size=3)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3)
self.fc = nn.Linear(64 * 28 * 28, 10)
def forward(self, x):
x = nn.ReLU()(self.conv1(x))
x = nn.ReLU()(self.conv2(x))
x = x.view(x.size(0), -1)
return self.fc(x)3. 循环神经网络(RNN/LSTM)
处理序列数据(文本、时间序列):
问题:全连接网络无法处理变长输入
RNN 解决:有"记忆"(隐藏状态)
LSTM 解决:RNN 的梯度消失问题4. Transformer(当前主流)
彻底改变了 NLP,也成为多模态的基础:
核心机制:Attention(注意力)
论文:Attention is All You Need(2017)
优势:
- 并行计算(比 RNN 快)
- 长距离依赖(比 RNN 好)
- 可扩展(模型越大效果越好)
应用:
- GPT(Decoder-only)
- BERT(Encoder-only)
- T5(Encoder-Decoder)深度学习框架
| 框架 | 特点 | 适合人群 |
|---|---|---|
| PyTorch | 灵活,学术圈主流 | 研究、学习 |
| TensorFlow | 工业部署强 | 生产环境 |
| JAX | 谷歌出品,速度快 | 高性能计算 |
| Keras | 高级 API,简单易用 | 入门 |
训练神经网络
训练流程
1. 前向传播(Forward):输入 → 模型 → 预测值
2. 计算损失(Loss):预测值 vs 真实值
3. 反向传播(Backward):计算梯度
4. 更新参数(Optimizer):w = w - lr * gradient
5. 重复 1-4(多个 Epoch)损失函数
分类:Cross Entropy Loss
回归:MSE(均方误差)优化器
SGD(随机梯度下降):基础,慢
Adam:默认选择,自适应学习率
AdamW:Adam + 权重衰减(推荐)深度学习的三要素
1. 数据(Data)
越多越好,质量要高
2. 算力(Compute)
GPU(NVIDIA)是标配
TPU(Google)更快
3. 算法(Algorithm)
模型架构、训练技巧预训练模型(Transfer Learning)
不需要从零训练,用别人训练好的模型:
python
from transformers import AutoModel, AutoTokenizer
# 加载预训练模型(GPT、BERT 等)
model = AutoModel.from_pretrained("bert-base-chinese")
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
# 在自己的数据上微调(只需少量数据)学习路线
第 1 步:理解神经网络基础(感知机、反向传播)
第 2 步:动手写一个简单的神经网络(PyTorch)
第 3 步:学 CNN(图像处理)
第 4 步:学 RNN/Transformer(NLP)
第 5 步:直接用预训练模型(Hugging Face)