转载自 https://www.zhihu.com/question/65288314/answer/849294209
交叉熵这东西你如果理解为两个概率分布会发现它就是nonsense,你得把对数里面那个分布理解为真实的随机变量分布,而将对数外面那个理解为观察到的频率。然后你就会发现它就是最最原始的MLE(最大似然估计)套了个时髦的壳而已。
比如说现在有一个真实分布为 P(x) 的随机变量,我们对它进行了N次独立同分布实验,对于每个可能的结果x观察到的次数为 N(x) ,那么它的似然值就可以写成
很好理解对吧,乘法公式,把每次实验的概率乘起来,然后合并相同的项写成幂次。这是个乘积的形式,取个对数可以得到求和的形式:
这个式子有两个缺点,第一它是个负数,第二它的数值跟样本数有关,样本越多数值越小,因此除以一下总的样本数归一化,再取个相反数,然后改用频率表示:
这就齐活了。因此可以看出,交叉熵最小实质上就是似然值最大。我们可以证明,在给定 Po 的情况下,使交叉熵最小的分布P一定有 P=Po ,只需要用拉格朗日乘子法就可以: 求偏导得到
即 Po 和 P 成比例,再根据归一化条件得到 P=Po 因此在有模型约束的条件下求交叉熵最小值,也就是让模型输出的分布尽量能接近训练数据的分布。