机器学习之十四:相对熵(KL散度)和交叉熵

    样本间距离计算方法总结
1、熵的定义
    在讲解决策树的博文中曾经提到过熵的定义,熵是表示随机变量不确定性的度量,熵越大,则随机变量的不确定性越大。设X是一个离散随机变量,X的概率分布为:

P(X=xi)=pi,i=1,2,3...,n P ( X = x i ) = p i , i = 1 , 2 , 3... , n

则随机变量X的熵定义为:
H(X)=i=1npilogpi H ( X ) = − ∑ i = 1 n p i l o g p i

熵只依赖与X的分布,与X的取值无关,所以X的熵记做H(p),即
H(p)=i=1npilogpi H ( p ) = − ∑ i = 1 n p i l o g p i

2、相对熵
    相对熵又称为KL散度(Kullback-Leibler Divergence),用来衡量两个分布之间的距离。设P和Q是X取值的两个离散概率分布:
P(X=xi)=pi,i=1,2,3...,nQ(X=xi)=qi,i=1,2,3...,n P ( X = x i ) = p i , i = 1 , 2 , 3... , n Q ( X = x i ) = q i , i = 1 , 2 , 3... , n

P P Q的相对熵记为 DKL(P||Q): D K L ( P | | Q ) :
DKL(P||Q)=EP[logP(X)Q(X)]=i=1nP(X=xi)logP(X=xi)Q(X=xi)=i=1nP(X=xi)logP(X=xi)i=1nP(X=xi)logQ(X=xi)=H(p)i=1nP(X=xi)logQ(X=xi)=Hp(q)H(p) D K L ( P | | Q ) = E P [ log ⁡ P ( X ) Q ( X ) ] = ∑ i = 1 n P ( X = x i ) log ⁡ P ( X = x i ) Q ( X = x i ) = ∑ i = 1 n P ( X = x i ) log ⁡ P ( X = x i ) − ∑ i = 1 n P ( X = x i ) log ⁡ Q ( X = x i ) = − H ( p ) − ∑ i = 1 n P ( X = x i ) log ⁡ Q ( X = x i ) = H p ( q ) − H ( p )

    这里 H(p) H ( p ) P P 的熵,显然,当P=Q时,两者之间的相对熵 DKL(P||Q) D K L ( P | | Q ) =0.上式最后的 Hp(q) H p ( q ) 表示在 P P 分布下,使用Q进行编码需要的bit数,而 H(p) H ( p ) 表示对真实分布 P P 所需要的最小编码bit数。基于此,相对熵的意义就很明确了:DKL(P||Q)表示在真实分布为 P P 的前提下,使用Q分布进行编码相对于使用真实分布 P P 进行编码(即最优编码)所多出来的bit数。
3、交叉熵
    假设有两个分布P,Q,则它们在给定样本集上的交叉熵定义如下:
CEH(P,Q)=EP[logQ(X)]=i=1nP(X=xi)logQ(X=xi)=H(p)+DKL(P||Q)

    可以看出,交叉熵与上一节定义的相对熵仅相差了 H(p) H ( p ) ,当 P P 已知时,可以把H(p)看做一个常数,此时交叉熵与KL距离在行为上是等价的,都反映了分布P,Q的相似程度。最小化交叉熵等于最小化KL距离。它们都将在 P=Q P = Q 时取得最小值 H(p) H ( p ) P=Q P = Q 时KL距离为0)
4、交叉熵的应用
    多分类的问题上,真实的类标签可以看作是分布,对某个样本属于哪个类别可以用One-hot的编码方式,是一个维度为C的向量,C表示有C个类别。比如在5个类别的分类中,[0, 1, 0, 0, 0]表示该样本属于第二个类,其概率值为1。我们把真实的类标签分布记为 P P ,该分布中,当xi属于它的真实类别 c c 时,P(X=xi)=1
    同时,分类模型经过softmax函数之后,也是一个概率分布 Q Q ,因为i=1CQ(X=xi)=1,所以我们把模型的输出的分布记为q,它也是一个维度为C的向量,如[0.1, 0.8, 0.05, 0.05, 0]。 对一个样本来说,真实类标签分布与模型预测的类标签分布可以用交叉熵来表示:
CEH(P,Q)=i=1CP(X=xi)logQ(X=xi) C E H ( P , Q ) = − ∑ i = 1 C P ( X = x i ) log ⁡ Q ( X = x i )

最终,对所有的样本,我们有以下损失函数:
L=k=1ni=1CPk(X=xi)logQk(X=xi) L = − ∑ k = 1 n ∑ i = 1 C P k ( X = x i ) log ⁡ Q k ( X = x i )

其中 Pk(X=xi) P k ( X = x i ) 是样本 k k 属于类别i的概率, Qk(X=xi) Q k ( X = x i ) 是样本 k k 预测为属于类别i的概率。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值