机器学习与模式识别 第十三章 从线性模型到神经网络 考点压缩

第十三章:Neural Networks and PyTorch --- 知识点笔记

综合来源:Lecture 13 PDF(43页)、课堂笔记(CSDN)


占位图

13.1 从线性模型到神经网络

线性模型的局限

y(x,w)=f(∑jwjϕj(x)+w0)y(\mathbf{x}, \mathbf{w}) = f\left(\sum_j w_j \phi_j(\mathbf{x}) + w_0\right)y(x,w)=f(j∑wjϕj(x)+w0)

  • ϕj(x)\phi_j(\mathbf{x})ϕj(x):固定基函数(与训练数据无关)
  • 即使基函数很丰富→大多数情况下不能近似任意函数

高维:诅咒与祝福

诅咒 祝福
需要指数级增长的数据 更多分离方式
点稀疏→"相似性"不可靠 升维+解耦→非线性可分→线性可分
容易过拟合 额外好特征可"解开"类别

数据流形 → 神经网络 ⭐

真实高维数据(图像/音频/文本)通常生活在低维流形

  • 固定基函数随维度爆炸
  • 沿流形建模→复杂度=流形维度(小),非数据维度(大)
  • 神经网络 = 数据依赖的基函数
    • NN从数据中学习基函数→适应流形
    • 也学习流形上哪些方向与任务相关

13.2 人工神经元 ⭐

生物→人工

生物 人工
树突(输入) 输入 xix_ixi
胞体(整合) 加权求和 ∑wixi\sum w_i x_i∑wixi
轴突(输出) 输出 yyy
突触 权重 wiw_iwi

数学模型

y=f(w0+∑i=1Dwixi)=f(wTx)y = f\left(w_0 + \sum_{i=1}^{D} w_i x_i\right) = f(\mathbf{w}^T\mathbf{x})y=f(w0+i=1∑Dwixi)=f(wTx)

  • 线性组合 + 激活函数fff(引入非线性)

阶跃函数 → 逻辑门

  • AND门:可以用一个神经元实现
  • XOR门 :单个神经元不能 实现(线性不可分)→需要隐藏层

13.3 激活函数 ⭐⭐

激活函数 公式 特点
Sigmoid σ(a)=11+e−a\sigma(a)=\frac{1}{1+e^{-a}}σ(a)=1+e−a1 输出(0,1),梯度饱和
Tanh tanh⁡(a)=2σ(2a)−1\tanh(a)=2\sigma(2a)-1tanh(a)=2σ(2a)−1 输出(-1,1),梯度饱和
ReLU max⁡(0,a)\max(0,a)max(0,a) 不饱和,负半轴梯度=0
Leaky ReLU max⁡(0,a)+αmin⁡(0,a)\max(0,a)+\alpha\min(0,a)max(0,a)+αmin(0,a) 负半轴也有小梯度
Softplus ln⁡(1+ea)\ln(1+e^a)ln(1+ea) ReLU的平滑版

为什么ReLU更好?

  • Sigmoid/Tanh在∣a∣|a|∣a∣大时→梯度→0(饱和)→梯度消失
  • ReLU在a>0a>0a>0时梯度=1→不饱和→缓解梯度消失
  • Leaky ReLU在a<0a<0a<0也有小梯度→避免"死神经元"

13.4 神经网络架构 ⭐⭐

单隐藏层网络

z(1)=h(W(1)x)(隐藏层) \mathbf{z}^{(1)} = h(W^{(1)}\mathbf{x}) \quad \text{(隐藏层)} z(1)=h(W(1)x)(隐藏层)

y=f(W(2)z(1))(输出层) \mathbf{y} = f(W^{(2)}\mathbf{z}^{(1)}) \quad \text{(输出层)} y=f(W(2)z(1))(输出层)

yk=f(∑jwkj(2)⋅h(∑iwji(1)xi))y_k = f\left(\sum_{j} w_{kj}^{(2)} \cdot h\left(\sum_i w_{ji}^{(1)} x_i\right)\right)yk=f(j∑wkj(2)⋅h(i∑wji(1)xi))

  • W(1)W^{(1)}W(1):输入→隐藏权重 | W(2)W^{(2)}W(2):隐藏→输出权重
  • hhh:隐藏层激活 | fff:输出层激活

深度网络

z(l)=h(W(l)z(l−1)),l=1,...,L\mathbf{z}^{(l)} = h(W^{(l)}\mathbf{z}^{(l-1)}), \quad l=1,\ldots,Lz(l)=h(W(l)z(l−1)),l=1,...,L

z(0)=x,z(L)=y\mathbf{z}^{(0)} = \mathbf{x}, \quad \mathbf{z}^{(L)} = \mathbf{y}z(0)=x,z(L)=y

为什么"深"而非"宽"?

  • 万能逼近定理:一个隐藏层+足够多神经元→可逼近任何连续函数
  • 但→深网络更高效:用更少参数表示同样复杂度函数
  • 类比:逻辑门→多层比两层用更少门

13.5 PyTorch基础 ⭐

核心概念

概念 说明
torch.tensor 基本数据类型(数据/权重/激活)
nn.Module 所有模型和层的基类
nn.Linear 全连接层
Autograd 自动微分→.backward()计算梯度
Optimizer torch.optim.Adam/SGD 参数更新

典型训练循环

python 复制代码
model = MLPModel(dims, activation="relu")
optimizer = torch.optim.Adam(model.parameters(), lr=eta)
loss_fn = nn.CrossEntropyLoss()

for epoch in range(nepochs):
    for x, t in dataloader:       # Mini-batch
        optimizer.zero_grad()      # 清零梯度
        loss = loss_fn(model(x), t) # 前向+损失
        loss.backward()            # 反向传播(autograd)
        optimizer.step()           # 参数更新

笔记中的图片索引

序号 图片内容描述 来源位置
图1 生物神经元结构 Lecture 13 第9页
图2 人工神经元(求和+激活) Lecture 13 第13页
图3 XOR非线性决策边界 Lecture 13 第19页
图4 神经网络层级结构 Lecture 13 第23-26页
图5 ReLU/LeakyReLU/Softplus曲线 Lecture 13 第33页
图6 PyTorch训练循环 Lecture 13 第41页

笔记整理时间:2026年6月29日

相关推荐
大鱼>1 小时前
深度学习入门:神经网络原理与 PyTorch 实战
pytorch·深度学习·神经网络
one_love_zfl1 小时前
Claude Code 隐私检测事件情况说明及升级指南
人工智能
格子软件1 小时前
2026年分布式GEO代理流量调度:源码级状态机防重挂实战
java·vue.js·人工智能·spring boot·分布式·vue
小柒儿3362 小时前
量子通信产业化:从保密通信到全域应用,重构信息安全底层体系
人工智能·重构
手写码匠2 小时前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
AI科技星2 小时前
乖乖数学全域数学加速正电荷会产生反向引力
人工智能·机器学习·概率论·量子计算·乖乖数学·全域数学·引力
大囚长2 小时前
信息约简对智能系统预测的重要性
人工智能·深度学习·机器学习
A.说学逗唱的Coke2 小时前
【大模型专题】Qoder 实战指南:从安装到 Agents 自主开发全流程
人工智能·语言模型
俊哥V2 小时前
每日 AI 研究简报 · 2026-07-04
人工智能·ai