Press "Enter" to skip to content

排序模型训练中过程中的损失函数,盘它

 

 

 

损失函数是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。

 

 

 

损失函数分类

 

损失函数基本可以分为分类损失(Classification Loss)和回归损失(Regression Loss)

 

 

下面主要介绍5种常见的损失函数。

 

 

损失函数介绍

 

0-1损失函数(0-1 Loss Function) , 最直观的损失函数就是模型的预测结果,其数据表达式如下:

 

 

虽然0-1损失函数能够客观的评价模型的好坏,但缺点是数学性质不好,不连续且不可导,比较难以优化。因此经常使用连续可微的损失函数代替。

 

平方损失函数(Quadratic Loss Function) ,经常用在预测标签y为实数值的任务中。其数学表达式如下-:

 

 

平方损失函数一般不适用于分类问题。

 

附:平方损失函数前边有系数1/2 是因为在求倒数之后将系数去掉。

 

交叉熵损失函数( Quadratic Loss Function), 一般用于分类问题。假设样本的标签y属于{1,2,….,C}为离散的类别,模型f(x,theta)属于[0,1]^C 的输出为类别标签的条件概率分布,即:

 

 

并满足:

 

 

我们可以使用一个C维的one-hot向量y来表示样本标签。假设样本的标签为k,那幺标签向量y只有第k维的值为1,其余元素的值为0。标签向量y可以看作是样本标签的真实概率分布。即第c维(记为y_c,1=< c =<C )是类别c的真实概率。假设样本的类别为k,那幺他属于第k类的概率为1,其他类的概率为0。

 

对于两个概率分布,一般可以用交叉熵来衡量他们的差异。标签的真实概率分布y和预测样本概率f(x,theta)之间的交叉熵为:

 

 

公式-1

 

比如对于三分类问题,一个样本的 标签向量为y=[0,0,1]^T,模型预测的标签分布为f(x,theta)=[0.3,0.3,0.4]^T,则他们的交叉熵为:

 

 

因为y为one-hot向量,公式-1也可以写为:

 

 

其中f_y(x,theta)可以看作是真实类别y的似然函数,因此交叉熵损失函数也就是负对数似然损失函数(Negative Log-likelihood Function)。

 

对数损失函数(Logarithmic Loss Function), 该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。

 

 

Hinge损失函数 (Hinge Loss Function) ,对于二分类问题,假设y和f(x,theta)的取值分别为{-1,+1},Hinge损失函数为:

 

 

 

损失函数/代价函数/目标函数区别

 

损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念。

 

损失函数:定义在某个样本上的,是指一个样本的误差

 

代价函数:是定义在整个训练集上的,是所有样本误差的平均,也就是所有损失函数值的平均

 

目标函数:是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是代价函数+正则项

 

在这浮躁的社会沉静,用心记录,用心学习!

Be First to Comment

发表回复

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