10  Softmax 回归

10.1 复习

上一讲 Chapter 7 关注 回归 (Regression) 问题. 在上一讲我们学习这些事情

  • 线性回归的定义
  • 线性回归可以看作是只有一层的神经网络. 因此, 我们在实践层面, 我们可以用神经网络的表达 (Representation) 和 深度学习框架 (e.g. PyTorch) 解决线性回归的求解问题
  • 简单地讨论数值计算的话题
    • 算法复杂度 (Computational complexity)
    • 如何优化计算速度

10.2 本节重点

在机器学习经常处理的另一类问题是 分类问题 (Classification). 这是本节关注的内容. 在 ML 基础课程中, 分类问题研究的第一个模型通常是 Logistic regression.

Logistic 构造一个 0-1 之间的 S型函数 (Sigmoid function) 然后对数据进行二分类.

本节介绍 Softmax 回归. 它也叫做 Multinomial logistic regression (中文有时称作 多分类 Logisitc 回归). Softmax 回归 可以处理多分类问题. 与 logistic regression 对比

  • 相似点
    • Softmax 运算获取一个向量并将其映射为概率。
    • Softmax 回归适用于分类问题,它使用了softmax运算中输出类别的概率分布。
  • 差异
    • Logisitic 回归 仅涉及二分类. 因此通长使用 0.5 作为阈值区分类别
    • Softmax 回归 则需要其他衡量不同类别概率的方式. 本节将使用 [[交叉熵 (Cross-entropy loss)|交叉熵]].
      • 交叉熵是一个衡量两个概率分布之间差异的很好的度量,
      • 它测量给定模型编码数据所需的比特数。

10.3 Softmax回归的数学基础

10.3.1 定义

\[\hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{o})\quad \text{其中}\quad \hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)}\] 其中各参数含义如下. \(x\) 为 features, \(w\) 为权重, \(b\) 为 截距 (Intercept).

\[ \begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{12} + x_3 w_{13} + x_4 w_{14} + b_1,\\ o_2 &= x_1 w_{21} + x_2 w_{22} + x_3 w_{23} + x_4 w_{24} + b_2,\\ o_3 &= x_1 w_{31} + x_2 w_{32} + x_3 w_{33} + x_4 w_{34} + b_3. \end{aligned} \]

为了更简洁地表达模型,我们仍然使用线性代数符号。通过向量形式表达为\[\mathbf{o} = \mathbf{W} \mathbf{x} + \mathbf{b}\],这是一种更适合数学和编写代码的形式。由此,我们已经将所有权重放到一个\(3 \times 4\)矩阵中。对于给定数据样本的特征\(\mathbf{x}\),我们的输出是由权重与输入特征进行矩阵-向量乘法再加上偏置\(\mathbf{b}\)得到的。

10.3.2 神经网络角度的解读

softmax回归是一种单层神经网络

10.3.3 比较

用 交叉熵 (Cross-entropy loss) 来比较两个概率的区别: \[H(p,q)=\sum_{i} -p \log(q_i)\]

10.4 附录: 信息论

10.4.1 信息熵 Entropy (information theory)

美国数学家 克劳德·香农 (Claude Shannon) 被称为”信息论之父”。人们通常将香农于1948年10月发表于 《贝尔系统技术学报》 上的论文 《通信的数学理论》 作为现代信息论研究的开端。这一文章部分基于 哈里·奈奎斯特和拉尔夫·哈特利 于1920年代先后发表的研究成果。在该文中,香农给出了信息熵的定义:

Def 10.1 (信息熵)  

  • Let
    • \(\mathcal{X}\) 一个 集合
      • \(\mathcal{X}\) 中的任意元素记作 \(x\)
    • \(X\) 一个定义在 \(\mathcal{X}\) 上的 随机变量
  • Let
    • \(p_X(x)\): 为 \(X=x\)概率
    • \(I_X\left( x \right)\stackrel{\mathrm{def}}{=} \log\left( \dfrac{ 1 }{ p_X(x) } \right)\) : 为 \(X=x\) 所承载的信息量 (Information content), 也叫做 Self-Information
  • Then, we call \[\mathbb{E}_X\left[ I_X(x) \right] \stackrel{\mathrm{def}}{=} \sum_{x\in \mathcal{X}} p_X(x) \log\left( \frac{1}{p_X(x)} \right)\]
    • \(X\)信息熵 (Entropy (Information theory))
    • 记作, \(H(X)\)