美文网首页
softmax的基本概念

softmax的基本概念

作者: celine_zhou | 来源:发表于2020-02-18 00:25 被阅读0次

    softmax的基本概念

    • 分类问题
      一个简单的图像分类问题,输入图像的高和宽均为2像素,色彩为灰度。
      图像中的4像素分别记为x_1, x_2, x_3, x_4
      假设真实标签为狗、猫或者鸡,这些标签对应的离散值为y_1, y_2, y_3
      我们通常使用离散的数值来表示类别,例如y_1=1, y_2=2, y_3=3

    • 权重矢量
      \begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{21} + x_3 w_{31} + x_4 w_{41} + b_1 \end{aligned}

    \begin{aligned} o_2 &= x_1 w_{12} + x_2 w_{22} + x_3 w_{32} + x_4 w_{42} + b_2 \end{aligned}

    \begin{aligned} o_3 &= x_1 w_{13} + x_2 w_{23} + x_3 w_{33} + x_4 w_{43} + b_3 \end{aligned}

    • 神经网络图
      下图用神经网络图描绘了上面的计算。softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出o_1, o_2, o_3的计算都要依赖于所有的输入x_1, x_2, x_3, x_4,softmax回归的输出层也是一个全连接层。
    Image Name

    \begin{aligned}softmax回归是一个单层神经网络\end{aligned}

    既然分类问题需要得到离散的预测输出,一个简单的办法是将输出值o_i当作预测类别是i的置信度,并将值最大的输出所对应的类作为预测输出,即输出 \underset{i}{\arg\max} o_i。例如,如果o_1,o_2,o_3分别为0.1,10,0.1,由于o_2最大,那么预测类别为2,其代表猫。

    • 输出问题
      直接使用输出层的输出有两个问题:
      1. 一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。例如,刚才举的例子中的输出值10表示“很置信”图像类别为猫,因为该输出值是其他两类的输出值的100倍。但如果o_1=o_3=10^3,那么输出值10却又表示图像类别为猫的概率很低。
      2. 另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。

    softmax运算符(softmax operator)解决了以上两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:

    \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)}.

    容易看出\hat{y}_1 + \hat{y}_2 + \hat{y}_3 = 10 \leq \hat{y}_1, \hat{y}_2, \hat{y}_3 \leq 1,因此\hat{y}_1, \hat{y}_2, \hat{y}_3是一个合法的概率分布。这时候,如果\hat{y}_2=0.8,不管\hat{y}_1\hat{y}_3的值是多少,我们都知道图像类别为猫的概率是80%。此外,我们注意到

    \underset{i}{\arg\max} o_i = \underset{i}{\arg\max} \hat{y}_i

    因此softmax运算不改变预测类别输出。

    • 计算效率
      • 单样本矢量计算表达式
        为了提高计算效率,我们可以将单样本分类通过矢量计算来表达。在上面的图像分类问题中,假设softmax回归的权重和偏差参数分别为

    \boldsymbol{W} = \begin{bmatrix} w_{11} & w_{12} & w_{13} \\ w_{21} & w_{22} & w_{23} \\ w_{31} & w_{32} & w_{33} \\ w_{41} & w_{42} & w_{43} \end{bmatrix},\quad \boldsymbol{b} = \begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix},

    设高和宽分别为2个像素的图像样本i的特征为

    \boldsymbol{x}^{(i)} = \begin{bmatrix}x_1^{(i)} & x_2^{(i)} & x_3^{(i)} & x_4^{(i)}\end{bmatrix},

    输出层的输出为

    \boldsymbol{o}^{(i)} = \begin{bmatrix}o_1^{(i)} & o_2^{(i)} & o_3^{(i)}\end{bmatrix},

    预测为狗、猫或鸡的概率分布为

    \boldsymbol{\hat{y}}^{(i)} = \begin{bmatrix}\hat{y}_1^{(i)} & \hat{y}_2^{(i)} & \hat{y}_3^{(i)}\end{bmatrix}.

    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}

    • 小批量矢量计算表达式
      为了进一步提升计算效率,我们通常对小批量数据做矢量计算。广义上讲,给定一个小批量样本,其批量大小为n,输入个数(特征数)为d,输出个数(类别数)为q。设批量特征为\boldsymbol{X} \in \mathbb{R}^{n \times d}。假设softmax回归的权重和偏差参数分别为\boldsymbol{W} \in \mathbb{R}^{d \times q}\boldsymbol{b} \in \mathbb{R}^{1 \times q}。softmax回归的矢量计算表达式为

    \begin{aligned} \boldsymbol{O} &= \boldsymbol{X} \boldsymbol{W} + \boldsymbol{b},\\ \boldsymbol{\hat{Y}} &= \text{softmax}(\boldsymbol{O}), \end{aligned}

    其中的加法运算使用了广播机制,\boldsymbol{O}, \boldsymbol{\hat{Y}} \in \mathbb{R}^{n \times q}且这两个矩阵的第i行分别为样本i的输出\boldsymbol{o}^{(i)}和概率分布\boldsymbol{\hat{y}}^{(i)}

    相关文章

      网友评论

          本文标题:softmax的基本概念

          本文链接:https://www.haomeiwen.com/subject/ikswfhtx.html