gpt4 book ai didi

python - 交叉熵总是大于熵吗?

转载 作者:行者123 更新时间:2023-11-28 22:15:26 25 4
gpt4 key购买 nike

我正在尝试了解交叉熵如何用于分类任务中的损失定义。

我对维基百科中关于交叉熵总是大于熵的说法感到非常困惑。我想出了一个非常简单的p(真实分布)和q(假设分布)分布,并计算了交叉熵和熵。并且发现这种情况下的交叉熵小于熵。

import numpy as np 
p = [0.5, 0.2, 0.2, 0.1]
q_1 = [0.4, 0.2, 0.2, 0.2]
q = [0.4, 0.2, 0.2, 0.2]
def cross_entropy(p, q):
return np.sum(-1*np.multiply(p, np.log(q)))
# Get cross entropy
print(cross_entropy(p, q))
# Get entropy
print(cross_entropy(q_1, q))

出了什么问题?


最佳答案

试试这个交叉熵:print(cross_entropy(q, p))

交叉熵在其参数中不是对称的。你可以在这里找到一个公式: https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
Motivation 部分,将交叉熵、熵和 KL 散度(始终为非负)联系起来。

基本上你比较了 H(P,Q) 和 H(Q),当你应该比较时:

  • H(Q,P) 和 H(Q)
  • H(P,Q) 和 H(P)

这样做你确实会看到:

  • H(Q,P) - H(Q) >=0
  • H(P,Q) - H(P) >=0

直接回答您的问题:交叉熵是否总是大于熵?
如果将正确的交叉熵与正确的熵进行比较,答案是肯定的。

关于python - 交叉熵总是大于熵吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52875114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com