【Python深度学习】——交叉熵|KL散度|交叉熵损失函数

1. 交叉熵Cross Entropy

1.1 交叉熵的含义

交叉熵是两个概率分布之间差异的一种度量.
在机器学习中被广泛应用,尤其是分类问题中。

1.2 交叉熵的公式

H ( P , Q ) = − ∑ i P ( x i ) log ⁡ Q ( x i ) H(P, Q) = -\sum_{i} P(x_i) \log Q(x_i) H(P,Q)=iP(xi)logQ(xi)
其中, P ( x i ) P(x_i) P(xi)是真实分布中第 ( i ) 个事件的概率;
Q ( x i ) Q(x_i) Q(xi)是模型预测分布中第 ( i ) 个事件的概率。

1.3 交叉熵的特点

  1. 当模型的预测分布 𝑄 越接近真实分布 𝑃 时,交叉熵值越小。
  2. 交叉熵的值总是大于系统真实熵的值。

2. KL散度

2.1 KL散度的含义

KL散度也称为相对熵, 它也是度量两个概率分布之间差异的一种方式. 它是以Kullback和Leibler两个人命名的.

2.2 KL散度的公式

假设有两个概率分布 𝑃 和 𝑄,其中 𝑃 是真实分布,𝑄 是模型的预测分布。KL散度表示二者的交叉熵的差:
D K L ( P ∥ Q ) = H ( P , Q ) − H ( P ) D_{KL}(P \parallel Q) = H(P, Q) - H(P) DKL(PQ)=H(P,Q)H(P)
代入之前交叉熵和熵的公式, 可以得出:
D K L ( P ∥ Q ) = − ∑ i P ( x i ) log ⁡ Q ( x i ) − ( − ∑ i P ( x i ) log ⁡ P ( x i ) ) D_{KL}(P \parallel Q) = -\sum_{i} P(x_i) \log Q(x_i) - \left( -\sum_{i} P(x_i) \log P(x_i) \right) DKL(PQ)=iP(xi)logQ(xi)(iP(xi)logP(xi))
合并化简得到:
D K L ( P ∥ Q ) = ∑ i P ( x i ) log ⁡ P ( x i ) Q ( x i ) D_{KL}(P \parallel Q) = \sum_{i} P(x_i) \log \frac{P(x_i)}{Q(x_i)} DKL(PQ)=iP(xi)logQ(xi)P(xi)

2.3 KL散度的性质

  1. 非负性
    D K L ( P ∥ Q ) ≥ 0 D_{KL}(P \parallel Q) \geq 0 DKL(PQ)0
    当且仅当 𝑃 = 𝑄 时,
    D K L ( P ∥ Q ) = 0    ⟺    P = Q D_{KL}(P \parallel Q) = 0 \iff P = Q DKL(PQ)=0P=Q
  2. 非对称性:
    D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) D_{KL}(P \parallel Q) \neq D_{KL}(Q \parallel P) DKL(PQ)=DKL(QP)

KL散度遵循Jensen不等式,其推导基于凸函数的性质。对数函数是凹函数,因此:
D K L ( P ∥ Q ) ≥ 0 D_{KL}(P \parallel Q) \geq 0 DKL(PQ)0

2.4 KL散度的常用场景

KL散度广泛应用于很多机器学习算法中,如变分自编码器生成对抗网络等。它可以作为目标函数来优化模型参数,从而提高模型性能。

3. 交叉熵损失函数

交叉熵损失函数(Cross-Entropy Loss Function)是机器学习中常用的一种损失函数,特别适用于训练神经网络的二分类、多分类问题。它通过比较实际的标签分布与模型预测的概率分布,衡量模型预测的准确性。

3.1 交叉熵损失函数的定义与公式

交叉熵损失函数的目标是最小化预测概率分布与真实分布之间的差异。对于真实分布P 和预测分布 𝑄,交叉熵
𝐻(𝑃,𝑄) 的定义为
L ( y , y ^ ) = − ∑ i = 1 K y i log ⁡ y ^ i L(y, \hat{y}) = -\sum_{i=1}^{K} y_i \log \hat{y}_i L(y,y^)=i=1Kyilogy^i

y i y_{i} yi是实际标签的独热编码(one-hot encoding)如果真实类别是 𝑖,则 y i = 1 y_{i}=1 yi=1, 其余为 0;
y ^ i \hat y_{i} y^i 是模型预测的类别 𝑖 的概率。

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

steptoward

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

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

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

打赏作者

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

抵扣说明:

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

余额充值