交叉熵和最大似然估计之间的关系

在分类的网络模型中,我们常常使用交叉熵作为损失函数,今天来梳理一下这些知识点。

 

1. 交叉熵

交叉熵作为损失函数的实际意义,这里引用这篇博文(https://blog.csdn.net/elite666/article/details/83850786)的一句话:

交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近,即拟合的更好。

 

交叉熵计算公式:

H(p, q ) = -\sum_{j=1}^{K}p(x_j)logq(x_j)

式中 x为一个离散随机变量,p(xj)表示第j类的概率。

 

假设同一随机变量X,我们有两个单独的概率分布P(x)和Q(x),那KL散度是用以描述这两个分布之间的差异。

计算公式:

D_{KL}(P||Q) = E_{x\sim P}[logP(x) - logQ(x)]

 

交叉熵和KL散度的关系:

H(P,Q) = H(P) + D_K_L(P||Q)

当分布P 是已知的,则熵是常量,此时最小化交叉熵等价于最小化KL散度。
 

 

2. 最大似然估计

我们这里先说最大似然估计的计算步骤:

(1)写出似然函数;

(2)对似然函数取对数,并整理;

(3)求导数;

(4)解似然方程。

 

似然函数:

L = \prod_{i=1}^{m}Q(x:\theta )

当我们在计算一个batch的最大似然时有

L = \frac{1}{n}\sum_{i=i}^{n}log\prod_{j=1}^{K}q_j^{p_j} = \frac{1}{n}\sum_{i=1}^{n}log(q_1^{p_1}.q_2^{p_2}... q_K^{p_k}) \\ =\frac{1}{n}\sum_{i=1}^{n}(p_1logq_1+p_2logq_2+...+p_Klogq_K) \\ =\frac{1}{n}\sum_{i=1}^{n}\sum_{j=1}^{K}p_ilog(q_i) \\ =-\frac{1}{n}\sum_{i=1}^{n}H(p, q)

实际上在使用最大似然估计时常取负数,通过上面的式子我们就可以看出,这样我们就发现最大似然和最小化交叉熵是等价的。(因为有一个负号,最小化交叉熵就是最大化似然,模型训练得到的效果是一样的)。

 

 

参考:

https://zhuanlan.zhihu.com/p/37917476

https://www.zhihu.com/question/314706587

https://blog.csdn.net/elite666/article/details/83850786

 

你可能感兴趣的:(AI,算法,神经网络,深度学习,交叉熵,最大似然)