Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
4天前关闭。
Improve this question
我知道关于交叉熵有很多解释,但是我仍然很困惑。
仅仅是描述损失函数的一种方法吗?我们可以使用梯度下降算法通过损失函数找到最小值吗?
现在,假设您的机器学习算法可以预测以下概率分布:
其中
交叉熵是许多可能的损失函数之一(另一个流行的是SVM铰链损失)。这些损失函数通常写为J(θ),并且可以在梯度下降中使用,梯度下降是一种将参数(或系数)移向最佳值的迭代算法。在下面的公式中,您将
因此,直接回答您的原始问题:
正确的交叉熵描述了两个概率分布之间的损失。它是许多可能的损失函数之一。
是的,交叉熵损失函数可以用作梯度下降的一部分。
进一步阅读:我的other answers之一与TensorFlow有关。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
4天前关闭。
Improve this question
我知道关于交叉熵有很多解释,但是我仍然很困惑。
仅仅是描述损失函数的一种方法吗?我们可以使用梯度下降算法通过损失函数找到最小值吗?
最佳答案
交叉熵通常用于量化两个概率分布之间的差异。通常,“真实”分布(您的机器学习算法正在尝试匹配的分布)以单热点分布表示。
例如,假设对于特定的训练实例,真实标签为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(θ),并且可以在梯度下降中使用,梯度下降是一种将参数(或系数)移向最佳值的迭代算法。在下面的公式中,您将
J(theta)
替换为H(p, q)
。但是请注意,您首先需要针对参数计算H(p, q)
的导数。因此,直接回答您的原始问题:
正确的交叉熵描述了两个概率分布之间的损失。它是许多可能的损失函数之一。
是的,交叉熵损失函数可以用作梯度下降的一部分。
进一步阅读:我的other answers之一与TensorFlow有关。
08-24 14:30