Press "Enter" to skip to content

损失函数与极大似然估计的联系 | 交叉熵的理解

文章目录

 

深度学习需要定义损失函数,其中,线性回归的损失函数是平方损失MSE,softmax回归(包括logistic回归)使用交叉熵,为什幺会选择不同的损失函数,其中有什幺原理?这就和最大似然有关系了。

 

极大似然

 

极大似然估计是,在已知分布,给定样本的情况下,求一个参数值,使得 P ( θ ∣ X ) P(\theta|X) P ( θ ∣ X ) 最大,即令样本拟合给定分布的概率最大,这恰好对应于我们深度学习中的目标:寻找最优化的w,b参数,令模型对结果的预测概率最大。

 

所以理论上来说,应该先进行极大似然估计,然后再从极大似然估计的公式中提取损失函数部分。

 

平方损失

 

平方损失

 

线性回归中,模型中有干扰噪声,这个噪声服从正态分布,那幺已知分布,就可以对这个噪声进行极大似然估计。

 

首先写出噪声公式,然后这个噪声符合正态分布,这样就得到一个样本的噪声分布概率。

 

将所有噪声的正态分布概率累乘,得到总体样本噪声的正态分布概率,让这个概率最大即可满足我们的模型假设:在线性回归中噪声服从正态分布。

 

要让P最大,那就得令右边的损失项最小。

 

交叉熵损失

 

假设有三个类型,那幺经过softmax计算,结果已经归一化为概率预测。

 

归一化以后的数据,已经没有了所谓模型分布的假设,那应该取什幺为似然概率呢?

 

粗暴一点,直接一点,对于一个样本,我们不假设分布,直接用对应项的预测概率作为P,比如对于单热点编码为(0,1,0)的项,那预测向量(0.1,0.7,0.2)中的第二项就是P,对于单热点编码为(0,0,1)的项,预测向量为(0.5,0.2,0.3)中的第三项就是P。我们要做的,就是让P最大,越接近1越好。

 

那为什幺还要用交叉熵这个公式呢?这是因为你不知道到底哪项是你要的P值,单热点编码中的0与1就可以实现自动选择,将我们要的P值选出来。原理也很简单,因为交叉熵每一项的系数都是单热点编码值,只有一个是1,其他都是0,最后就只剩下1项,就是我们的目标项。

 

比如(0.1,0.7,0.2) (0,1,0),这两个用交叉熵以后, 1 × l o g ( 0.7 ) + 0 × l o g ( 0.2 ) + 0 × l o g ( 0.1 ) = l o g ( 0.7 ) 1\times log(0.7)+0\times log(0.2)+0\times log(0.1)=log(0.7) l o g ( 0.7 ) + l o g ( 0.2 ) + l o g ( 0.1 ) = l o g ( 0.7 ) ,发现没,最后只剩一项log( P ),log是单调的,所以log ( P )就可以代表P的大小。

 

至于所有样本的P,自然是累乘,经过log对数化后,将所有项的交叉熵加起来即可。

 

最后,因为要最小化,所以交叉熵前面带负号。

 

logistic的特殊化

 

logistic相当于1,0的单热点编码,所以只有两项,而且其中一项为0。

 

维度问题

 

在线性回归中,最后n个样本可以产生一个n维向量,对n维向量求均值就可以得到最后的损失。而softmax回归输出一个 n × c l a s s e s n\times classes c l a sses 维矩阵,但是经过交叉熵计算以后,又重新将classes个维度降成1个维度,生成同线性回归一样的n维向量,最后求均值即可。

 

所以先softmax再交叉熵的过程,保持了维度不变。

 

交叉熵的信息论理解

 

对于交叉熵,除了从最大似然角度,还可以从信息论角度理解。

 

信息论中交叉熵

 

对于一个事件,其可能结果用j来区分,对于第j种结果,其惊异程度用信息量衡量。

 

l o g 1 P ( j ) log \dfrac{1}{P(j)} l o g

 

当P为1,说明不惊异,信息量为0,当P趋近于0,就越发惊异,信息量也就越大。

 

 

上面有一句话:在 (3.4.11)中定义的熵, 是当分配的概率真正匹配数据生成过程时的信息量的期望。

 

这句话不好理解,我做一个解释。

 

一个事件是有不同的结果的,每一种结果都有一个信息量,那如何衡量一个事件整体的信息量呢?自然我们可以想到期望,对每一个结果,用他的概率乘以他的信息量,最后求和,熵就是将所有结果的信息量期望计算出来得到的。

 

这句话说的比较晦涩,动手学深度学习提升空间还是有很多的。

 

什幺是主观概率?这个观测者指的是模型,其生成的概率向量为Q,比如(0.2,0.7,0.1),实际的概率向量为P(0,1,0)。如果P和Q差异较大,交叉熵肯定就大,如果P=Q,也就是当Q=(0,1,0)完美预测的时候,交叉熵最小,为0。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注