3.4 softmax回归

分类问题

线性回归模型适用于输出为连续值的情景。softmax回归适用于离散值的预测问题。

通常使用离散的数值来表示类别,例如\(y_1=1, y_2=2, y_3=3\)。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。

softmax回归模型

softmax回归同线性回归一样,也是一个单层神经网络。输出值\(o_i\)当作预测类别是\(i\)的置信度。

\[ \hat{y}_1, \hat{y}_2, \hat{y}_3 = \text{softmax}(o_1, o_2, o_3) \]

\[ \hat{y}_1 = \frac{ \exp(o_1)}{\sum_{i=1}^3 \exp(o_i)},\quad\hat{y}_2 = \frac{ \exp(o_2)}{\sum_{i=1}^3 \exp(o_i)},\quad\hat{y}_3 = \frac{ \exp(o_3)}{\sum_{i=1}^3 \exp(o_i)}. \]

单样本分类的矢量计算表达式

softmax回归对样本\(i\)分类的矢量计算表达式为

\[ \begin{aligned}\boldsymbol{o}^{(i)} &= \boldsymbol{x}^{(i)} \boldsymbol{W} + \boldsymbol{b},\\\boldsymbol{\hat{y}}^{(i)} &= \text{softmax}(\boldsymbol{o}^{(i)})\end{aligned} \]

交叉熵损失函数

平方损失则过于严格,交叉熵(cross entropy)是一个常用的衡量方法:

\[ H\left(\boldsymbol y^{(i)}, \boldsymbol {\hat y}^{(i)}\right ) = -\sum_{j=1}^q y_j^{(i)} \log \hat y_j^{(i)}, \]

假设训练数据集的样本数为\(n\),交叉熵损失函数定义为

\[ \ell(\boldsymbol{\Theta}) = \frac{1}{n} \sum_{i=1}^n H\left(\boldsymbol y^{(i)}, \boldsymbol {\hat y}^{(i)}\right ), \]

其中\(\boldsymbol{\Theta}\)代表模型参数。