Cross Entropy和Negative Log Likelihood

机器学习中损失函数经常会使用Cross Entropy和Negative Log Likelihood两个概念。两者本质上等价,概念上讲,Cross Entropy基于信息论,Negative Log Likelihood基于最大似然。

Cross Entropy

先来看Cross Entropy,即交叉熵。为了理解交叉熵,先来了解什么是Entropy熵。信息论中熵的公式定义为:

\[H(X) = -\sum_{i=1}^{n}p \left( x_i \right) \log \left( p\left( x_i \right) \right) \]

其中,$ I \left( x \right) = - \log P \left(x \right) $ 表示某一事件 $ X = x $ 的自信息。由于概率值$ P \left(x \right) $取值范围为 $ \left[0, 1 \right] $,对其取对数后,值范围为 $ \left(- \infty, 0 \right] $,再加上负号,值范围为 $
\left[0, \infty \right ) $ 。

交叉熵的定义包含p和q两个分布,定义为:

\[H \left(p, q \right) = - \sum_{i=1}^{n} p \left( x_i \right) \log \left( q \left( x_i \right) \right) \]

p表示X的真实分布,机器学习中为y的标签值。q表示X的估计分布,机器学习中对应y的预测值。

Negative Log Likelihood

likelihood表示似然,和概率的区别在于:

  • 概率P表示在给定分布参数W的前提下,观测事件X出现的可能性
  • 似然L表示在给定观测事件X的前提下,分布参数W出现的可能性

用公式表达:

\[L \left(x_1, \cdots, x_m \vert W \right) = P \left(x_1, \cdots, x_m \vert W \right) \]

可以看出概率和似然的值相同,但各自的含义要有明确区分。

Negative Log Likelihood表示为:

\[- \log L \left(x_1, \cdots, x_m \vert W \right) \]

根据样本独立性,上式作出以下变换:

\[- \log L \left(x_1, \cdots, x_m \vert W \right) = - \log \prod_{j=1}^{m} L \left(x_j \vert W \right) = - \sum_{j=1}^{m} \log L \left(x_j \vert W \right) \]

注意到上式中X的索引为j,表示不同样本,对上式除以m,求平均值,将表达式索引转为i,表示样本的不同取值:

\[-\frac{1}{m} \sum_{j=1}^{m} \log L \left(x_j \vert W \right) = - \sum_{i=1}^{n} p \left( x_i \right) \log L \left(x_i \vert W \right) \]

接下来,将似然函数L看成是X的概率函数,得到:

\[- \sum_{i=1}^{n} p \left( x_i \right) \log L \left(x_i \vert W \right) = - \sum_{i=1}^{n} p \left(x_i \right) \log q \left(x_i \right) \]

即证明了Cross Entropy和Negative Log Likelihood等价。

参考资料

posted @ 2022-10-27 20:28  g2012  阅读(691)  评论(0)    收藏  举报