动手深度学习-3.4 softmax回归

分类包含两种情况:1.我们只关心样本属于哪个列别(硬分类);2.我们希望得到样本属于每个类别的概率(软分类)。

3.4.1 分类问题

表示与类别之间的自然顺序无关的分类标签的方法:独热编码,类别对应的分量设置为1,其他所有分量设置为0。

3.4.2 网络架构

为了解决线性模型的分类问题,我们需要和输出一样多的仿射函数,每个输出对应于每个类别的条件概率。softmax回归网络
通过向量形式表达运算过程为 o = W x + b \mathbf{o=Wx+b} o=Wx+b

3.4.3 全连接层的参数开销

具有 d d d个输入和 q q q个输出的全连接层的参数开销为 O ( d q ) \mathcal{O} (dq) O(dq),可以将d个输入转换为q个输出的参数开销减少到 O ( d q n ) \mathcal{O}(\frac{dq}{n}) O(ndq),其中超参数 n n n可以由我们灵活指定。

3.4.4 softmax运算

softmax函数:1.能够将为规范化的预测变换为非负数并且总和为1;2.不会改变未规范化的预测之前的大小顺序;3.让模型保持可导的性质。
y ^ = s o f t m a x ( o ) ,其中 y ^ j = e x p ( o j ) ∑ k e x p ( o j ) \widehat{\mathbf{y}}=softmax(\mathbf{o}),其中\widehat{y} _{j} =\frac{exp(o _{j} )}{ {\textstyle \sum_{k}^{}}exp(o _{j}) } y =softmax(o),其中y j=kexp(oj)exp(oj)
a r g m a x j   y ^ j = a r g m a x j   o j \underset{j}{argmax}\ \widehat{y}_{j} = \underset{j}{argmax}\ o_{j} jargmax y j=jargmax oj

3.4.5 小批量样本的矢量化

为了提高计算下效率并且充分利用GPU,我们通常会对小批量样本的数据执行矢量计算。假设小批量样本的特征为 X ∈ R n × d \mathbf{X} \in R^{n\times d} XRn×d,权重为 W ∈ R d × q \mathbf{W} \in R^{d\times q} WRd×q,偏置为 b ∈ R 1 × q \mathbf{b} \in R^{1\times q} bR1×q。softmax回归的矢量计算表达式为:
O = X W + b \mathbf{O=XW+b} O=XW+b Y ^ = s o f t m a x ( O ) \widehat{\mathbf{Y} } =softmax(\mathbf{O} ) Y =softmax(O)

3.4.6 损失函数

3.4.6.1 对数似然

softmax函数给出了一个向量 y ^ \widehat{\mathbf{y} } y ,我们可以将其视为“对给定任意输入 x \mathbf{x} x的每个类的条件概率”。假设整个数据集{X, Y}具有n个样本,则最大似然函数为:
P ( Y ∣ X ) = ∏ i = 1 n P ( y ( i ) ∣ x ( i ) ) P(Y|X)=\prod_{i=1}^{n} P(y^{(i)}|x^{(i)}) P(YX)=i=1nP(y(i)x(i))
根据最大似然估计,我们最大化 P ( Y ∣ X ) P\mathbf{(Y|X)} P(Y∣X),相当于最小化负对数似然:
− l o g P ( Y ∣ X ) = ∑ i = 1 n − l o g P ( y ( i ) ∣ x ( i ) ) = ∑ i = 1 n l ( y ( i ) , y ^ ( i ) ) -logP\mathbf{(Y|X)}=\sum_{i=1}^{n}-logP(\mathbf{y} ^{(i)}|\mathbf{x} ^{(i)}) =\sum_{i=1}^{n}l(\mathbf{y} ^{(i)}, \mathbf{\widehat{y} } ^{(i)}) logP(Y∣X)=i=1nlogP(y(i)x(i))=i=1nl(y(i),y (i))
其中,对于任何标签 y \mathbf{y} y和模型预测 y ^ \widehat{\mathbf{y}} y ,损失函数为:
l ( y , y ^ ) = − ∑ j = 1 q y j l o g y ^ j l(\mathbf{y} , \widehat{\mathbf{y}} )=-\sum_{j=1}^{q}y_{j} log\widehat{y} _{j } l(y,y )=j=1qyjlogy j

3.4.6.2 softmax及其导数

利用softmax的定义,我们得到:
l ( y , y ^ ) = − ∑ j = 1 q y j l o g e x p ( o j ) ∑ k = 1 q e x p ( o k )                          = ∑ j = 1 q y j l o g ∑ k = 1 q e x p ( o k ) − ∑ j = 1 q y i o j l(\mathbf{y} , \widehat{\mathbf{y} } )=-\sum_{j=1}^{q}y_{j}log\frac{exp(o_{j} )}{ {\textstyle \sum_{k=1}^{q}exp(o_{k} )} } \newline \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \sum_{j=1}^{q}y_{j}log\sum_{k=1}^{q}exp(o_{k})-\sum_{j=1}^{q}y_{i} o_{j} l(y,y )=j=1qyjlogk=1qexp(ok)exp(oj)                        =j=1qyjlogk=1qexp(ok)j=1qyioj
相对于任何未规范化的预测 o j o_{j} oj的导数:
∂ o j l ( y , y ^ ) = e x p ( o j ) ∑ k = 1 q e x p ( o k ) − y j = s o f t m a x ( o ) j − y j \partial_{ o_{j} } l(\mathbf{y,\widehat{y}} )=\frac{exp(o_{j} )}{ {\textstyle \sum_{k=1}^{q}}exp(o_{k} ) } -y_{j} = softmax(\mathbf{o} )_{j} -y_{j} ojl(y,y )=k=1qexp(ok)exp(oj)yj=softmax(o)jyj

3.4.7 信息论基础

3.4.7.1 熵

在信息论中,分布P的熵可以通过以下方程得到:
H [ P ] = ∑ j − P ( j ) l o g P ( j ) H[P]=\sum_{j}^{}-P(j)logP(j) H[P]=jP(j)logP(j)

3.4.7.1 信息量

一个事件的信息量就是这个事件发生概率的负对数。概率越低,信息量越大。
I ( j ) = l o g 1 P ( j ) = − l o g ( P ( j ) ) I(j)=log\frac{1}{P(j)}=-log(P(j)) I(j)=logP(j)1=log(P(j))

3.4.8 模型预测和评估

我们使用精度来评估模型的性能,精度等于正确预测数与预测总数之间的比率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值