菜单

线性网络

相关源文件

线性网络是深度学习中的基础模型,它们通过线性变换将输入映射到输出。本页面介绍了用于连续值预测的线性回归和用于分类任务的 Softmax 回归。这些模型代表了最简单的神经网络形式,仅包含一个带有线性变换的层。

有关基于这些概念构建的更复杂的神经网络架构,请参阅 多层感知机

线性网络架构

线性网络通过线性组合后接一个可选的非线性函数来转换输入特征。它们是更复杂神经网络的构建块。

来源: [chapter_linear-networks/linear-regression.md:38-43], [chapter_linear-networks/softmax-regression.md:49-56]

关键组件

线性网络包含以下基本要素

组件线性回归Softmax 回归
输入特征向量 x特征向量 x
参数权重向量 w,偏置 b权重矩阵 W,偏置向量 b
线性变换w^T·x + bW·x + b
输出函数恒等(无)Softmax 函数
损失函数平方损失交叉熵损失
预测连续值类别概率

来源: [chapter_linear-networks/linear-regression.md:38-53], [chapter_linear-networks/softmax-regression.md:57-78]

线性回归

线性回归模型化输入特征与连续目标变量之间的关系。它假设目标变量可以近似为输入特征的加权和加上一个偏置项。

数学公式

对于具有特征 x 的数据样本,预测值 ŷ 为

$$\hat{y} = \mathbf{w}^\top \mathbf{x} + b$$

其中

  • w 是权重向量
  • x 是特征向量
  • b 是偏置项(或截距)

对于具有 d 维特征的 n 个样本的批次,我们可以将其表示为矩阵形式

$$\hat{\mathbf{y}} = \mathbf{X} \mathbf{w} + b$$

其中 X 是包含批次样本的 n×d 矩阵。

来源: [chapter_linear-networks/linear-regression.md:38-53], [chapter_linear-networks/linear-regression.md:102-115]

损失函数

平方损失函数衡量预测值与真实值之间的差异

$$l^{(i)}(\mathbf{w}, b) = \frac{1}{2} \left(\hat{y}^{(i)} - y^{(i)}\right)^2$$

总体损失通常是所有训练样本的平均值

$$L(\mathbf{w}, b) = \frac{1}{n}\sum_{i=1}^n \frac{1}{2}\left(\mathbf{w}^\top \mathbf{x}^{(i)} + b - y^{(i)}\right)^2$$

来源: [chapter_linear-networks/linear-regression.md:104-115], [chapter_linear-networks/linear-regression.md:128-135]

优化

我们使用随机梯度下降(SGD)来最小化损失函数

  1. 初始化模型参数(权重和偏置)
  2. 在数据的小批量上计算预测和损失
  3. 计算损失相对于参数的梯度
  4. 沿着减小损失的方向更新参数
  5. 重复直到收敛

参数更新规则如下

$$\begin{aligned} \mathbf{w} &\leftarrow \mathbf{w} - \frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} \mathbf{x}^{(i)} \left(\mathbf{w}^\top \mathbf{x}^{(i)} + b - y^{(i)}\right) \ b &\leftarrow b - \frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} \left(\mathbf{w}^\top \mathbf{x}^{(i)} + b - y^{(i)}\right) \end{aligned}$$

其中 η 是学习率,B 是样本的小批量。

来源: [chapter_linear-networks/linear-regression.md:151-170], [chapter_linear-networks/linear-regression.md:173-196]

Softmax 回归

Softmax 回归将线性网络扩展到多类别分类问题。它会为所有可能的类别生成一个概率分布。

数学公式

对于特征向量 x,我们首先计算一个“logits”向量 o

$$\mathbf{o} = \mathbf{W} \mathbf{x} + \mathbf{b}$$

然后我们应用 Softmax 函数得到类别概率

$$\hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{o})\quad \text{其中}\quad \hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)}$$

对于具有 n 个样本和 d 个特征的批次,预测 q 个类别

  • 输入特征: X ∈ ℝ^(n×d)
  • 权重: W ∈ ℝ^(d×q)
  • 偏置: b ∈ ℝ^(1×q)
  • 输出概率: Ŷ ∈ ℝ^(n×q)

来源: [chapter_linear-networks/softmax-regression.md:49-78], [chapter_linear-networks/softmax-regression.md:93-130]

损失函数

交叉熵损失衡量预测概率分布与真实标签分布之间的差异

$$l(\mathbf{y}, \hat{\mathbf{y}}) = - \sum_{j=1}^q y_j \log \hat{y}_j$$

其中 y 通常是一个独热编码向量,表示真实类别。

该损失函数相对于 logits 的梯度非常简洁

$$\partial_{o_j} l(\mathbf{y}, \hat{\mathbf{y}}) = \mathrm{softmax}(\mathbf{o})_j - y_j$$

这意味着梯度是预测概率与真实标签之间的差值。

来源: [chapter_linear-networks/softmax-regression.md:164-196], [chapter_linear-networks/softmax-regression.md:207-236]

实现考量

线性网络实现

线性回归和 Softmax 回归都可以通过从头开始实现,或者使用深度学习框架中的高级 API 来实现。

实现通常遵循以下步骤

  1. 定义模型架构
  2. 初始化参数
  3. 定义损失函数
  4. 设置优化算法
  5. 创建训练循环
  6. 评估模型性能

来源: [chapter_linear-networks/linear-regression-scratch.md:220-226], [chapter_linear-networks/linear-regression-scratch.md:234-239], [chapter_linear-networks/softmax-regression-scratch.md:179-186]

数值稳定性

在实现 Softmax 回归时,必须特别注意确保数值稳定性

  1. 防止溢出:在指数化之前减去最大 logits 值

    softmax(o) = exp(o - max(o)) / sum(exp(o - max(o)))
    
  2. 防止下溢:在损失计算中,结合 Softmax 和 log 操作

    log(softmax(o)_j) = o_j - max(o_k) - log(sum(exp(o_k - max(o_k))))
    

深度学习框架通常会在其损失函数中实现这些优化。

来源: [chapter_linear-networks/softmax-regression-concise.md:98-146]

向量化

为了利用现代硬件,实现应使用向量化操作,而不是显式循环

适当的向量化可以带来显著的性能提升,通常比基于循环的实现快几个数量级。

来源: [chapter_linear-networks/linear-regression.md:216-348]

与神经网络的关系

线性网络构成了更复杂神经网络的基础。线性网络可以被视为没有激活函数(用于回归)或带有 Softmax 激活函数(用于分类)的单层神经网络。

要点

  • 线性网络使用输入的加权和,类似于生物神经元汇总来自树突的加权信号
  • 更复杂的网络会添加非线性激活函数和多个层
  • 尽管线性网络简单,但对于许多具有线性关系的问题,它们可以非常有效

来源: [chapter_linear-networks/linear-regression.md:429-486]

总结

线性网络为理解深度学习模型提供了基础。它们的特点是

  • 简单、可解释的数学公式
  • 使用梯度下降进行高效训练
  • 适用于具有线性或近似线性关系的问题
  • 作为更复杂神经网络的构建块

虽然线性网络在建模复杂非线性关系方面能力有限,但它们仍然是机器学习工具箱中有价值的工具,并为理解更复杂模型的机制提供了重要的见解。