KL散度原理和实现

KL散度计算

KL散度(Kullback-Leibler Divergence)一般用于度量两个概率分布函数之间的相似程度:离散求和、连续求积分。
KL ⁡ ( P ∥ Q ) = ∑ P ( x ) log ⁡ P ( x ) Q ( x ) \operatorname{KL}(P\|Q)=\sum P(x)\log\frac{P(x)}{Q(x)} KL(PQ)=P(x)logQ(x)P(x)


KL ⁡ ( P ∥ Q ) = ∫ P ( x ) log ⁡ P ( x ) Q ( x ) d x \operatorname{KL}(P\|Q)=\int P(x)\log\frac{P(x)}{Q(x)}dx KL(PQ)=P(x)logQ(x)P(x)dx


参考:

KL散度理解以及使用pytorch计算KL散度 - 知乎 (zhihu.com)

KL散度 (Kullback-Leibler divergence) - 知乎 (zhihu.com)


pytorch实现KL散度:

先用softmax计算概率,再进行KL散度计算

import torch.nn.functional as F
kl = F.kl_div(x.softmax(dim=-1).log(), y.softmax(dim=-1), reduction='sum')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KPer_Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值