最大似然函数、交叉熵和经验分布的关系

这是对《deep learning》书中(5.59)式和均方损失是经验分布和高斯模型之间的交叉熵的理解。

经验分布

  • 最大似然函数能推导出交叉熵,他们俩本质是一回事,推导的桥梁就是经验分布。对于连续变量,cdf累积经验分布的定义:
    (1) p ^ d a t a ( x ) = { 0 x < x 1 k / n x k ≤ x < x k + 1 1 x ≥ x k + 1 \widehat p_{data}(x)= \begin{cases} 0 & {x < x_1}\\ k/n & {x_k \leq x < x_{k+1}}\\ 1 & {x \geq x_{k+1}} \end{cases}\tag 1 p data(x)=0k/n1x<x1xkx<xk+1xxk+1(1)
    其中 x k x_k xk是已经重新按照大小排列过得,但对于连续变量,我们多用其概率密度函数,这需要用到 D i r a c   d e l t a \bold{Dirac} \ delta Dirac delta函数 δ ( x ) \delta(x) δ(x):
    δ ( x ) = { + ∞ x = 0 0 x k ≠ 0 \delta(x)=\left\{ \begin{array}{rcl} +\infty && {x = 0}\\ 0 && {x_k \neq 0} \end{array} \right. δ(x)={+0x=0xk̸=0
    并且 δ ( x ) \delta(x) δ(x)满足以下概率密度函数的约束:
    (2) ∫ − ∞ + ∞ δ ( x ) d x = 1 \int_{-\infty}^{+\infty}\delta(x)dx=1 \tag 2 +δ(x)dx=1(2)
    δ ( x ) \delta(x) δ(x)被定义在除了0以外,所有点的值都为0,但其积分为1,显然这不是正常的积分函数, δ ( x ) \delta(x) δ(x)被称为广义函数,广义函数是依据积分性质定义的数学对象。

    依据维基百科,还有下面的性质:
    (3) ∫ − ∞ + ∞ f ( x ) δ ( x ) d x = f ( 0 ) \int_{-\infty}^{+\infty}f(x)\delta(x)dx=f(0) \tag 3 +f(x)δ(x)dx=f(0)(3)
    现在来定义经验分布的概率密度:
    (4) p ^ ( x ) = 1 N ∑ i = 1 N δ ( x − x i ) \hat p(x)=\frac 1 N \sum_{i=1}^N\delta(x-x_i) \tag 4 p^(x)=N1i=1Nδ(xxi)(4)
    可以看出,对于训练集,经验分布将每一个 x i x_i xi的概率 p ^ d a t a ( x i ) \hat p_{data}(x_i) p^data(xi)定为 1 / N 1/N 1/N,可以简单的从下式子看出:
    (4-1) p ^ d a t a ( x = x i ) = ∫ − ∞ x i 1 N ∑ j = 1 N δ ( x i − x j ) d x = ∫ − ∞ + ∞ 1 N ∑ j = 1 N δ ( x i − x j ) d x = 1 N \hat p_{data}(x=x_i)=\int_{-\infty}^{x_i}\frac 1 N \sum_{j=1}^N \delta(x_i-x_j)dx=\int_{-\infty}^{+\infty}\frac 1 N \sum_{j=1}^N \delta(x_i-x_j)dx=\frac 1 N \tag {4-1} p^data(x=xi)=xiN1j=1Nδ(xixj)dx=+N1j=1Nδ(xixj)dx=N1(4-1)
    由此可以得到函数 f ( x ) f(x) f(x)关于经验分布的期望:
    (4-2) E x ∼ p ^ d a t a = ∫ − ∞ + ∞ p ^ ( x ) f ( x ) d x = ∫ − ∞ + ∞ 1 N ∑ i N δ ( x − x i ) f ( x ) d x = 1 N ∑ i N ∫ − ∞ + ∞ δ ( x − x i ) f ( x ) d x = 1 N ∑ i N f ( x i ) \begin{aligned} E_{x\sim \hat p_{data}} &=\int_{-\infty}^{+\infty} \hat p(x)f(x)dx\\ &=\int_{-\infty}^{+\infty}\frac 1 N \sum_i^N \delta(x-x_i)f(x)dx\\ &=\frac 1 N \sum_i^N \int_{-\infty}^{+\infty}\delta(x-x_i)f(x)dx\\ &=\frac 1 N \sum_i^N f(x_i) \end{aligned} \tag {4-2} Exp^data=+p^(x)f(x)dx=+N1iNδ(xxi)f(x)dx=N1iN+δ(xxi)f(x)dx=N1iNf(xi)(4-2)
    上式中第3步用到了式 ( 3 ) (3) (3)

    对于离散变量,就简单多了, p ^ d a t a ( X = x ) = v ( X = x ) / N \hat p_{data}(X=x)=v(X=x)/N p^data(X=x)=v(X=x)/N .其中 v ( X = x ) v(X=x) v(X=x)表示 x x x出现的频数, N N N是样本训练集总数。

关系推导

  • 考虑到分类问题(离散型),最大似然估计:
    (5) P ( X ; θ ) = ∏ k q N ∗ p k ( C k ; θ ) P(X;\theta)=\prod_kq^{N*p_k}(C_k;\theta) \tag5 P(X;θ)=kqNpk(Ck;θ)(5)
    其中 p k p_k pk是第k类出现的频率,也就是经验分布,对似然估计取 l o g log log似然,再 1 N \frac1 N N1,得到:
    (6) L = ∑ k ( p k ) l o g q ( C k , θ ) L=\sum_k(p_k)logq(C_k,\theta) \tag {6} L=k(pk)logq(Ck,θ)(6)
    显然 ( 3 ) (3) (3)式就是交叉熵 H ( p , q ) = − ∫ p ( x ) log ⁡ q ( x ) d x = − ∑ k p k log ⁡ q k H(p,q) = -\int{p(x)}\log{q(x)} dx=-\sum_k{p_k}{\log q_k} H(p,q)=p(x)logq(x)dx=kpklogqk

  • 考虑回归问题(连续型) ,给定一组含有 N N N个样本的 X = { x ( 1 ) , . . . x ( N ) } X=\{x_{(1)},...x_{(N)}\} X={x(1),...x(N)} x i ∈ R x_i\in R xiR,独立的由真是数据生成分布 P d a t a P_{data} Pdata生成, P m o d e l P_{model} Pmodel是一族由 θ \theta θ为参数的概率密度函数 p d f pdf pdf,用来估计真实的概率密度函数 P d a t a P_{data} Pdata,最大似然估计:
    (7) θ M L = arg ⁡ max ⁡ θ ∏ i N p m o d e l ( x i ; θ ) = arg ⁡ max ⁡ θ ∑ i N log ⁡ p m o d e l ( x i ; θ ) = arg ⁡ max ⁡ θ 1 N ∑ i N log ⁡ p m o d e l ( x i ; θ ) = arg ⁡ max ⁡ θ E x ∼ p ^ d a t a log ⁡ p ( x ; θ ) = arg ⁡ max ⁡ θ − H ( p ^ d a t a , p m o d e l ) = arg ⁡ min ⁡ θ H ( p ^ d a t a , p m o d e l ) \begin{aligned} \theta_{ML} &=\arg\max\limits_{\theta}\prod_i^N{p_{model}(x_i;\theta)}\\ &=\arg\max\limits_{\theta}\sum_i^N{\log p_{model}(x_i;\theta)}\\ &=\arg\max\limits_{\theta}\frac 1 N\sum_i^N{\log p_{model}(x_i;\theta)}\\ &= \arg\max\limits_{\theta}E_{x\sim{\widehat p_{data}}}\log p(\bold x;\theta)\\ &=\arg\max\limits_{\theta}-H(\widehat p_{data},p_{model})\\ &=\arg\min\limits_{\theta}H(\widehat p_{data}, p_{model}) \end{aligned} \tag 7 θML=argθmaxiNpmodel(xi;θ)=argθmaxiNlogpmodel(xi;θ)=argθmaxN1iNlogpmodel(xi;θ)=argθmaxExp datalogp(x;θ)=argθmaxH(p data,pmodel)=argθminH(p data,pmodel)(7)
    以上第3步对上式乘以 1 N \frac {1}{N} N1不影响结果,第3步到第4步用到了公式 ( 4 − 1 ) 和 ( 4 − 2 ) (4-1)和(4-2) (41)(42)。从此推导可以看出最大似然估计、交叉熵和经验分布的关系:

    对于概率模型,最大似然估计是训练集上的经验分布和建立在模型上的概率分布之间的交叉熵。

  • 考虑这样一个问题:对于连续型问题,为何可以用概率密度来进行最大似然估计?
    (8) P ( x ; θ ) = ∫ Ω p ( x 1 , . . . x N ) d x 1 . . . d x N = ∫ Ω p ( x 1 ) . . . p ( x N ) d x 1 . . . d x N = ∫ Ω ∏ i = 1 N p ( x i ) d x 1 . . . d x N \begin{aligned} P(\bold x;\theta) &=\int_{\Omega} p(x^{1},...x^{N}){dx^1...dx^N}\\ &=\int_{\Omega} p(x^{1})...p(x^{N}){dx^1...dx^N}\\ &=\int_{\Omega} \prod_{i=1}^{N} p(x^i){dx^1...dx^N} \end{aligned} \tag 8 P(x;θ)=Ωp(x1,...xN)dx1...dxN=Ωp(x1)...p(xN)dx1...dxN=Ωi=1Np(xi)dx1...dxN(8)
    x i x^i xi x \bold x x i i i个位置对应的元素变量,可见要使得 P ( x ; θ ) P(\bold x;\theta) P(x;θ)最大化,只要使得积分量 ∏ i = 1 N p ( x i ) \prod_{i=1}^{N}p(x^i) i=1Np(xi)最大即可。

例子:均方损失

在此先要说一下,对于我们遇到的问题,都是输入和输出构成的样本,也就是这样的训练集 { ( x i , y i ) , . . . , ( x N , y N ) } \left\{(x_i,y_i),...,(x_N,y_N) \right\} {(xi,yi),...,(xN,yN)},上面的分析如何用到这上面?用条件概率 p ( y / x ; θ ) p(y/x;\theta) p(y/x;θ)来替代上面的 p ( x ) p(x) p(x)即可。

回到当前的讨论:均方损失是经验分布和模型是高斯分布之间的交叉熵,如何分析?

假设样本 i i d iid iid,那么条件对数似然乘以 1 N \frac 1 N N1就是:
(9) − H ( p ^ d a t a , p m o d e l ) = E x ∼ p ^ d a t a log ⁡ p ( x ; θ ) = 1 N ∑ i N log ⁡ p ( y i / x i ; θ ) = − 1 N ( ∑ i N ∥ y ^ i − y i ∥ 2 2 σ − m log ⁡ σ − m 2 log ⁡ ( 2 π ) ) -H(\widehat p_{data},p_{model})=E_{x\sim{\widehat p_{data}}}\log p(\bold x;\theta)=\frac 1 N\sum_i^N\log p(y_i/x_i;\theta)=-\frac 1 N(\sum_i^N \frac {\| \hat y_i-y_i\|^2} {2\sigma}-m\log\sigma-\frac m 2 \log(2\pi)) \tag9 H(p data,pmodel)=Exp datalogp(x;θ)=N1iNlogp(yi/xi;θ)=N1(iN2σy^iyi2mlogσ2mlog(2π))(9)
均方损失:
M S E t r a i n = 1 N ∑ i N ∥ y ^ i − y i ∥ 2 MSE_{train}=\frac 1 N \sum_i^N \|\hat y_i-y_i\|^2 MSEtrain=N1iNy^iyi2
可以看出两者是等价的。

参照:《deep learning》

你可能感兴趣的:(机器学习)