什么是交叉熵?
machine-learning
7
0

我知道有很多关于交叉熵的解释,但是我仍然很困惑。

仅仅是描述损失函数的一种方法吗?我们可以使用梯度下降算法通过损失函数找到最小值吗?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

交叉熵通常用于量化两个概率分布之间的差异。通常,“真实”分布(您的机器学习算法正在尝试匹配的分布)以单热点分布表示。

例如,假设对于特定的训练实例,标签为B(可能的标签A,B和C中的标签)。因此,此培训实例的一个热点分布是:

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

您可以将上述“真实”分布解释为意味着训练实例具有0%的概率是A类,100%的概率是B类和0%的概率是C类。

现在,假设您的机器学习算法可以预测以下概率分布:

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

预测分布与真实分布有多接近?这就是交叉熵损失所决定的。使用以下公式:

交叉熵损失公式

其中p(x)是期望概率, q(x)是实际概率。总和超过三个类别A,B和C。在这种情况下,损失为0.479

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

这就是您的预测与真实分布有“错误”或“遥不可及”的地方。

交叉熵是许多可能的损失函数之一(另一个流行的函数是SVM铰链损失)。这些损失函数通常写为J(θ),可在梯度下降中使用,梯度下降是一种将参数(或系数)移向最佳值的迭代算法。在下面的等式中,您可以用H(p, q)替换J(theta) H(p, q) 。但请注意,您需要首先计算相对于参数的H(p, q)的导数。

梯度下降

因此,直接回答您的原始问题:

仅仅是描述损失函数的一种方法吗?

正确的交叉熵描述了两个概率分布之间的损失。它是许多可能的损失函数之一。

然后,我们可以使用例如梯度下降算法来找到最小值。

是的,交叉熵损失函数可以用作梯度下降的一部分。

进一步阅读:我的其他与TensorFlow相关的答案之一。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号