GAN学习笔记——KL散度、交叉熵、JS散度

首先,我们知道, 熵 是用来量化数据中含有的信息量的,其计算公式为:
H = − ∑ i = 1 N p ( x i ) ⋅ log ⁡ p ( x i ) H=-\sum_{i=1}^{N}p(x_{i})\cdot \log p(x_{i}) H=i=1Np(xi)logp(xi)


1)KL散度(Kullback–Leibler divergence)
又称KL距离,相对熵,用来比较两个概率分布的接近程度。

假设 p ( x ) p(x) p(x) 为数据的真实概率分布, q ( x ) q(x) q(x) 为数据的理论概率分布,计算它们每个取值之间对应的差:
K L ( p ∣ ∣ q ) = ∑ i = 1 N p ( x i ) ⋅ ( log ⁡ p ( x i ) − log ⁡ q ( x i ) ) KL(p||q)=\sum_{i=1}^{N}p(x_{i})\cdot \left (\log p(x_{i})-\log q(x_{i}) \right ) KL(pq)=i=1Np(xi)(logp(xi)logq(xi))
可以简写成:
K L ( p ∣ ∣ q ) = ∑ i = 1 N p ( x i ) ⋅ log ⁡ p ( x i ) q ( x i ) KL(p||q)=\sum_{i=1}^{N}p(x_{i})\cdot \log \frac{ p(x_{i})}{q(x_{i})} KL(pq)=i=1Np(xi)logq(xi)p(xi)
p ( x ) p(x) p(x) q ( x ) q(x) q(x)的相似度越高,KL散度越小。因此使用KL散度进行优化的过程为:通过不断改变预估分布的参数,我们可以得到不同的KL散度的值。 在某个变化范围内,KL散度取到最小值的时候,对应的参数是我们想要的最优参数。

KL散度主要有两个性质:

  • 不对称性
    KL散度不具有对称性,即 K L ( p ∣ ∣ q ) ! = K L ( q ∣ ∣ p ) KL(p||q)!=KL(q||p) KL(pq)!=KL(qp)因此不能将它视为“距离”,它衡量的是一个分布相比另一个分布的信息损失。

  • 非负性
    KL散度的值是非负值,即 K L ( p ∣ ∣ q ) ≥ 0 KL(p||q)≥0 KL(pq)0


2)交叉熵(Cross Entropy)
H ( p , q ) = ∑ i = 1 N p ( x i ) ⋅ log ⁡ 1 q ( x i ) H(p,q)=\sum_{i=1}^{N}p(x_{i})\cdot \log \frac{1}{q(x_{i})} H(p,q)=i=1Np(xi)logq(xi)1
交叉熵和相对熵的关系如下:
K L ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) KL(p||q)=H(p,q)-H(p) KL(pq)=H(p,q)H(p)
因为训练数据的分布是已知的,所以交叉熵与KL散度的意义类似。


3)JS散度(Jensen-Shannon divergence)
J S ( p ∣ ∣ q ) = 1 2 K L ( p ∣ ∣ p + q 2 ) + 1 2 K L ( q ∣ ∣ p + q 2 ) JS(p||q)=\frac{1}{2}KL(p||\frac{p+q}{2})+\frac{1}{2}KL(q||\frac{p+q}{2}) JS(pq)=21KL(p2p+q)+21KL(q2p+q)
JS散度主要有两个性质:

  • 对称性
    JS散度具有对称性,即 J S ( p ∣ ∣ q ) = J S ( q ∣ ∣ p ) JS(p||q)=JS(q||p) JS(pq)=JS(qp)

  • 值域范围
    JS散度的值域范围是[0,1],相同为0,相反为1。

在GAN中,它衡量的是随机噪声生成数据的概率分布拟合真实数据的概率分布的过程中产生的信息损耗,损耗越少,拟合越好,生成的数据越真实。但是KL散度和JS散度存在同一个问题,如果p分布和q分布相距很远完全没有重叠,KL散度值是没有意义的,且会导致梯度消失,故引出了Wasserstein距离,明天学习这一部分。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
KL散度交叉熵是在机器学习中用于比较两个概率分布之间相似性的概念,但在一些方面它们也有所不同。KL散度用于衡量两个概率分布之间的差异,而交叉熵则用于衡量模型预测和真实标签之间的差异。 具体来说,KL散度衡量的是从一个概率分布到另一个概率分布的信息损失。它是非对称的,即KL(P||Q)不等于KL(Q||P)。KL散度的值越小,表示两个概率分布越相似。 交叉熵是在给定真实标签的情况下,衡量模型预测与真实标签之间的差异。它是对数损失函数的一种形式,用于评估模型的性能。交叉熵的值越小,表示模型的预测越接近真实标签。 总结来说,KL散度用于比较两个概率分布之间的差异,而交叉熵用于衡量模型预测和真实标签之间的差异。它们在使用和应用上有所区别,但都在机器学习中有广泛的应用。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [KL散度交叉熵的对比介绍](https://blog.csdn.net/qq_33431368/article/details/130397363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [KL散度交叉熵](https://blog.csdn.net/Allenalex/article/details/103443060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值