交叉熵(cross entropy)

交叉熵

给定两个概率分布:p(理想结果即正确标签向量)和q(神经网络输出结果即经过softmax转换后的结果向量),则通过q来表示p的交叉熵为:

H(p,q)=−∑xp(x)logq(x)

注意:既然p和q都是一种概率分布,那么对于任意的x,应该属于[0,1]并且所有概率和为1

∀xp(X=x)ϵ[0,1]且∑xp(X=x)=1

交叉熵刻画的是通过概率分布q来表达概率分布p的困难程度,其中p是正确答案,q是预测值,也就是交叉熵值越小,两个概率分布越接近

转载于:关于交叉熵(cross entropy),你了解哪些

### 交叉熵损失概述 #### 定义 交叉熵损失是一种广泛应用于分问题中的损失函数,在机器学习尤其是深度学习领域非常常见。该损失函数衡量的是模型预测的概率分布与真实标签之间的差异程度。 #### 公式推导 对于二元分问题,使用的具体形式称为二元交叉熵损失(Binary Cross Entropy Loss, BCELoss),其表达式可以写作: \[ \text{BCE}(y,\hat y)=-(y\log(\hat y)+(1-y)\log(1-\hat y)) \] 这里 \(y\) 表示真实的别标签(0 或者 1),而 \(\hat y\) 则代表由模型给出的对应别的概率估计值[^1]。 当扩展到多分情况时,则采用一般的交叉熵损失(CrossEntropyLoss): \[ H(p,q)=-\sum_{i} p(x_i)\cdot\log(q(x_i)) \] 其中\(p(x_i)\) 是实际发生的事件的真实分布;\(q(x_i)\) 是模型所预测出来的分布[^3]。 #### 计算方法 在实现上,比如 PyTorch 中 `nn.CrossEntropyLoss()` 实际内部集成了两个操作:先执行 LogSoftmax 来获得对数似然比,再应用 NLLLoss(Negative Log Likelihood Loss)来完成最终的损失计算过程。 ```python import torch.nn as nn criterion = nn.CrossEntropyLoss() output = model(input_data) loss = criterion(output, target_labels) ``` 这段代码展示了如何创建一个交叉熵损失实例并用于训练过程中评估模型输出与目标标签间的差距。 #### 应用场景 - **图像识别**:无论是简单的手写数字辨识还是复杂的物体检测任务都可以见到它的身影; - **自然语言处理**:文本分、情感分析等NLP子域也大量依赖此损失函数来进行监督学习; - **医疗诊断辅助系统**:帮助提高疾病早期筛查准确性等方面发挥重要作用[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值