watch: DL - 王木头 05 | Info Quantity & Cross Entropy

Table of contents

Source video: 5-“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

信息量

  • 事件发生 概率 的负对数 -log₂ p

  • 若$f(p)$ 被定义为信息量,要让体系自洽则需满足:

    $$ \begin{aligned} f(p) & \coloneqq 信息量 \\\ f(p_1 ⋅ p_2) & = f(p_1) + f(p_2) \end{aligned} $$

    对于阿根廷从八强打到冠军这件事,可以拆成两件事:阿根廷进入决赛+阿根廷赢了决赛。

    1. 这两种描述的信息量是一样的:$f$(阿根廷夺冠) = $f$(阿根廷进入决赛) + $f$(阿根廷赢了决赛) $\Rightarrow f(\frac{1}{8}) = f(\frac{1}{4}) + f(\frac{1}{2})$

    2. 另外还要满足事件间的概率关系:P(阿根廷夺冠) = P(阿根廷进入决赛) ⋅ P(阿根廷赢了决赛)

    所以选择 log 函数,可以满足自洽;从直观来看,发生概率越小,所含信息量越大, 而 log 函数是递增的,所以系数取 -1;而底数可以选 e,也可选 2。

    $$ f(x) \coloneqq -log_2 x $$

    底数选2,相当于用抛硬币事件来衡量信息量。某事件的发生概率是 1/8,相当于抛3个硬币全部朝上的概率。并且以 2 为底计算出的信息量的单位是比特。类似地,输入 16 比特的数据就是把 16 个 0/1 确定下来

  • 系统中各事件信息量的 期望

    $$ \begin{aligned} &H(P) \coloneqq E(P_f) \\\ &= ∑_{i=1}^m p_i ⋅ f(p_i) = ∑_{i=1}^m p_i(-log_2p_i) \\\ &= -∑_{i=1}^m p_i ⋅ log_2 p_i \end{aligned} $$
  • 衡量整个系统中的所有事件的不确定性

KL散度 (相对熵)

  • 系统Q相对于系统P差多少:事件 i 在两系统中的 信息量之差,按照 i 在系统 P 中的概率加权求和。

    $$ D_{KL}(P\\|Q) = ∑_{i=1}^m p_i ⋅ (-log_2 q_i) - ∑_{i=1}^m p_i ⋅ (-log_2 p_i) $$
  • 无法直接对比两个不同种类模型之间的差异(无法公度),而且人脑中的概率模型不清楚,无法求熵,需要 相对熵

    Q系统P系统的概率分布

    对于某事件 $i$ 在系统 Q 中的信息量 $f_Q(q_i)$ 减去它对应到在系统 P 中的信息量 $f_P(p_i)$,再按照在系统 P 中的概率 $p$ 求期望:

    $$ \begin{aligned} D_{KL} (P \\| Q) & \coloneqq ∑_{i=1}^m p_i ⋅ \left(f_Q(q_i) - f_P(p_i)\right) \\\ &= ∑_{i=1}^m p_i ⋅ \left((-log_2 q_i) - (-log_2 p_i)\right) \\\ &= \underbrace{∑_{i=1}^m p_i ⋅ (-log_2 q_i)}_{交叉熵H(P,Q)}- \underbrace{∑ᵢ₌₁ᵐ pᵢ⋅ (-log₂pᵢ)}\_{P的熵} \end{aligned} $$

    如果事件 i 在两系统中的信息量相等,差值为0,说明两个系统完全相等。

    根据吉不斯不等式:

    如果有两个概率系统,$∑_{i=1}^n p_i = ∑_{i=1}^n q_i = 1$,且 $p_i, q_i \in (0,1]$,则有:

    $$ \- ∑_{i=1}^n p_i log_{p_i} ≤ -∑_{i=1}^n p_i log_{q_i} $$

    当且仅当 $p_i = q_i\ ∀ i$ 时,等号成立。

    也就是说 KL 散度恒大于等于0(距离)。

交叉熵

  • $$ H(P,Q) = ∑_{i=1}^m p_i ⋅ (- \operatorname{log}_2 q_i) $$
  • 事件 i 在概率系统 Q 中的信息量,按照 i 在系统 P 中的概率加权求和

  • 为了使 KL 散度最小,即概率系统 Q 最接近系统P,就需要交叉熵最小(最接近系统P的熵)

  • 对于一张图片,人脑系统(目标系统 P)只有 2 个事件:是猫和不是猫 (“是猫"事件发生的概率为 x,则"非猫"事件发生的概率为 1-x), 神经网络(系统Q)的结果(y)是像猫的概率,所以交叉熵为:

    $$ \begin{aligned} H(P,Q) &= ∑_{i=1}^2 p_i ⋅ (-log_2 q_i) \\\ &= x ⋅ log(y) + (1-x) ⋅ log(1-y) \\\ &= 1 ⋅ log(y) + 0 ⋅ log(1-y) \end{aligned} $$
Built with Hugo
Theme Stack designed by Jimmy