在步态论文中看见交叉熵损失
对于交叉熵损失,训练集中的每个对象都被视为一个单独的类,并采用标签平滑技术[34]。
N是训练集中所有对象(人数)的数量。
p第(i,j)的序列属于第n个人的概率,q对身份信息进行编码,该身份信息的计算方式如下(以第y个对象为例):
ϵ是一个小常数,在实验中ϵ=0.1 。
这样的话,如果第i个人,第j个序列与第n的人相同,那么qnij 接近1;不相同不是同一个人,qnij接近0。这样的话,qnij可以看作一个常数,若人相同,为1;不相同,则为0。
log函数(看红色这条):
第(i,j)的序列属于第n个人的概率pnij是一个介于0,1的数,
也就是说人不一样的时候,qnij接近0,Loss小。
人一样的时候,qnij接近1,看我们的概率pnij:pnij大,分的对,loss小;pnij小,分错了,loss大。
回到公式2,我们有P×K的序列,每个序列对N人有N个概率,我们希望第i个人的第j个序列,在对应正确的第y的人的时候,概率值大,而其他人较小。
总结:
交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。
交叉熵在分类问题中常常与softmax是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。
(这里就想到了,当初上paddlepaddle的时候,老师提到了一句,在paddle里将softmax已经集成到了交叉熵损失函数中间,之后可以看看在pytorch里面又是如何展示的)