交叉熵理解

Likelihood (似然) 与 Maximun Likelihood Estimation

似然与概率

概率是已知模型的参数,求某个事情发生的可能性。概率可以表示为 p ( x ∣ Θ ) p(x|\Theta) p(x∣Θ)

似然是根据统计信息,推测产生这种统计结果的可能参数,似然可表示为 L ( x ∣ Θ ) L(x|\Theta) L(x∣Θ)

在结果和参数相互对应时,概率与似然在值上是相等的,但是意义并不相同。

极大似然估计中采样需满足一个重要的假设,就是所有的采样都是独立同分布的(即采样得到的样本的分布,要与所有样本总体的分布相同)。

似然函数

概率描述的是在一定条件下某个事件发生的可能性,概率越大说明这件事情越可能会发生;而似然描述的是结果已知的情况下,该事件在不同条件下发生的可能性,似然函数的值越大说明该事件在对应的条件下发生的可能性越大。–https://zhuanlan.zhihu.com/p/22092462

如抛硬币,我们可以假设抛硬币的模型是 二项分布

则似然函数
f ( x ; Θ ) = { Θ , if x = 1 1 − Θ , if x = 0 f(x;\Theta) = \begin{cases} \Theta, & \text{if x = 1}\\ 1-\Theta, & \text{if x = 0} \end{cases} f(x;Θ)={Θ,1Θ,if x = 1if x = 0
也可以写成
f ( x ) = Θ x ( 1 − Θ ) 1 − x , x ∈ 0 , 1 f(x) = \Theta^x(1-\Theta)^{1-x}, x\in{0,1} f(x)=Θx(1Θ)1x,x0,1
若抛十次的统计数据 x 是: 反正正正正反正正正反

则似然函数为
f ( x ) = ( 1 − Θ ) × Θ × Θ × Θ × Θ × ( 1 − Θ ) × Θ   × Θ   × Θ × ( 1 − Θ ) = Θ 7 ( 1 − Θ ) 3 f(x) = (1-\Theta) \times \Theta\times \Theta\times \Theta\times \Theta\times (1-\Theta) \times\Theta\ \times\Theta\ \times\Theta \times(1-\Theta) =\Theta^7(1-\Theta)^3 f(x)=(1Θ)×Θ×Θ×Θ×Θ×(1Θ)×Θ ×Θ ×Θ×(1Θ)=Θ7(1Θ)3
令似然函数的骗到数为 0, 求得极大值;

这里 Θ \Theta Θ 有无数种选择,但是选取的原则应该是选择 Θ \Theta Θ 是的出现该统计结果的可能性最大

Θ = 0.7 \Theta = 0.7 Θ=0.7 时,似然函数取得最大值,也可以画出图直观地看

参考:https://blog.csdn.net/u011508640/article/details/72815981

Entropy (熵)

信息量

设 X 是一个离散型随机变量, 其取值为集合 $ X = {x_0, x_1, x_2, …, x_n}$, 则其概率分布函数为

p ( x ) = P r ( X = x ) , x ∈ X p(x) = P_r(X=x), x\in X p(x)=Pr(X=x),xX, 则定义时间 X = x 0 X=x_0 X=x0的信息量为:
I ( x 0 ) = − l o g ( p ( x 0 ) ) I(x0) = -log(p(x_0)) I(x0)=log(p(x0))
p ( x 0 ) = 1 p(x0) = 1 p(x0)=1 时,该事件必定发生,其信息量为 0

熵是用来衡量一个系统的混乱程度的,代表系统中信息量的总和。其计算公式如下
H ( x ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(x) = -\sum_{i=1}^np(x_i)log(p(x_i)) H(x)=i=1np(xi)log(p(xi))
其中 p ( x i ) p(x_i) p(xi)为事件 X = x i X=x_i X=xi的概率, − l o g ( p ( x i ) ) -log(p(xi)) log(p(xi))为事件 X = x i X=x_i X=xi的信息量。熵就是所有事件的信息量的加权和(信息量的期望值)

Kullback-Leibler (KL) divergence (KL 散度/ Relative Entropy相对熵)

相对熵也称为 KL 散度, 表示同一个随机变量的两个不同分布的距离。

p ( x ) p(x) p(x) q ( x ) q(x) q(x)分别是离散随机变量 X 的两个概率分布, 则 p 对 q 的相对熵( KL散度)是:
D K L ( p ∣ ∣ q ) = ∑ i p ( x i ) l o g ( p ( x i ) p ( y i ) ) D_{KL}(p||q) = \sum_i p(x_i)log(\frac{p(x_i)}{p(y_i)}) DKL(p∣∣q)=ip(xi)log(p(yi)p(xi))
相对熵具有一下性质:
1. 如果 p(x)和 q(x) 的分布相同,则其相对熵等于 0
2. D K L ( p ∣ ∣ q ) ≠ D K L ( q ∣ ∣ p ) ,也就是相对熵不具有对称性。 D_KL(p||q) \neq D_KL(q||p) \text{,也就是相对熵不具有对称性。} DKL(p∣∣q)=DKL(q∣∣p),也就是相对熵不具有对称性。
3. D K L ( p ∣ ∣ q ) ≥ 0 D_KL(p||q) \geq 0 DKL(p∣∣q)0

在实际应用中,假如p(x)是目标真实的分布,而q(x)是预测得来的分布,为了让这两个分布尽可能的相同的,就需要最小化 KL散度
交叉熵

p ( x p(x p(x), q ( x ) q(x) q(x)分别是 离散随机变量X的两个概率分布,其中 p ( x ) p(x) p(x) 是目标分布, p p p q q q 的交叉熵可以看做是,使用分布 q ( x ) q(x) q(x) 表示目标分布 p ( x ) p(x) p(x) 的困难程度
H ( p , q ) = ∑ i p ( x i ) l o g ( 1 l o g q ( x i ) ) = − ∑ i p ( x i ) l o g q ( x i ) H(p,q) = \sum_ip(x_i)log(\frac{1}{logq(xi)}) = -\sum_i p(x_i)logq(x_i) H(p,q)=ip(xi)log(logq(xi)1)=ip(xi)logq(xi)
将熵、相对熵以及交叉熵的关系
熵:  H ( p ) = ∑ i p ( x i ) l o g p ( x i ) KL散度:  D K L ( p ∣ ∣ q ) = ∑ i ( p ( x i ) l o g p ( x i ) − p ( x i ) l o g q ( x i ) ) 交叉熵:  H ( p , q ) = − ∑ i p ( x i ) l o g q ( x i ) \text{熵: } H(p) = \sum_i p(x_i)logp(x_i) \\ \text{KL散度: } D_{KL}(p||q) = \sum_i (p(x_i)logp(x_i) - p(xi)logq(xi)) \\ \text{交叉熵: } H(p,q) = -\sum_ip(x_i)logq(x_i) 熵: H(p)=ip(xi)logp(xi)KL散度DKL(p∣∣q)=i(p(xi)logp(xi)p(xi)logq(xi))交叉熵: H(p,q)=ip(xi)logq(xi)
通过上面三个公式就可以得到
D K L ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) D_{KL}(p||q) = H(p,q) - H(p) DKL(p∣∣q)=H(p,q)H(p)
从上面可以看到 KL 散度 = 交叉熵 - 熵

在机器学习中,目标的分布 p(x) 通常是训练数据的分布是固定的,即 H§ 是一个常量。这样两个分布的交叉熵,也就等价于最小化这两个分布的相对熵。

设p(x) 是目标分布(训练数据的分布),我们的目标的就让训练得到的分布q(x)尽可能的接近 p(x),这时候就可以最小化 $D_KL(p,q)$,等价于最小化交叉熵 $H(p,q)$ 。

从最大似然函数看交叉熵

设有一组训练样本 X = x 1 , x 2 , x 3 , … , x m X = {x_1, x_2, x_3, …, x_m} X=x1,x2,x3,,xm,该样本的分布为 p ( x ) p(x) p(x)。假设使用 Θ \Theta Θ 参数化模型得到 q ( x ; Θ ) q(x;\Theta) q(x;Θ),现在用这个模型估计 X 的概率分布( Θ \Theta Θ), 得到似然函数:
L ( Θ ) = q ( X ; Θ ) = ∏ i m q ( x i ; Θ ) L(\Theta) = q(X;\Theta) = \prod_{i}^{m}q(x_i;\Theta) L(Θ)=q(X;Θ)=imq(xi;Θ)
最大似然估计就是求 参数 Θ \Theta Θ 是的 似然函数 L ( Θ ) L(\Theta) L(Θ) 最大, 也就是
Θ M L = arg,max ⁡ Θ ∏ i m q ( x i , Θ )   \Theta_{ML} \begin{gathered} = \operatorname*{arg,max}_\Theta \prod_i^m q(x_i,\Theta) \ \end{gathered} ΘML=Θarg,maximq(xi,Θ) 
对上面的式子两边取 log,等价于优化 log 的最大似然估计,即 log-likehood,对最大似然估计

并对式子进行缩放(式子右边除以样本的个数 m)不会改变 argmax 的解
Θ M L = arg,max ⁡ Θ 1 m ∑ i m l o g q ( x i , Θ ) \Theta_{ML} \begin{gathered} =\operatorname*{arg,max}\Theta \frac{1}{m} \sum_i^mlog q(x_i,\Theta) \end{gathered} ΘML=arg,maxΘm1imlogq(xi,Θ)
上式最大化 Θ M L \Theta{ML} ΘML 和训练样本是没有关联的,就需要某种变换使其可以用训练样本的分布来表示,因为训练样本的分布可以看作是已知的,也是对最大似然的一个约束

上是的 $ \frac{1}{m} \sum_i^mlogq(x_i,\Theta)$ 相当于求 随机变量 X 的函数 l o g ( X ; Θ ) log(X;\Theta) log(X;Θ) 的均值

根据大数定理,当样本容量趋于无穷时,样本的均值趋于其期望。也就是说
1 m ∑ i m l o g q ( x i , Θ ) → E x ∼ p ( l o g q ( x ; Θ ) ) \frac{1}{m} \sum_i^mlog q(x_i,\Theta) \rightarrow E_{x\sim p}(logq(x;\Theta)) m1imlogq(xi,Θ)Exp(logq(x;Θ))
其中 E X ∼ P E_{X \sim P} EXP 表示符合样本分布 P 的期望,这样就将最大似然估计使用真实样本的期望来表示。对右边取符号,将最大化变成最小化
Θ M L = arg,max ⁡ Θ E X ∼ P ( l o g q ( x ; Θ ) )   = arg,min ⁡ Θ E X ∼ P ( − l o g q ( x ; Θ ) ) \Theta_{ML} \begin{gathered} =\operatorname*{arg,max}\Theta E{X \sim P}(logq(x;\Theta)) \end{gathered} \ \begin{gathered} =\operatorname*{arg,min}\Theta E{X \sim P}(-logq(x;\Theta)) \end{gathered} ΘML=arg,maxΘEXP(logq(x;Θ)) =arg,minΘEXP(logq(x;Θ))
KL 散度
D K L ( p ∣ ∣ q ) = ∑ i p ( x i ) l o g ( p ( x i ) q ( x i ) ) x 是训练样本,其分布已知 = E x ∼ p ( l o g p ( x ) q ( x ) ) = E x ∼ p ( l o g p ( x ) − l o g ( q ( x ) ) = E x ∼ p ( l o g ( p ( x ) ) − E x ∼ p ( l o g q ( x ) ) D_{KL}(p||q) = \sum_i p(x_i) log(\frac{p(x_i)}{q(x_i)})\\ \text{x 是训练样本,其分布已知}\\ = E_{x\sim p}(log \frac{p(x)}{q(x)})\\ = E_{x\sim p}(log p(x) - log(q(x))\\ =E_{x\sim p}(log(p(x)) - E_{x\sim p}(logq(x)) DKL(p∣∣q)=ip(xi)log(q(xi)p(xi))是训练样本,其分布已知=Exp(logq(x)p(x))=Exp(logp(x)log(q(x))=Exp(log(p(x))Exp(logq(x))
由于 E x ∼ p ( l o g ( p ( x ) ) E_{x\sim p}(log(p(x)) Exp(log(p(x)) 是训练样本的期望,是个常数,因此在求最小值的时候可以忽略,所以最小化 D K L ( p ∣ ∣ q ) D_{KL}(p||q) DKL(p∣∣q) 就变成了最小化 − E x ∼ p ( l o g q ( x ) ) - E_{x\sim p}(logq(x)) Exp(logq(x)), 这和最大似然估计是等价的

最大化似然函数,等于求
arg min ⁡ Θ E X ∼ P ( − l o g q ( x ; Θ ) ) \begin{gathered} \operatorname*{arg\,min}_\Theta E_{X \sim P}(-logq(x;\Theta)) \end{gathered} ΘargminEXP(logq(x;Θ))

因此最小化 KL 散度等于求 $\Theta$ 使得似然函数最小

而训练参数的熵是已知的,因此等价于最小化交叉熵

交叉熵可以用于计算“学习模型的分布”与“训练数据分布”之间的不同。当交叉熵最低时(等于训练数据分布的熵),我们学到了“最好的模型”。

Reference

一文搞懂交叉熵损失 - Brook_icv - 博客园 (cnblogs.com)

https://blog.csdn.net/u011508640/article/details/72815981

你可能感兴趣的:(概率论,算法)