[动手学深度学习]softmax回归

本文介绍了softmax回归在分类问题中的应用,通过独热编码处理类别信息,通过多输出模型估计各类别的条件概率。利用softmax函数将未规范化预测转化为概率分布,同时优化目标是最大化数据的似然。讲解了损失函数(交叉熵)、softmax的导数以及其在模型训练中的作用。
摘要由CSDN通过智能技术生成

softmax 回归也可以用于分类问题。

分类问题的表示

  1. 对于没有顺序关系的类别(鸡,猫,狗)可以直接用数字{1,2,3}代表某一类。
  2. 对于有顺序关系的类别(婴儿,少儿,少年,青年,中年,老年)可以考虑转为回归问题,这里的几个变量相当于连续变量。
  3. 独热编码。使用独热编码表示分类数据,独热编码是一个向量,它的长度和类别一样多,将向量中类别对应的分量设置为1,其他所有分量设置为0。比如1⃣️中的鸡对应(1,0,0),猫(0,1,0),狗(0,0,1)
  4. 但在有的场景下,分类问题并不是每一个东西100%属于某一类的。比如在划分客户时,我们能得到的只是一个客户属于某一类的概率,即A可能有80%的概率为目标客户

网络架构

为了估计所有可能类别的条件概率,我们需要有一个多输出的模型,每个类别对应一个输出(区别于预测问题,只有一个输出)。于是我们要让每一个输出对应一个仿射函数(affine function)

e.g.我们从一个图像分类问题开始。 假设每次输入是一个2×2的灰度图像。 我们可以用一个标量表示每个像素值,每个图像对应四个特征x1,x2,x3,x4。 此外,假设每个图像属于类别“猫”,“鸡”和“狗”中的一个。于是我们需要12个标量来表示权重,3个标量来表示偏置,下面为每个输入计算三个未规范化的预测:

o1=x1w11+x2w12+x3w13+x4w24+b1

o2=x1w21+x2w22+x3w23+x4w24+b2

o3=x1w31+x2w32+x3w33+x4w34+b3

我们可以用神经网络来描述这个过程,与线性回归一样softmax是一个单层神经网络,由于每一个输出都是取决于全部输入的,softmax 也是一个全连接层

softmax 运算

我们以最大化观测数据的概率作为优化目标。我们希望模型的输出可以视为属于某类j的概率,然后选择具有最大输出值的类别作为我们的预测。

我们知道概率都是0-1之间的数,但是未规范化的输出值(线性层的直接输出)可能的值是负的,同时这些输出类别数字的总和可能不为1(要将输出视为概率,我们必须保证在任何数据上的输出都是非负的且总和为1)

社会科学家邓肯·卢斯于1959年在选择模型(choice model)的理论基础上 发明的softmax函数正是这样做的: softmax函数将未规范化的预测变换为非负并且总和为1,同时要求模型保持可导。 我们首先对每个未规范化的预测求幂,这样可以确保输出非负。 为了确保最终输出的总和为1,我们再对每个求幂后的结果除以它们的总和。如下式:

\hat{Y} = softmax(o)其中\hat{y}_{j}={\frac{exp(o_{j})}{\sum_{k}exp(o_{k})}}

这里,对于所有的j总有0<=\hat{y}_{j}<=1 ,因此,y^可以视为一个正确的概率分布。 softmax运算不会改变未规范化的预测o之间的顺序,只会确定分配给每个类别的概率。 因此,在预测过程中,我们仍然可以用下式来选择最有可能的类别。

\underset{j}{argmax}\hat{y}_{j}= \underset{j}{argmax}\hat{o}_{j}

尽管softmax是一个非线性函数,但softmax回归的输出仍然由输入特征的仿射变换决定。 因此,softmax回归是一个线性模型(linear model)。

损失函数

使用极大似然估计。

softmax 函数的输出是一个向量\hat{y},整个数据集{X,Y}具有n个样本,其中第i个样本由特征向量x^{(i)}和独热标签向量y^{(i)}组成,可以将估计值与实际值进行比较:

P(Y|X)= \prod_{i=1}^{n}P(y^{(i)}|x^{(i)})

(每个样本都是独立同分布的)根据极大似然估计,最大化P(Y|X),相当于最小化负对数似然

这里面提到了交叉熵,熵是信息论中用来量化数据中的信息内容的一个值,可通过一下方程得到

H[P]=\sum -P(j)logP(j)

熵是当分配的概率(P(j))真正匹配数据生成过程时的信息量(-logP(j))的期望,比如,在观察一个事件j时,并赋予它(主观)概率P(j)。 当我们赋予一个事件较低的概率时,我们的惊异会更大,该事件的信息量也就更大。相当于,我们总是从发生的未知事件中得到新的信息,那些发生的已知事件中得到信息我们是已然了解的。

对于交叉熵H(P,Q),可以把交叉熵想象为主观概率为Q的观察者在看到根据概率P生成的数据时的预期惊异(实际概率与生成概率的差异程度)当P=Q时交叉熵最低。于是对于交叉熵分类目标,我们可以考虑1最小化传达标签所需的惊异,2最大化观测数据的似然

softmax 及其导数

换句话说,导数是我们softmax模型分配的概率与实际发生的情况(由独热标签向量表示)之间的差异。 从这个意义上讲,这与我们在回归中看到的非常相似, 其中梯度是观测值y和估计值y^之间的差异。 这不是巧合,在任何指数族分布模型中,对数似然的梯度正是由此得出的。 这使梯度计算在实践中变得容易很多。 

总结

  • softmax运算获取一个向量并将其映射为概率
  • softmax 是一个多类分类模型
  • 使用softmax操作得到每个类的预测置信度(非负,和为1) 
  • 使用交叉熵来衡量预测和实际类别的区别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值