Softmax和交叉熵的联系

本文揭示了softmax函数如何将模型预测转化为概率分布,结合交叉熵如何衡量预测与真实标签间的差异,从而理解两者为何常一起使用于深度学习任务中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始上DL的课就很好奇,为什么大家都选softmax是交叉熵是搭配使用的,老师也不讲....

1. softmax + cross entropy

        首先是理解softmax究竟做了什么事,它就是把模型的输出向量都规整到用概率的形式去表达了,这里softmax的公式就不放了。

        譬如这个predict总共有5个类别,某一个样本进网络后的softmax输出是一个vector,[0.1, 0.2, 0.5, 0.1, 0.1],这里表示的是这个样本一个概率分布:P(X,Y) 的概率,Y是对应12345的label。用人话说就是这个样本被分到12345类对应的类别的概率是0.1, 0.2, 0.5, 0.1, 0.1。

        然后对应的label我们用one-hot encode去表示,[0, 0, 1, 0, 0]

        这里给出概率分布的定义:概率分布,是指用于表述随机变量取值的概率规律。事件的概率表示了一次试验中某一个结果发生的可能性大小。

        现在我们手里就用两个向量了,那我们怎么衡量他们之间的损失呢?其实还是用到了信息论的KL散度去解释

        这里先给出信息熵的定义:信息熵表示一个信息的混乱程度,信息熵越大,混乱程度越大。在C4.5中就信息增益的最大值,其目的就是使一个信息的混乱程度最大化降低(趁这机会还可以复习一下决策树了)

        H(X) = \sum P(X)logP(X)

        然后再引出KL散度的定义:对于同一个随机变量X有两个单独的概率分布P(x)和Q(x),我们可以使用KL散来衡量这两个分布的差异。KL散度的value越小,代表两个概率分布越相似,这个在EM和EM到VAE的文章里面也提到。

KL(P(X) || Q(X)) = \sum P(X)* log \frac{P(X)}{Q(X)}

        将这个式子摊开:

KL(P(X) || Q(X)) = \sum P(X)* log P(X) - P(X)* log Q(X)

        这个摊开后的式子的第一项就是信息熵,第二项就是交叉熵(Cross entropy)了。

        所以KL散度里的信息熵肯定是不变的,就是没什么用,只有后面的交叉熵就好了,这就是为啥softmax搭配交叉熵使用的原因了

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值