👨🎓作者简介:一位即将上大四,正专攻机器学习的保研er
🌌上期文章:机器学习&&深度学习——softmax回归(上)
📚订阅专栏:机器学习&&深度学习
希望文章对你们有所帮助
以下的内容有些需要用到信息论基础,没有这方面基础的,大家可以先看目录后面的信息论。
损失函数
对数似然
softmax给出了一个向量y hat,我们将其视为“对给定任意输入x的每个类的条件概率”,例如:
y
^
1
=
P
(
y
=
猫
∣
x
)
\hat{y}_1=P(y=猫|x)
y^1=P(y=猫∣x)
表示对于给定任意输入x时,y=猫的概率
假设整个数据集{X,Y}具有n个样本,其中索引i的样本由特征向量和独热标签向量组成。我们可以将估计值与实际值进行比较:
P
(
Y
∣
X
)
=
∏
i
=
1
n
P
(
y
(
i
)
∣
x
(
i
)
)
P(Y|X)=\prod_{i=1}^nP(y^{(i)}|x^{(i)})
P(Y∣X)=i=1∏nP(y(i)∣x(i))
根据最大似然估计,我们最大化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(Y|X)=\sum_{i=1}^n-logP(y^{(i)}|x^{(i)})=\sum_{i=1}^nl(y^{(i)},\hat{y}^{(i)})
−logP(Y∣X)=i=1∑n−logP(y(i)∣x(i))=i=1∑nl(y(i),y^(i))
其中,对于任何标签y和预测模型y hat,损失函数为:
l
(
y
,
y
^
)
=
−
∑
j
=
1
q
y
j
l
o
g
y
^
j
l(y,\hat{y})=-\sum_{j=1}^qy_jlog\hat{y}_j
l(y,y^)=−j=1∑qyjlogy^j
这里的损失函数又叫做交叉熵损失。由于y是一个长度为q的独热编码向量,所以除了一个项以外的所有项j都消失了。由于所有的预测概率,其对数都永远不会大于0。因此,如果正确地预测实际标签,即如果实际标签P(y|x)=1,则损失函数不能进一步最小化。
softmax及其导数
将下面的式子:
y
^
=
s
o
f
t
m
a
x
(
o
)
,其中
y
^
j
=
e
x
p
(
o
j
)
∑
k
e
x
p
(
o
k
)
\hat{y}=softmax(o),其中\hat{y}_j=\frac{exp(o_j)}{\sum_kexp(o_k)}
y^=softmax(o),其中y^j=∑kexp(ok)exp(oj)
带入
l
(
y
,
y
^
)
=
−
∑
j
=
1
q
y
j
l
o
g
y
^
j
l(y,\hat{y})=-\sum_{j=1}^qy_jlog\hat{y}_j
l(y,y^)=−j=1∑qyjlogy^j
可以得到:
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
j
o
j
=
l
o
g
∑
k
=
1
q
e
x
p
(
o
k
)
−
∑
j
=
1
q
y
j
o
j
l(y,\hat{y})=-\sum_{j=1}^qy_jlog\frac{exp(o_j)}{\sum_{k=1}^qexp(o_k)}\\ =\sum_{j=1}^qy_jlog\sum_{k=1}^qexp(o_k)-\sum_{j=1}^qy_jo_j\\ =log\sum_{k=1}^qexp(o_k)-\sum_{j=1}^qy_jo_j
l(y,y^)=−j=1∑qyjlog∑k=1qexp(ok)exp(oj)=j=1∑qyjlogk=1∑qexp(ok)−j=1∑qyjoj=logk=1∑qexp(ok)−j=1∑qyjoj
考虑相对于任何未规范化预测的导数,我们得到:
∂
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(y,\hat{y})=\frac{exp(o_j)}{\sum_{k=1}^{q}exp(o_k)}-y_j=softmax(o)_j-y_j
∂ojl(y,y^)=∑k=1qexp(ok)exp(oj)−yj=softmax(o)j−yj
也就是说,导数是我们softmax模型分配的概率与实际发生的情况(独热标签向量表示)之间的差异。这与我们在回归中看到的很相似,其中梯度是观测值与估计值之间的差异。这不是巧合。
交叉熵损失
现在的标签,考虑的是整个结果分布的情况,观察到的不仅仅是一个结果。我们现在用一个概率向量来表示,如(0.1,0.2,0.7),而不是仅包含二元项的向量(0,0,1)。
我们用上式的
l
(
y
,
y
^
)
=
−
∑
j
=
1
q
y
j
l
o
g
y
^
j
l(y,\hat{y})=-\sum_{j=1}^qy_jlog\hat{y}_j
l(y,y^)=−j=1∑qyjlogy^j
来定义损失l,它是所有标签分布的与其损失值。这个损失叫做交叉熵损失,是分类问题常用损失之一,下面将通过介绍信息论基础来理解交叉熵损失。
信息论基础
信息论涉及了编码、解码、发送、简洁处理信息
熵
信息论的核心思想就是量化数据中的信息内容。在信息论中,该数值被称为分布P的熵。可以通过下面方程得到:
H
[
P
]
=
∑
j
−
P
(
j
)
l
o
g
P
(
j
)
H[P]=\sum_j-P(j)logP(j)
H[P]=j∑−P(j)logP(j)
信息论指出:为了对从分布p中随机抽取的数据进行编码,我们至少需要H[P]纳特(相当于比特,但是对数底是e而不是2)对其进行编码
信息量
如果我们很容易预测下一个数据,那么这个数据就很容易压缩。可以通过极端例子来理解:假如数据流中的每个数据完全相同,我们就总是知道下一个数据是什么,很容易预测。数据都一样也很好压缩。
如果我们不能完全预测每个事件,我们会觉得“惊异”。用下式:
l
o
g
1
P
(
j
)
=
−
l
o
g
P
(
j
)
log\frac{1}{P(j)}=-logP(j)
logP(j)1=−logP(j)
来量化这种惊异程度。
在观察一个事件j时,赋予它主观概率P(j)。则上式的H[P]定义的熵,是当分配的概率真正匹配数据生成过程时的信息量的期望。
重新审视交叉熵
若把H[P]视为“知道真实概率的人所经历的惊异程度”,那么交叉熵H[P,Q]可以视为“主观概率为Q的观察者在看到根据概率P生成的数据时预期差异”。当P=Q时,交叉熵最低,此时H[P,Q]=H[P,P]=H[P]。
总之,我们可以从2方面考虑交叉熵分类目标:
(1)最大化观测数据的似然
(2)最小化传达标签所需的惊异文章来源:https://www.toymoban.com/news/detail-603702.html
模型预测和评估
在训练softmax回归模型后,给出任何样本特征,我们可以预测每个输出类别的概率。通常我们使用预测概率最高的类别作为输出类别。如果预测和实际的标签一致,则预测正确。下面将开始使用精度来评估模型的性能。概率=正确预测数/预测总数。文章来源地址https://www.toymoban.com/news/detail-603702.html
到了这里,关于机器学习&&深度学习——softmax回归(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!