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等价。