Softmax回归(四)

写在前面:
线性回归见前文: 线性回归与实现(三)
公式符号详见: 论文数学公式编辑
参考书:动手学深度学习

Softmax回归

1. 分类问题

线性回归中, 我们的得到结果的是连续值分类问题需要我们求得样本所属的类别,也就是离散值Softmax回归看名字就知道它是回归算法。但是Softmax回归用于分类

为什么回归算法做分类? 它是怎么做的?

它不直接求类别,而是求样本对应每个类别的概率,概率就是连续值。我们选定最大概率类别为其预测类别。即Softmax函数给出的输出向量为“各类别在给定 x \mathbf{x} x时的条件概率”。所以Softmax是回归算法,但是用于分类。

PS:这种计算概率的方式得到的是“软性”类别。直接得到类别的是“硬性”类别。

2. 网络架构

为了估算每个类别对应的概率,需采用多输出模型,每个类对应一个输出。假设有4个特征 x x x,3个类别 o o o。共需4 * 3 = 12个权重 w w w,3个标量来表示偏置 b b b
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 . (1) \begin{gathered} o_{1} =x_1w_{11}+x_2w_{12}+x_3w_{13}+x_4w_{14}+b_1, \\ o_{2}=x_1w_{21}+x_2w_{22}+x_3w_{23}+x_4w_{24}+b_2 \\ o_{3}=x_1w_{31}+x_2w_{32}+x_3w_{33}+x_4w_{34}+b_3. \end{gathered} \tag{1} o1=x1w11+x2w12+x3w13+x4w14+b1,o2=x1w21+x2w22+x3w23+x4w24+b2o3=x1w31+x2w32+x3w33+x4w34+b3.(1)

与线性回归一样,softmax回归也是一个单层神经网络。 由于计算每个输出 o i o_i oi取决于所有输入 x 1 , x 2 , x 3 x_1,x_2, x_3 x1,x2,x3, 所以softmax回归的输出层也是全连接层。向量形式表达为:

o = W x + b (2) \mathbf{o}=\mathbf{Wx}+\mathbf{b}\tag{2} o=Wx+b(2)在这里插入图片描述
在这里插入图片描述

3. softmax运算

看了上面的网络架构,我们知道这不就是多输出的线性神经网络嘛。而我们文首就说了,我们要的是概率。线性网络不仅输出有可能为负值,而且加和也不为1

Softmax运算目的就是得到类别概率,即把网络输出变为正值,而且加和为1,还可导(用于梯度下降)。算式如下:
y ^ = s o f t m a x ( o ) 其中 y ^ j = exp ⁡ ( o j ) ∑ k exp ⁡ ( o k ) (3) \hat{\mathbf{y}}=\mathrm{softmax}(\mathbf{o})\quad\text{其中}\quad\hat{y}_j=\frac{\exp(o_j)}{\sum_k\exp(o_k)} \tag{3} y^=softmax(o)其中y^j=kexp(ok)exp(oj)(3)

那么现在我们就得到了满足非负和一的输出:

∑ j y ^ j = 1 且 0 ≤ y ^ j ≤ 1 (4) \sum_{j} \hat{y}_j = 1 \quad 且 \quad 0 \le \hat{y}_j \le 1 \tag{4} jy^j=10y^j1(4)

因此, y ^ \hat{\mathbf{y}} y^可以视为一个正确的概率分布。

假设我们读取了一个批量的样本 X \mathbf{X} X,softmax回归的矢量计算表达式为:
O = X W + b , Y ^ = s o f t m a x ( O ) . (5) \begin{aligned}&\mathbf{O}=\mathbf{X}\mathbf{W}+\mathbf{b},\\&\hat{\mathbf{Y}}=\mathrm{softmax}(\mathbf{O}).\end{aligned} \tag{5} O=XW+b,Y^=softmax(O).(5)
延续上面的假设:假设有4个特征 x x x,3个类别 o o o。5个样本。
在这里插入图片描述

4. 损失函数

在我们的例子中,标签 y y y将是一个三维向量 ( o 1 , o 2 , o 3 ) (o_1, o_2, o_3) (o1,o2,o3),正确类别的概率为1,其余为0。比如假设某样本正确类别为第一类,那么它的真实标签为 ( 1 , 0 , 0 ) (1, 0, 0) (1,0,0)。Softmax函数给出的输出向量为“各类别在给定 x \mathbf{x} x时的条件概率”,如 ( 0.7 , 0.1 , 0.2 ) (0.7, 0.1, 0.2) (0.7,0.1,0.2)

我们可以衡量给定数据集时我们得到实际值的概率:
P ( Y ∣ X ) = ∏ i = 1 n P ( y ( i ) ∣ x ( i ) ) . (6) P(\mathbf{Y}\mid\mathbf{X})=\prod_{i=1}^nP(\mathbf{y}^{(i)}\mid\mathbf{x}^{(i)}). \tag{6} P(YX)=i=1nP(y(i)x(i)).(6)

根据最大似然估计,我们最大化 P ( Y ∣ X ) P(\mathbf{Y}\mid\mathbf{X}) P(YX),相当于最小化负对数似然:
− log ⁡ P ( Y ∣ X ) = ∑ i = 1 n − log ⁡ P ( y ( i ) ∣ x ( i ) ) = ∑ i = 1 n l ( y ( i ) , y ^ ( i ) ) , (7) -\log P(\mathbf{Y}\mid\mathbf{X})=\sum_{i=1}^n-\log P(\mathbf{y}^{(i)}\mid\mathbf{x}^{(i)})=\sum_{i=1}^nl(\mathbf{y}^{(i)},\hat{\mathbf{y}}^{(i)}),\tag{7} logP(YX)=i=1nlogP(y(i)x(i))=i=1nl(y(i),y^(i)),(7)

将公式(3)带入上式,得:
l ( y , y ^ ) = − ∑ j = 1 q y j log ⁡ y ^ j . (8) l(\mathbf{y},\hat{\mathbf{y}})=-\sum_{j=1}^qy_j\log\hat{y}_j.\tag{8} l(y,y^)=j=1qyjlogy^j.(8)
这个损失函数被为交叉熵损失函数
从信息论上通俗的讲就是 y , y ^ \mathbf{y},\hat{\mathbf{y}} y,y^越相近交叉熵越小,无疑是可以用作损失函数的。详见信息论

实现

https://zh-v2.d2l.ai/chapter_linear-networks/softmax-regression-scratch.html
https://zh-v2.d2l.ai/chapter_linear-networks/softmax-regression-concise.html

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rendy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值