交叉熵和mse_一文总结熵,交叉熵,条件熵

本文深入浅出地介绍了信息熵、交叉熵和条件熵的概念,从信息不确定性的角度解释熵的含义,探讨了KL散度与交叉熵的关系,并通过举例说明了条件熵在模型训练中的作用,对于理解和应用这些概念在机器学习中的角色提供了清晰的指导。
摘要由CSDN通过智能技术生成

最近在学习Semi-supervised Domain Adaptation via Minimax Entropy (ICCV 2019),里面使用到了条件熵,不怎么了解,看来还是有必要总结一下。

熵. Entropy

在这里我们一般说的是信息熵,并不是热力学的那个熵,是由香农提出来的这个。因为那个时候都是2bit为单位,所以一般底数为2. 定义信息量

.

为什么前面有个负号?现在是为了不小于0,所以说熵不小于0一开始就是从这里定义的了。我们把信息量理解成信息的不确定性,一个信息的不确定性越大,那么他的熵(信息量)也就越大。

显然,上面定义的信息量只是一个“点”。我们需要扩展到整个随机变量

的情况,或者说整个样本空间的信息量。是的,就是
信息量的期望
了:

.

求和就是离散型随机变量,积分就是连续型随机变量咯。

相对熵,KL散度。

是真实分布,
为预测(模型输出)分布。我们使用KL散度来刻画两个分布之间的差异。

1ddabfa76cc8c4d196739f2b46730133.png

越小,代表两个分布越接近。所以说我们一般最小化KL散度,使我们模型的预测分布更接近于真实分布。
注意相当熵不具有对称性;相对熵大于0用杰森不等式就可以证明(凸函数,期望的函数,即图像的中点
函数的期望,即线的中点
)。

我们简化一下这个式子:

再看到上面信息熵的定义,就可以发现:

等式左边第一项就是CrossEntropy,交叉熵了。

为什么我们是优化交叉熵而非优化KL散度?

因为很多时候我们默认信息熵是确定的,所以优化交叉熵就等同于优化KL散度。

(题外话:事实上,交叉熵假设数据分布服从Bernbulli distribution,而均方误差MSE假设数据服从Gaussian distribution)

好了终于复习完毕!接下来我们看条件熵。

我们很容易联想到条件概率,不过还是有点差别。条件熵

的定义为:
已知随机变量
的条件下,
的条件概率分布的熵对
的期望。

千万不要想成是这个形式

.
条件熵并不是指在给定某个变量下,
的熵是多少,定义里说的是期望!
公式是这样定义的:

(老是忘记等号对齐的写法。。)

条件熵也可以理解成是新的变量的每个值对原变量的分类,求期望。

这里初开始看可能会有疑问:

每个条件都要考虑,这个没问题。但是为什么有个
举个例子,
表示天气状况.
表示我要不要打csgo。事实上在计算
的时候,
是给定的,已知的条件。根据信息熵的定义,就是求
. (逗号的写法和这里是一个意思
侠肝义胆陈浩天:CS-229 Notes8-Expectation Maximization). 也就是说无论我打不打csgo的时候,也要计算下不下雨。

那么:H(Y|X=天气) = p(X =晴天)*H(Y|X=晴天)+p(X =阴天)*H(Y|X=阴天)

H(Y|X=晴天) = -(p(打机|晴天)*logp(打机|晴天) +p(不打机|晴天)*logp(不打机|晴天) ), 一定要注意期望!

结合实际训练的时候来讨论

假如说我们最大化条件熵,就是在给定的参数条件下输入对输出的影响不会很大,从而使我们的模型学习到域不变的特征。如何最大化?直接不要负号就ok.

那如果是最小化条件熵呢?这就类似于普通的分类问题了。

代码示例:

事实上在神经网络中,默认当前的

条件下(=1),直接计算
.
def adentropy(F1, feat, lamda, eta=1.0):
    # 不要负号就是最大化条件熵, 让输出每一个概率
    out_t1 = F1(feat, reverse=True, eta=eta)  #这里是正数,下面就不要负号。
    out_t1 = F.softmax(out_t1, -1)
    loss_adent = lamda * torch.mean(torch.sum(out_t1 *
                                              (torch.log(out_t1 + 1e-5)), 1))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值