交叉熵损失

1.背景

熵(Entropy): 熵是信息论中的一个基本概念,用于衡量一个随机变量的不确定性, 量化了随机变量的平均信息量。信息量的大小与事件发生的概率成反比:一个事件发生的概率越小,其携带的信息量越大;反之,一个事件发生的概率越大,其携带的信息量越小。
对于一个离散随机变量 X,其概率分布为 P(X),熵 H(X) 定义为: H ( X ) = − ∑ i P ( x i ) l o g P ( x i ) H(X)=-\sum_{i}^{}P(x_i)logP(x_i) H(X)=iP(xi)logP(xi).
其中, x i x_i xi​ 是随机变量 X X X 的可能取值, P ( x i ​ ) P(x_i​) P(xi) x i x_i xi​ 出现的概率。
熵衡量了随机变量的不确定性。如果一个随机变量的取值非常不确定(例如,每个取值的概率都相等),那么熵会很大;如果一个随机变量的取值非常确定(例如,某个取值的概率接近1,其他取值的概率接近0),那么熵会很小。

  • 每个取值概率都相等: H ( x ) = − ∑ i = 1 n ( 1 n l o g ( 1 n ) ) = l o g n H(x)=-\sum_{i=1}^n(\frac{1}{n}log(\frac{1}{n}))=logn H(x)=i=1n(n1log(n1))=logn. 不确定性 n n n 越大, l o g ( n ) log(n) log(n) 越大
  • 某个取值的概率接近1,其他取值的概率接近0(不妨只让 x k x_k xk 接近1): H ( x ) = − ( P ( x k ) l o g P ( x k ) + ∑ i ≠ k P ( x i ) l o g P ( x i ) ) = − ( 1 l o g 1 + ∑ 0 l o g 0 ) = 0 H(x)=-(P(x_k)logP(x_k)+\sum_{i\ne k}P(x_i)logP(x_i))=-(1log1 + \sum0log0)=0 H(x)=(P(xk)logP(xk)+i=kP(xi)logP(xi))=(1log1+0log0)=0.( x x x趋近0的速度比 l o g x logx logx趋近无穷的速度快很多)

2.交叉熵

交叉熵是衡量两个概率分布之间的差异的工具。假设我们有两个概率分布 P 和 Q,它们定义在同一个随机变量 X 上。
交叉熵 H(P,Q) 定义为: H ( P , Q ) = − ∑ i P ( x i ) l o g Q ( x i ) H(P,Q)=-\sum_{i}P(x_i)logQ(x_i) H(P,Q)=iP(xi)logQ(xi).
其中, P ( x i ​ ) P(x_i​) P(xi) 是真实分布的概率。 Q ( x i ​ ) Q(x_i​) Q(xi) 是模型预测的概率。
交叉熵衡量了用概率分布 Q 来表示真实分布 P 的平均信息量。如果 Q 和 P 完全一致,那么交叉熵等于 P 的熵;如果 Q 和 P 差异很大,那么交叉熵会比 P 的熵大得多。

3.推导

3.1 二分类问题

假设我们有一个二分类问题: 真实标签 y 只能取 0 或 1。模型预测的概率 y ^ \hat{y} y^​ 表示样本属于类别 1 的概率。
真实分布 P P P 可以表示为:
p ( y ) = { 1   i f   y = 1 0   i f   y = 0 } p(y)=\begin{Bmatrix} 1 \space if \space y=1 \\ 0 \space if \space y=0 \end{Bmatrix} p(y)={1 if y=10 if y=0}
模型预测的 Q 可以表示为:
Q ( y ) = { y ^   i f   y = 1 1 − y ^   i f   y = 0 } Q(y)=\begin{Bmatrix} \hat{y} \space if \space y=1 \\ 1-\hat{y} \space if \space y=0 \end{Bmatrix} Q(y)={y^ if y=11y^ if y=0}
交叉熵损失 L c e L_{ce} Lce​ 可以写为: L c e = − ∑ y ∈ { 0 , 1 } P ( y ) l o g Q ( y ) L_{ce}=-\sum_{y\in\left \{ 0,1 \right \} }P(y)logQ(y) Lce=y{0,1}P(y)logQ(y).
展开: L c e = − [ P ( y = 1 ) l o g ( y = 1 ) + P ( y = 0 ) l o g Q ( y = 0 ) ] = − [ y l o g ( y ^ ) + ( 1 − y ) l o g ( 1 − y ^ ) ] L_{ce}=-[P(y=1)log(y=1)+P(y=0)logQ(y=0)]=-[ylog(\hat{y})+(1-y)log(1-\hat{y})] Lce=[P(y=1)log(y=1)+P(y=0)logQ(y=0)]=[ylog(y^)+(1y)log(1y^)]
这就是二分类问题中的交叉熵损失函数。

3.2 多分类问题

对于多分类问题,假设:真实标签 y 是一个 one-hot 编码向量,表示样本属于某个类别的概率分布。模型预测的概率 y ^ \hat y y^ 是一个向量,表示样本属于每个类别的概率。
真实分布 P 和预测分布 Q 可以表示为: P ( y ) = [ y 1 , y 2 , ⋯   , y c ] P(y)=[y_1,y_2,\cdots,y_c] P(y)=[y1,y2,,yc], Q ( y ) = [ y ^ 1 , y ^ 2 , ⋯   , y ^ c ] Q(y)=[\hat y_1, \hat y_2, \cdots, \hat y_c] Q(y)=[y^1,y^2,,y^c].
其中, C C C 是类别的总数, y i y_i yi​ 是真实标签向量中的第 i i i 个元素, y i y_i yi​ 是预测概率向量中的第 i i i 个元素。
交叉熵损失 L c e L_{ce} Lce可以写为: L c e = − ∑ i = 1 c P ( y i ) l o g Q ( y i ) L_{ce}=-\sum_{i=1}^{c}P(y_i)logQ(y_i) Lce=i=1cP(yi)logQ(yi).
展开: L c e = − ∑ i = 1 C y i l o g ( y i ^ ) L_{ce}=-\sum_{i=1}^Cy_ilog(\hat{y_i}) Lce=i=1Cyilog(yi^). 当 C = 2 C=2 C=2, y i ∈ { 0 , 1 } y_i\in\{0,1\} yi{0,1} 时, 就是二分类的交叉熵损失了.
这就是多分类问题中的交叉熵损失函数。

4.优势

  1. 对数似然的负值:最小化交叉熵损失等价于最大化对数似然,这是统计学中常用的优化目标。
  2. 对概率敏感:交叉熵损失使用对数函数,对概率值的变化非常敏感。如果模型对正确类别的预测概率非常低,交叉熵损失会变得非常大,从而对模型施加较大的惩罚。
  3. 非负性:交叉熵损失总是非负的,这使得它在优化过程中具有良好的性质。

5. 总结

交叉熵损失函数是从信息论中的交叉熵概念推导出来的。它衡量了模型预测的概率分布与真实标签的概率分布之间的差异。通过最小化交叉熵损失,模型可以学习到如何更好地预测每个类别的概率。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值