the*_*ist 81 machine-learning cross-entropy
我知道有很多解释是什么__CODE__,但我仍然感到困惑.
它只是一种描述损失函数的方法吗?然后,我们可以使用例如梯度下降算法来找到最小值.或者整个过程还包括找到最小算法?
sta*_*010 207
交叉熵通常用于量化两个概率分布之间的差异.通常,"真实"分布(机器学习算法试图匹配的分布)用一热分布表示.
例如,假设对于特定的训练实例,标签是B(可能的标签A,B和C中).因此,此培训实例的单热分发是:
Pr(Class A) Pr(Class B) Pr(Class C)
0.0 1.0 0.0
Run Code Online (Sandbox Code Playgroud)
您可以将上述"真实"分布解释为表示训练实例具有0%概率为A类,100%概率为B类,0%概率为C类.
现在,假设您的机器学习算法预测以下概率分布:
Pr(Class A) Pr(Class B) Pr(Class C)
0.228 0.619 0.153
Run Code Online (Sandbox Code Playgroud)
预测分布与真实分布有多接近?这就是交叉熵损失决定的.使用此公式:
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
Run Code Online (Sandbox Code Playgroud)
这就是你的预测与真实分布"错误"或"遥远"的程度.
交叉熵是许多可能的损失函数中的一个(另一个流行的是SVM铰链损失).这些损失函数通常写为J(θ)并且可以在梯度下降中使用,梯度下降是将参数(或系数)移向最佳值的迭代框架.在下面的等式中,您将替换J(theta)为H(p, q).但请注意,您需要首先计算H(p, q)相对于参数的导数.
所以直接回答你原来的问题:
它只是一种描述损失函数的方法吗?
正确的交叉熵描述了两个概率分布之间的损失.它是许多可能的损失函数之一.
然后我们可以使用例如梯度下降算法来找到最小值.
是的,交叉熵损失函数可以用作梯度下降的一部分.
进一步阅读:我的其他答案之一与TensorFlow有关.
小智 5
简而言之,交叉熵(CE)是衡量您的预测值与真实标签之间的距离的度量。
这里的交叉是指计算两个或多个特征/真实标签(如 0、1)之间的熵。
术语熵本身是指随机性,所以它的大值意味着您的预测与真实标签相去甚远。
因此改变权重以减少 CE,从而最终导致预测和真实标签之间的差异减少,从而提高准确性。
| 归档时间: |
|
| 查看次数: |
43102 次 |
| 最近记录: |