
众所周知,softmax+cross entropy是在线性模型、神经网络等模型中解决分类问题的通用方案,但是为什么选择这种方案呢?它相对于其他方案有什么优势?笔者一直也困惑不解,最近浏览了一些资料,有一些小小心得,希望大家指正~
损失函数:交叉熵Cross Entropy
我们可以从三个角度来理解cross entropy的物理意义
从实例上直观理解
我们首先来看Cross Entropy 的公式:
假设存在两个分布
通常情况下在线性模型、神经网络等模型中,关于样本的真实分布可以用one-hot的编码来表示,比如男、女分别可以用[0,1]和[1,0]来表示,同样的,C种类别的样本可以用长度为C的向量来表示,且一个样本的表示向量中有且仅有一个维度为1,其余为0。那会造成什么后果呢?我们来看一个例子,假设一个样本的真实label为
如果预测分布为
可以看出其实
只要label中1所对应下标的预测值越接近1,则损失函数越小,这在直观上就是符合我们对于损失函数的预期。
交叉熵为什么比均方误差好
作为回归问题的常见损失函数,均方误差公式为
似然估计的视角
我们知道,对于一个多分类问题,给定样本
其中
KL散度视角
KL散度又被称为相对熵,可以用来衡量两个分布之间的距离,想了解KL散度可以参考如何理解K-L散度。需要了解的是:KL散度越小,两个分布越相近。这么看KL散度是不是很符合我们对于两个分布损失函数的定义呢?
KL散度的公式为:
其中
softmax+cross entropy到底学到了什么?
我们知道在回归问题中的最常用的损失函数是均方误差
假定分类问题的最后一个隐藏层和输出层如下图所示

图中
下面求
当
当
代入上式得