理解交叉熵(Cross Entropy)

编程入门 行业动态 更新时间:2024-10-27 05:33:54

理解交叉熵(<a href=https://www.elefans.com/category/jswz/34/1763912.html style=Cross Entropy)"/>

理解交叉熵(Cross Entropy)

交叉熵(Cross-Entropy)是一种用于衡量两个概率分布之间的距离或相似性的度量方法。在机器学习中,交叉熵通常用于损失函数,用于评估模型的预测结果与实际标签之间的差异。

在分类问题中,交叉熵损失函数通常用于多分类问题,其中模型需要对输入样本进行分类,而标签是类别概率分布。交叉熵损失函数通过计算模型预测的概率分布与真实标签的概率分布之间的差异来衡量模型的性能。

具体来说,对于给定的样本和标签,交叉熵损失函数可以表示为:

L(y, y') = - ∑(y[i] * log(y'[i]))

其中 y 是真实标签的概率分布,y' 是模型预测的概率分布,x 是样本的特征向量。交叉熵损失函数的目的是最小化预测概率分布与真实概率分布之间的差异,使得模型能够更好地学习到数据的内在规律和特征。

在深度学习中,交叉熵损失函数通常与反向传播和优化算法一起使用,通过不断调整模型的参数来优化模型的性能。常用的交叉熵损失函数包括二元交叉熵、多元交叉熵和多标签交叉熵等。

import numpy as np
​
# 样本数据给出的分布概率,等于4的概率是100%,等于其他数字的概率是0%
p = [0,0,0,0,1,0,0,0,0,0]
​
# 第一种情况,识别结果是4的概率是80%,识别结果是9的概率是20%
q1 = [0,0,0,0,0.8,0,0,0,0,0.2]
# 第二种情况,识别结果是4的概率是60%,是9的概率是20%,是0的概率是20%
q2 = [0.2,0,0,0,0.6,0,0,0,0,0.2]
​
loss_q1 = 0.0
loss_q2 = 0.0
​
for i in range(1, 10):# 如果p(x)=0,那么,p(x)*log q1(x) 肯定等于0。如果q1(x)等于0,那么,log q1(x)不存在if p[i] != 0 and q1[i] != 0:loss_q1 += -p[i]*np.log(q1[i])# 如果p(x)=0,那么,p(x)*log q2(x) 肯定等于0。如果q2(x)等于0,那么,log q2(x)不存在    if p[i] != 0 and q2[i] != 0:loss_q2 += -p[i]*np.log(q2[i])print ("第一种情况,误差是:{}".format( round(loss_q1, 4)))       
print ("第二种情况,误差是:{}".format(round(loss_q2, 4)))

第一种情况,误差是:0.2231

第二种情况,误差是:0.5108

更多推荐

理解交叉熵(Cross Entropy)

本文发布于:2023-11-16 01:02:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1610789.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Cross   Entropy

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!