最大似然估计和CE的关系

本文最后更新于 2024年7月20日中午11点38分

最大似然估计和CE的关系

为了理解CE和最大似然法之间的关系, 首先理解基本概念.

信息量和熵

信息量
信息量衡量了时间的不确定性, 一个时间发生的概率越大, 不确定性就越小, 信息量就越少. 公式:

事件$x_0$, 事件发生的概率是$p(x_0)$, 若事件必然发生, $p(x_0)=1$, 信息量为0.


熵衡量了系统的混乱程度和不确定性. 熵越大,不确定性越大, 信息量越大. 熵的计算公式:

其中事件变量X, $p(x_i)$表示事件$X=x_i$的概率, $- \log p(x_i)$就是事件$X=x_i$的信息量.

可以发现, 熵是信息量的期望, 各个事件发生概率乘以其信息量. 熵越大, X取值越难确定, 系统越不稳定.

相对熵 relative entropy

相对熵也称为KL散度(Kullback-Lerbler divergence), 表示一个随机变量的两个不同分布的距离. 假设$p(x)$和$q(x)$分别是离散随机变量X的两个分布概率, 则p相对于q的相对熵是:

相对熵的性质:

  1. 如果$p(x)$和$q(x)$的分布相同, 则其相对熵=0.
  2. 相对熵不具有对称性, $D_{KL}(p||q)!=D_{KL}(q||p)$
  3. $D_{KL}(p||q)\geq 0$

交叉熵 cross entropy

假设$p(x)$和$q(x)$分别是离散随机变量X的两个分布概率, 其中$p(x)$是目标分布, $q(x)$是预测分布, p和q的交叉熵可以看做, 使用预测分布表示目标分布的困难程度:

熵,交叉熵,相对熵的关系:
根据上面的三个公式, 下面很容易推导:

在机器学习中, 目标分布$p(x)$即真实分布是固定的, 所以$H(p)$是固定的, 最小化交叉熵等价于最小化相对熵.

交叉熵损失函数 CE loss

假设batch size=n, 是m分类问题, 交叉熵损失函数的公式:

其中$p(x_i)$是真实label, $q(x_i)$是预测label, $x_i$是一个batch中的第i个向量, $x_i^j$是第i个向量的第j个元素.

最大似然估计

最大似然估计是一种参数估计. 现在对某个变量X, 我们知道它分布服从某种分布形态(二项分布/正态分布/指数分布等),但是分布的具体参数不知道。
此时可以借助从总体抽样的方式,估计未知参数。

通过一个简单例子便于理解:
假设研究对象X的分布是二项分布,即0-1分布,其中1的概率是p。如果知道p的值,就知道了分布形态的全部。但现在只是到分布形态是二项分布, 不知道具体p值是什么. 就可以通过最大似然估计求p值.

具体方法是这样: 首先抽样, 得到样本集$X=[x_1, x_2, .., x_n]$, 包含n个样本, 独立同分布. 任何一个参数$x_i$的取值概率是$p(x_i|\theta)$, 其中$\theta$是这个分布函数的未知参数. (上例中x_i为0或者1, 未知参数是p)

则得到当前样本集的概率是:

这个$P(X)$是关于未知参数$\theta$的函数. 函数$P(X)$是参数$\theta$相对于样本集X的似然函数 likelihood, 可以写作:

因为现在抽取到样本集X已成为既定事实, 这个事件发生了, 我们可以假设这个事件发生的概率尽可能大, 即我们要求未知参数$\theta$的值, 让这个似然函数$L(\theta)$的取值尽可能大, 这就是最大似然估计.

最大似然估计: 找到让似然函数$L(\theta)$的取值尽可能大的$\theta$值, $argmax L(\theta)$.

在求极值之前, 先取似然函数的对数, 得到对数似然函数. 因为似然函数是多个项的乘积, 可能会是多个小数相乘得到一个非常小的值, 造成下溢underflow.

对数似然函数:

如何求$\theta$的值, 让对数似然函数的取值最大? 先对对数似然函数求关于$\theta$的偏导数, 令偏导=0, 得到似然方程. 然后求似然方程得到$\theta$的取值.

总结, 最大似然估计的流程:
(现在知道某个变量的分布函数, 但不知道具体参数, 通过最大似然估计求未知参数.)

  1. 首先对变量X进行抽样, 得到样本集$X=[x_1, x_2, .., x_n]$.
  2. 得到似然函数 $L(\theta) = P(x_1|\theta) … P(x_n | \theta)$
  3. 得到对数似然函数 $l(\theta) = \log L(\theta) $.
  4. 进行最大似然估计 $argmax_{\theta} l(\theta)$:
    a. 把对数似然函数求关于$\theta$的偏导数, 令偏导=0, 得到似然方程.
    b. 求解似然方程得到$\theta$的取值.

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

现在知道最大似然估计maximum likelihood estimation是:

进行放缩, 两边除以样本个数n:

上述公式a是对随机变量X的函数$\log p(X | \theta)$求均值, 根据大数定理, 随着样本容量n的增加, 样本的算术平均值等于随机变量X的期望, 即:

其中, $E_X$表示变量X的函数$\log p(X | \theta)$的期望.

这样, 当样本集n很大时, 最大似然估计可以看做:

相对熵可以这样变换:

其中$q(x)$是目标分布, 是固定的, 所以$E_x (\log q(x))$是固定的; $p(x)$是预测分布.

最小化$D_{KL}(q||p)$ $\Longleftrightarrow$ 最小化$(- E_x(\log p(x)))$ $\Longleftrightarrow$ 最大化似然估计. ($\Longleftrightarrow$表示‘等价于’)

因为

最小化$D_{KL}(q||p)$等价于最小化$H(q,p)$.

所以: 最小化交叉熵$H(q,p)$ $\Longleftrightarrow$ 最大似然估计$argmax_{\theta} l(x|\theta)$.
其中q是变量x的真实分布, p是x的预测分布, $\theta$是$p(x)$的未知参数.

参考:

基础篇:
https://www.jianshu.com/p/191c029ad369
进阶篇:
https://www.cnblogs.com/wangguchangqing/p/12068084.html


最大似然估计和CE的关系
https://kangkang37.github.io/2024/07/19/likelihood/
作者
kangkang
发布于
2024年7月19日
许可协议