信息论的交叉熵与机器学习的交叉熵损失:
交叉熵在被运用到机器学习里作为损失函数前,其实已经是信息论里面的内容,交叉熵在信息论的定义是:
在p、q均是离散(discrete)分布时,上式等价为:
其中,是p分布、q分布共同的样本空间中的同一个样本点,样本空间的大小K。
机器学习所使用的交叉熵损失函数与信息论里的交叉熵略有不同:
在机器学习看来,信息论里的交叉熵仅仅是针对一个样本的交叉熵,在机器学习进行优化时,会把所有样本的交叉熵值做一个平均,即机器学习的交叉熵损失函数定义为:假设有N个样本,
因为交叉熵常用于解决分类问题,而分类问题(我们一般说分类问题,是指单标签多分类问题)的概率本质是计算类别变量的广义的伯努利分布,所以机器学习采用的是交叉熵的离散形式:
其中,是期望的类别标签,是模型对第i类别计算得到的score,通常在计算损失之前,我们会用激活函数(Sigmoid, Softmax)对score加以转换,即我们会用替代上式的。
综合以上两点,得到机器学习的交叉熵损失函数:
为什么说分类问题的概率本质是计算类别变量的广义伯努利分布呢?
因为对于分类问题,假设模型的输出层上只有2个输出结点,而且是一个二分类单标签问题,如果输出层用符号 Y 表示,那么Y从0-1分布(是二项分布的特例,或称伯努利分布,二元分布),即随机变量Y的样本空间有两个样本点(分别对应输出层的两个输出结点),每个样本点就是一个类别。我们希望机器学习模型训练出的分布是某个类别的概率为1,另一个类别的概率为0。推广到多分类单标签问题,那么Y服从广义的伯努利分布(是多项式分布的特例,或称Category分布,范畴分布,类别分布,Multinoulli分布(2012年在《Machine Learning - A Probabilistic Perspective》中正式提出))。
最小化交叉熵损失与极大似然
我们先从一个直观的例子感受最小化交叉熵损失与极大似然的关系。
已知机器学习的交叉熵损失的一般定义为:
去掉并不影响函数的单调性,机器学习任务的也可以是最小化下面的交叉熵损失:
等价于最大化下面这个函数:
不难看出,这其实就是对伯努利分布求极大似然中的对数似然函数(log-likelihood)。
下面给出伯努利分布和广义伯努利分布关于极大似然估计的严格推导过程:
伯努利分布的极大似然
有二元随机变量(e.g. 抛硬币试验),设
,那么它的概率质量函数(Probability Mass Function,PMF)为:
现在有是来自 Y 的、样本容量为 N 的一个样本(元素是0或1),似然函数为:
在机器学习模型中,对上述关于对β的定义为:
其中,,,X是D中的每个样本点对应类别的特征的集合。即给定模型参数θ和随机变量的样本点Y=1的属性特征(可以是一个向量),让模型估计出事件Y=1的概率(同时也是当前伯努利分布的参数)。
故上述的似然函数的参数不再是伯努利分布的β,而是模型的参数θ,有
易得对数似然函数(log-likelihood):
下面给出极大似然估计与最小化交叉熵损失的转化过程,意在说明在伯努利分布下,极大似然估计与最小化交叉熵损失其实是同一回事:
广义伯努利分布的极大似然
在本文第一节已经说过,广义伯努利分布(就是我们常见的Category分布)对应的是更常见的单标签多分类任务。网络上鲜有关于广义伯努利分布的极大似然估计和最小化交叉熵损失联系的过程(可能是在这个问题上,觉得伯努利分布到广义伯努利分布的过渡很简单,其实不然)。甚至有资料显示,单标签多分类任务的类别随机变量服从多项式分布,这句话只对了一半,它只服从多项式分布中试验次数为1的情况。
有K元类别随机变量
(e.g. 掷骰子试验),且
,概率质量函数为:
其中,如果, 否则,
。
这个概率质量函数之所以看上去有点奇怪,是因为它出现了函数。而符合我们直觉的是维基百科对广义伯努利分布的另一个PMF定义,即
,即直接根据列联表,获得该事件发生的概率。如果想解释上面晦涩难懂的包含Identity函数的PMF,可以用严格按照伯努利试验的描述来解释:在进行1次试验中抽到第j个类别,其他概率被抽中0次的概率,即
是来自 Y 的、样本容量为 N 的一个样本(元素是0或1),那么似然函数为:
同样地,在机器学习模型中,对上述关于对β的定义做出转变:
其中,,,X是D中的每个样本点对应类别的特征的集合。
同理上述的似然函数的参数不再是广义伯努利分布的
,而是模型的参数θ。所以似然函数有:
易得对数似然函数:
因为最大化上述式子具有约束条件的:,所以最大化上面的对数似然函数是一个条件极值问题,需要使用拉格朗日乘数法进行求解。于是加入拉格朗日乘数λ后,得到下面的关于求解广义伯努利分布下的交叉熵的拉格朗日函数:
在没有使用机器学习模型的前提下,我们只需对分布的参数和λ求偏导就能得到参数的估计值。所以理论上,我们可以直接用模型的参数记号直接表示
。
我们常用one-hot向量表示Identity函数值。
综合上述关于对函数以及
的化简,得:
下面同样给出极大似然估计与最小化广义伯努利分布的交叉熵损失函数的转化过程,意在说明在广义伯努利分布下,极大似然估计与最小化交叉熵损失也是同一回事:
小结
机器学习是一个交叉学科,当不同领域的人研究同一个课题时,难免对同一个基本概念给予了不同的解释。笔者从概率论的角度出发,对单标签多分类问题、最小化交叉熵损失给予了数学解释,即最小化单标签多分类问题的交叉熵损失,其实就是对一个类别变量的广义伯努利分布作极大似然估计。
最后感谢您的阅读。
ps:请不要在公众社交平台上擅自转发未经原发布者同意转发的内容。
领取专属 10元无门槛券
私享最新 技术干货