【深度学习】交叉熵

信息熵公式

香农(Shannon) - 信息论

H ( X ) = E [ I ( X ) ] = E [ − l o g ( P ( X ) ) ] = ∑ i = 0 n − p ( x i ) ⋅ l o g ( p ( x i ) ) \begin{align*} H(X) &= E[I(X)]\\ &=E[-log(P(X))]\\ &=\sum_{i=0}^n -p(x_i)\cdot log(p(x_i)) \end{align*} H(X)=E[I(X)]=E[log(P(X))]=i=0np(xi)log(p(xi))

  • X X X​ 为随机变量
  • I ( X ) I(X) I(X) 为自信息

自信息公式推导

I ( X ) = l o g ( 1 P ( X ) ) = − l o g ( P ( X ) ) \begin{align*} I(X) &=log(\frac{1}{P(X)})\\ &= -log(P(X)) \end{align*} I(X)=log(P(X)1)=log(P(X))

1. 使用 P ( X ) P(X) P(X)

  • 根据该基本事件 X X X​ 发生
  • 自信息量 = 1 / P ( X ) 1/P(X) 1/P(X)
    • 一个基本事件发生的概率越低,代表当其发生时所 “携带的信息” 以及 “使得系统信息熵降低程度” 更大,可以更精准地定位系统状态/熵的变化幅度

2. 选用 l o g log log 的原因

  • 一条信息的可能性 “含量” 随着内存位数的增加而指数倍增加
    • 系统的实际衡量标准之一就是 “内存” 大小
  • 二进制:计算机存储信息
    • 1   b i t 1\ bit 1 bit { 0 , 1 } \{0, 1\} {0,1} → 2 1 \rightarrow 2^1 21 个状态
    • N   b i t s N\ bits N bits → 2 N \rightarrow 2^N 2N​ 个状态
  • 将信息含量按照存储方式(如二进制)转化为实际的内存大小: l o g 2 ( 2 N ) → N   b i t s log_2(2^N) \rightarrow N\ bits log2(2N)N bits
    • 整个系统中,每个最小单位所存储的信息量(标准化): i = 1 / 2 N i = 1/2^N i=1/2N
      N = l o g 0.5 ( i ) → N = l o g ( i ) → N = l o g ( 2 N ) \begin{align*} N &= log_{0.5}(i)\\ \rightarrow N &= log(i)\\ \rightarrow N &= log(2^N) \end{align*} NNN=log0.5(i)=log(i)=log(2N)
    • 对数的换底公式 l o g m / n = l o g m l o g n log_{m/n} = \frac{log_m}{log_n} logm/n=lognlogm​;因此使用 l o g 2 ,   l o g 10 log_2,\ log_{10} log2, log10 还是 l n ln ln 都不影响其含义

梯度优化

1. 在分类问题中,交叉熵等价于最大似然估计(MLE)

假设有 K 个类别进行分类;使用独热编码(one-hot)作为 y y y

  • 交叉熵(单样本,K 分类): H ( y , y ^ ) = − ∑ j = 1 K y j ⋅ l o g ( y ^ j ) H(y, \hat{y}) = -\sum_{j=1}^K y_j\cdot log(\hat{y}_j) H(y,y^)=j=1Kyjlog(y^j)
  • 最大似然估计: l ( θ ) = ∑ i = 1 n l o g P ( y i ∣ x i ; θ ) l(\theta) = \sum_{i=1}^n logP(y_i|x_i; \theta) l(θ)=i=1nlogP(yixi;θ)
  • 由于多分类问题的独热编码 target,在 K K K 个类中,只有在正确预测的位置概率才会为 1 否则为 0(与独热编码分布一致),因此将样本的真实分布作为幂,对于系统信息熵无影响
    L = − ∑ i = 1 n ∑ j = 1 K y i j ⋅ l o g ( y ^ i j ) l ( θ ) = ∑ i = 1 n ∑ j = 1 K l o g ( y ^ i j y i j ) = ∑ i = 1 n ∑ j = 1 K y i j l o g ( y ^ i j ) ⇒ − L = l ( θ ) \begin{align*} L &= -\sum_{i=1}^n\sum_{j=1}^K y_{ij}\cdot log(\hat{y}_{ij}) \\ l(\theta) &= \sum_{i=1}^n \sum_{j=1}^K log(\hat{y}_{ij}^{y_{ij}}) \\ &= \sum_{i=1}^n \sum_{j = 1}^K y_{ij}log(\hat{y}_{ij})\\ \\ &\Rightarrow -L = l(\theta) \end{align*} Ll(θ)=i=1nj=1Kyijlog(y^ij)=i=1nj=1Klog(y^ijyij)=i=1nj=1Kyijlog(y^ij)L=l(θ)

