Cross Entropy Loss —— 交叉熵Loss

交叉熵loss是常见的loss函数


Introduction

信息论中,cross entropy是两个概率分布p和q在同一事件集上度量辨认一个来自该集的事件所需平均位数,判断其编码是优化自反常概率分布q,还是真分布p。

交叉熵定义如下:

其中$H(p)$是p的,$D_{KL} (p || q)$是q自p的 Kullback–Leibler divergence(也被称为p对q的相对熵——注意这个逆转)

对于离散的p和q,这意味着:

连续分布的情况是类似的。我们必须假定p和q对某些测量r(通常r是一个Lebesgue measure on a Borel σ-algebra)是绝对连续的。设P和Q是p和q对r的概率密度函数,那么

注意:符号$H(p,q)$还有另一个概念,p和q的联合熵

Motivation

在信息论中,Kraft-McMillan理论确定了任何用于确定概率集X中一个值$x_i$的消息的直接可解码编码方案能被看做表达一个X的隐式概率分布$q(x_i) = 2^{-l_i}$,其中$l_i$是$x_i$编码位长度。因此交叉熵可以被译为当数据实际是P分布时,被错误假定为分布Q的每个已知数datum预期的消息长度。这也是为何预期是对概率分布P而不是Q。

Estimation

经常会有需要在分布p未知的情况下测量交叉熵。一个例子就是语言建模,模型基于训练集T创建,接着在测试集上测量其交叉熵,以获得模型预测测试集的准确率。在该例中,p是任何语料库corpus的词的真分布,q是模型预测的词分布。因为真分布是未知的,交叉熵无法直接计算,故用如下方程估计交叉熵:

其中N是测试集大小,q(x)是从训练集中估计的事件x的概率。这是对真交叉熵的蒙特卡洛Monte Carlo估计,把训练集当做来自p(x)的样本。

Cross-entropy minimization

交叉熵的最小化常用于优化和稀有概率估计,见交叉熵方法

当把分布q与固定参照分布p相比时,交叉熵和KL divergence都由一个加法常量决定(因为p是固定的):当p=q时都为其最小值,KL divergence是0,交叉熵是H(p)。在工程领域最小化KL divergence的原则(Kullback的“Principle of Minimum Discrimination Information”)通常称作Principle of Minimum Cross-Entropy(MCE)或Minxent。

但是如文章Kullback-Leibler divergence所讨论那样,有时q是固定的优先引用分布,p被优化未尽量接近q。在这一情形下两个最简化minimisation不相等。这导致了文献中的一些含糊,有的作者尝试通过重定义交叉熵为$D_{KL}(p||q)$而不是H(p,q)来解决这一不一致。

Cross-Entropy error function and logistic regression

交叉熵能用于机器学习和优化中定义一个loss函数。真概率$p_i$是真标签,给定分布$q_i$是当前模型的预测值。

更具体的,让我们考虑逻辑回归,是处理给定数据集将它们分类到标记为0和1的两个可能类的最基础形式。给定输入向量X,逻辑回归模型预测一个输出$y \in \{0,1\}$。建模使用的概率是逻辑函数$g(z) = \frac 1 {1+e^{-z}}$。也就是输出y = 1的概率由如下给出

其中权重向量w通过一些合适的算法如梯度下降来优化。类似的,找到输出y = 0的概率为

真概率可以类似表达为$p_{y=1} = y$和$p_{y=0} = 1 -y$。

设定好符号后,$p \in \{y, 1-y\}$和$q\in\{ \hat y, 1- \hat y\}$,我们能用交叉熵来度量p和q之间的不同:

逻辑回归通常使用的典型loss函数是对样本中的所有交叉熵取平均值。假如我们有N个样本,它们序号为$n = 1, … , N$。loss函数就为:

其中$\hat y_n \equiv g(w \cdot x_n) = 1 / ( 1 + e ^{- w \cdot x_n})$,g(z)是之前提到的逻辑函数。

逻辑loss有时也被称为交叉熵loss,有时也称为log loss(这种情况二分类标签经常标记为(-1, +1))。

参考文献

Cross entropy - Wikipedia

Cross Entropy