【KL散度原理与实现】

1. 定义

KL散度( Kullback–Leibler divergence),又称相对熵(relative entropy),是描述两个概率分布P和Q差异的一种方法。

2. 特点

它是非对称的,这意味着D(P||Q) ≠ D(Q||P)。

3. 意义

特别的,在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布。KL散度在信息论中有自己明确的物理意义,它是用来度量使用基于Q分布的编码来编码来自P分布的样本平均所需的额外的Bit个数。

而其在机器学习领域的物理意义则是用来度量两个函数的相似程度或者相近程度

4. 公式

在这里插入图片描述

5. Pytorch实现

方式1:先定义再调用

self.KL = torch.nn.KLDivLoss(reduction = 'sum')
loss_kl = self.KL(atts.softmax(dim = -1).log(), deps.softmax(dim = -1))

方式2:直接调用

loss_KL = torch.nn.functional.kl_div(atts.softmax(dim = -1).log(), deps.softmax(dim = -1), reduction = 'sum')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值