2. 为什么在误差很大的地方,均方误差会难以优化?—— 梯度消失问题

  • M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2 MSE=n1i=1n(yiy^i)2
    • y ^ i \hat{y}_i y^i y i y_i yi 的误差很大时, M S E MSE MSE y ^ i \hat{y}_i y^i 处的导数也很小
    • 当误差达到一定程度时,该处导数可能会更加趋近于零,从而导致 梯度消失问题 出现,模型无法利用梯度进一步优化损失函数
  • 在梯度优化的过程中,令 y ^ i → y i \hat{y}_i\rightarrow y_i y^iyi 则可以降低梯度
    • y ^ i > y i \hat{y}_i > y_i y^i>yi,则优化方向为 y ^ i − \hat{y}_{i-} y^i
    • y ^ i < y i \hat{y}_i < y_i y^i<yi,则优化方向为 y ^ i + \hat{y}_{i+} y^i+
    • 因此,虽然 M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 ⇔ 1 n ∑ i = 1 n ( y ^ i − y i ) 2 MSE = \frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2 \Leftrightarrow \frac{1}{n}\sum_{i=1}^n(\hat{y}_i - y_i)^2 MSE=n1i=1n(yiy^i)2n1i=1n(y^iyi)2,但通过前者的写法,其导数结果即为梯度优化的方向(不需要额外添加负号「 − - 」)
      ∂ M S E ∂ y ^ i = − 2 ( y i − y ^ i ) \begin{align*} \frac{\partial MSE}{\partial \hat{y}_i} &= -2(y_i-\hat{y}_i) \end{align*} y^iMSE=2(yiy^i)

补充定义

信息熵

  • 信息熵度量随机变量的不确定性
    • 熵越大,代表随机变量的结果越不确定,则意味着需要更多的信息来降低系统的混乱程度 → \rightarrow 降低熵
  • 根据香农的信息理论,信息熵代表了对随机变量进行压缩时的平均最小编码长度
    • 编码长度越长,代表系统中能够包含更多的信息
    • 也影响了系统在计算机中实际的内存空间大小

随机变量

  • 变量的值作为基本事件在基本空间内按照一定概率分布

KL 散度(相对熵)

  • 两个概率分布,基于其中一种的编码用于另一种的样本,所产生的额外内存需求:即由于两种分布的差异,导致系统中的熵增
    • 假设 P ( x ) P(x) P(x) 代表样本实际分布, Q ( x ) Q(x) Q(x) 代表整体的理论分布
      K L ( P ∣ ∣ Q ) = ∑ P ( x ) ⋅ l o g P ( x ) Q ( x ) = ∫ P ( x ) ⋅ l o g P ( x ) Q ( x ) ⇒ ∑ P ( x ) ⋅ [ l o g ( P ( x ) ) − l o g ( Q ( x ) ) ]   ∵ P ( x ) 为样本实际分布,无变动,对于系统的信息熵无影响 ∴ K L ( P ∣ ∣ Q ) = − ∑ P ( x ) ⋅ l o g ( Q ( x ) ) \begin{align*} KL(P||Q) &= \sum P(x)\cdot log\frac{P(x)}{Q(x)}\\ &= \int P(x)\cdot log\frac{P(x)}{Q(x)}\\ &\Rightarrow \sum P(x)\cdot [log(P(x)) - log(Q(x))]\\\ \because &P(x) 为样本实际分布,无变动,对于系统的信息熵无影响\\ \therefore &KL(P||Q) = -\sum P(x)\cdot log(Q(x)) \end{align*} KL(P∣∣Q) =P(x)logQ(x)P(x)=P(x)logQ(x)P(x)P(x)[log(P(x))log(Q(x))]P(x)为样本实际分布,无变动,对于系统的信息熵无影响KL(P∣∣Q)=P(x)log(Q(x))

参考来源

https://www.jianshu.com/p/4e2be2b562b0

https://blog.csdn.net/u012436149/article/details/54287435

https://blog.csdn.net/weixin_43846347/article/details/94363273

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值