交叉熵损失函数(CrossEntropy Loss)(原理详解)

        监督学习主要分为两类:

  1. 分类:目标变量是离散的,如判断一个西瓜是好瓜还是坏瓜,那么目标变量只能是1(好瓜),0(坏瓜)
  2. 回归:目标变量是连续的,如预测西瓜的含糖率(0.00~1.00)

        分类主要分为:

  • 二分类:如判断一个西瓜是好瓜还是坏瓜
  • 多分类:如判断一个西瓜的品种,如黑美人,特小凤,安农二号等

        而交叉熵损失函数是分类中最常用的损失函数,交叉熵是用来度量两个概率分布的差异性的,用来衡量模型学习到的分布和真实分布的差异

二分类

        在二分类情况中,对于每一类别的预测只能是两个值,假设预测为好瓜(1)的概率为 P P P,坏瓜(0)的概率为 1 − P 1-P 1P
        则,二分类交叉熵损失的一般形式为,其中y为标签:
在这里插入图片描述
这个式子怎么理解呢?

        预测为好瓜(1)的概率为 P P P P ( y = 1 ∣ x ) = P P(y=1|x)=P P(y=1x)=P
        预测为坏瓜(0)的概率为 1 − P 1-P 1P P ( y = 0 ∣ x ) = 1 − P P(y=0|x)=1-P P(y=0x)=1P
        则, P ( y ∣ x ) = P y ( 1 − P ) 1 − y P(y|x)=P^y(1-P)^{1-y} P(yx)=Py(1P)1y,当y为1时, P ( y ∣ x ) = P P(y|x)=P P(yx)=P,当y为0时, P ( y ∣ x ) = 1 − P P(y|x)=1-P P(yx)=1P


交叉熵函数公式原理:

        学习一个东西,就要深入的了解他,否则一直停留在表面上,就无法进一步研究,这个交叉熵是如何得到的呢,如何理解他?
首先要理解下面几个概念:

  1. 信息量
            信息量表示一条信息消除不确定性的程度,如中国目前的高铁技术世界第一,这个概率为1,这句话本身是确定的,没有消除任何不确定性。而中国的高铁技术将一直保持世界第一,这句话是个不确定事件,包含的信息量就比较大。信息量的大小和事件发生的概率成反比
    在这里插入图片描述

  2. 信息熵
            信息熵则是在结果出来之前对可能产生的信息量的期望,期望可以理解为所有可能结果的概率乘以该对应的结果。
    在这里插入图片描述
            信息熵是用来衡量事物不确定性的。信息熵越大(信息量越大,P越小),事物越具不确定性,事物越复杂。

  3. 相对熵(即KL散度)
            相对熵又称互熵,设 p ( x ) p(x) p(x) q ( x ) q(x) q(x)是取值的两个概率分布,相对熵用来表示两个概率分布的差异,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。:
    在这里插入图片描述
    (可以这样想,对于一个二分类,p要么为0要么为1,由log图像知,p为0时值为0,为1时,q越接近1, l o g p q log{p \over q} logqp越小,越接近于0)(这里的log底数为2)
    在这里插入图片描述

  4. 交叉熵
            将相对熵展开可以得到如下:
    在这里插入图片描述
    在这里插入图片描述
            由上式可知,相对熵=交叉熵-信息熵,H(p,q)就是交叉熵:

在这里插入图片描述
        由于在机器学习和深度学习中,样本和标签已知(即p已知),那么信息熵H(p)相当于常量,此时,只需拟合交叉熵,使交叉熵拟合为0即可。

多分类

        多分类和二分类类似,二分类标签为1和0,而多分类可以用one-hot编码来表示,即现在要预测西瓜品种,品种有黑美人,特小凤,安农二号,如果真实标签为特小凤即(0,1,0),预测标签为安龙二号即(0,0,1),将预测标签的各个概率带入即可,多分类的情况实际上就是对二分类的扩展:
在这里插入图片描述
        y i k y_{ik} yik表示第 i i i个样本的真实标签为 k k k ,共有 K K K个标签值 N N N个样本, p i , k p_{i,k} pi,k表示第 i i i个样本预测为第 k k k个标签值的概率。通过对该损失函数的拟合,也在一定程度上增大了类间距离。

### 二元交叉熵损失函数详解 #### 原理 二元交叉熵(Binary Cross Entropy, BCE)是一种用于衡量两个概率分布之间差异的工具,在机器学习和深度学习领域广泛应用于二分类问题。其核心思想来源于信息论中的交叉熵概念,用来量化模型预测的概率分布与实际目标分布之间的距离。 BCE的核心在于计算真实标签 \( y_i \) 和模型预测值 \( \hat{y}_i \) 的对数似然差值。对于每一个样本,如果真实标签为正类,则希望模型预测接近于1;如果是负类,则希望预测接近于0。这种机制使得BCE能够有效引导模型调整参数以最小化误差[^2]。 #### 公式 假设数据集中有 \( N \) 个样本,每个样本的真实标签为 \( y_i \in \{0, 1\} \),模型输出经过激活函数(通常是Sigmoid函数)后的预测值为 \( \hat{y}_i = \sigma(x_i) \),其中 Sigmoid 函数定义如下: ```python def sigmoid(z): return 1 / (1 + np.exp(-z)) ``` 则二元交叉熵损失函数可表示为: \[ L(w) = - \frac{1}{N} \sum_{i=0}^{N}[y_i \log(\hat{y}_i) + (1 - y_i)\log(1 - \hat{y}_i)] \] 这里: - \( y_i \): 真实标签; - \( \hat{y}_i \): 预测值,范围在 [0, 1]; - \( \log() \): 自然对数运算。 该公式的直观意义是:当真实标签为1时,主要关注的是 \( \log(\hat{y}_i) \) 是否足够大;反之亦然。因此,BCE鼓励模型提高正确类别上的置信度并降低错误类别上的权重[^4]。 #### 使用场景 二元交叉熵通常被用作解决两类问题的标准方法之一,特别是在监督学习框架下处理布尔型变量的任务中表现优异。以下是几个典型的应用实例: 1. **图像分割** 在像素级标注任务里,比如医学影像分析或者自动驾驶车辆检测道路区域等场合,每张图片可能包含大量前景背景点位组合而成的数据集。此时采用逐像素独立判断方式配合BCE作为评价标准非常合适。 2. **情感分析** 对一段文字进行正面负面情绪识别属于典型的两极分化判定过程,利用神经网络架构加上适当调参之后再辅之以BCE反馈调节机制可以取得不错的效果。 3. **广告点击率预估CTR Prediction** 广告展示给用户后是否会触发点击行为本质上也是一个简单的Yes/No问答游戏,借助历史积累下来的大规模日志记录训练出来的推荐引擎往往依赖此类技术实现精准推送服务。 值得注意的是,尽管BCE非常适合这些特定类型的挑战,但在某些特殊情况下也可能存在局限性——例如极端不平衡的数据分布可能会导致常规版本下的性能下降现象发生。这时可以通过引入加权策略或者其他改进措施加以缓解[^1]。 ```python import torch.nn as nn # 定义一个简单的二元交叉熵损失函数 criterion = nn.BCELoss() # 示例输入 predictions = torch.tensor([0.9, 0.1], requires_grad=True) targets = torch.tensor([1., 0.]) loss = criterion(predictions, targets) print(f'Loss: {loss.item()}') ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂奔的菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值