总结一下常见损失函数
交叉熵损失
负对数似然(MLE)是定义在训练集上的经验分布与定义在模型分布上的概率分布之间的交叉熵定义如下
将预测概率分布$p_{model}$作为Q,训练集定义的经验分布$\hat p_{data}$作为P,定义交叉熵损失函数如下:
其中,$p_{model}(\boldsymbol y|\boldsymbol x)$表示按照模型的预测,给定用户特征$\boldsymbol x$后,目标变量取值为$\boldsymbol y$的概率。在推导中,计算单个样本的$p_{model}(\boldsymbol y_i|\boldsymbol x_i)$即可代入上面公式。大多数情况下,单个样本预测目标值是标量,因此下文用$p_{model}(y|\boldsymbol x)$代替$p_{model}(\boldsymbol y|\boldsymbol x)$推导。
分类中的交叉熵
每个类别一个输出单元时
若共有K个类别,$y_i= 1,2,…,K$表示样本$i$所属的类别。将$y_i$做one-hot编码后,$y_{ij}=0,1$表示第$i$个样本是否属于$j$类,对于的预测概率为$\hat y_{ij} \in [0,1]$。则第$i$个样本的交叉熵为
若共有$N$个样本,对应交叉熵为
二分类只用一个单元时(sigmoid)
当预测值$\hat y \in [0,1]$为概率,真实值$y=0,1$为是否发生时,第$i$个样本的预测概率分别为
此时对于单个样本$i$交叉熵为
若共有$N$个样本,可以得到二分类,单输出单元下的交叉熵损失:
高斯分布与均方误差损失
如果真实值服从高斯分布,预测值是高斯分布的均值,即$ p_{model}(y|\boldsymbol x)=N(y; {\hat y},1)$,则可以得到均方误差损失。但这并不是要求由均方误差损失求解的${\hat y}$只能用于预测高斯分布的均值$^{[1]}$。
对于样本$i$,其真实标签值为$y_i$,预测值为$\hat y_i$,则
此时单个样本$i$,有
因此,交叉熵损失等同于均方误差损失:
拉普拉斯分布到绝对值损失
如果真实值服从拉普拉斯分布,预测值是拉普拉斯分布的均值,即$ p_{model}(y|\boldsymbol x)=Laplace(y; {\hat y},b)$,则对于样本$i$,其真实标签值为$y_i$,预测值为$\hat y_i$,有:
因此此时交叉熵损失为绝对值损失:
Hinge损失函数
用于分类任务,真实值$y=-1,1$,预测值$\hat y \in [-1,1]$,定义如下
分类正确,即$y=\hat y=1\ or\ y=\hat y=-1$时,损失为0,否则为$1-y\ \hat y$。max的作用是不鼓励$|\hat y|>1$。
优缺:对异常值的敏感度低,但没有数理统计的理论推导。
注:
[1]. 《深度学习》P111