登录    注册      
    
  

News Message

Loss Function 损失函数



Loss Function 损失函数



损失函数用来评价模型的预测值真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

损失函数分为经验风险损失函数结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。

常见的损失函数以及其优缺点如下:

  1. 0-1损失函数(zero-one loss)

0-1损失是指预测值和目标值不相等为1, 否则为0:

[公式]

特点:

(1)0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用.

(2)感知机就是用的这种损失函数。但是相等这个条件太过严格,因此可以放宽条件,即满足 [公式] 时认为相等,

[公式]

2. 绝对值损失函数

绝对值损失函数是计算预测值与目标值的差的绝对值:

[公式]

3. log对数损失函数

log对数损失函数的标准形式如下:

[公式]

特点:

(1) log对数损失函数能非常好的表征概率分布,在很多场景尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。

(2)健壮性不强,相比于hinge loss对噪声更敏感。

(3)逻辑回归的损失函数就是log对数损失函数。

4. 平方损失函数

平方损失函数标准形式如下:

[公式]

特点:

(1)经常应用与回归问题

5. 指数损失函数(exponential loss)

指数损失函数的标准形式如下:

[公式]

特点:

(1)对离群点、噪声非常敏感。经常用在AdaBoost算法中。

6. Hinge 损失函数

Hinge损失函数标准形式如下:

[公式]

特点:

(1)hinge损失函数表示如果被分类正确,损失为0,否则损失就为 [公式] 。SVM就是使用这个损失函数。

(2)一般的 [公式] 是预测值,在-1到1之间, [公式] 是目标值(-1或1)。其含义是, [公式] 的值在-1和+1之间就可以了,并不鼓励 [公式] ,即并不鼓励分类器过度自信,让某个正确分类的样本距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的误差。

(3) 健壮性相对较高,对异常点、噪声不敏感,但它没太好的概率解释。

7. 感知损失(perceptron loss)函数

感知损失函数的标准形式如下:

[公式]

特点:

(1)是Hinge损失函数的一个变种,Hinge loss对判定边界附近的点(正确端)惩罚力度很高。而perceptron loss只要样本的判定类别正确的话,它就满意,不管其判定边界的距离。它比Hinge loss简单,因为不是max-margin boundary,所以模型的泛化能力没 hinge loss强

8. 交叉熵损失函数 (Cross-entropy loss function)

交叉熵损失函数的标准形式如下:

[公式]

注意公式中 [公式] 表示样本, [公式] 表示实际的标签, [公式] 表示预测的输出, [公式] 表示样本总数量。

特点:

(1)本质上也是一种对数似然函数,可用于二分类和多分类任务中。

二分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):

[公式]

多分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):

[公式]

(2)当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。

最后奉献上交叉熵损失函数的实现代码:cross_entropy.



这里需要更正一点,对数损失函数和交叉熵损失函数应该是等价的!!!(此处感谢 

 的指正,下面说明也是由他提供)

下面来具体说明:


相关高频问题:

1.交叉熵函数最大似然函数的联系和区别?

区别:交叉熵函数使用来描述模型预测值和真实值的差距大小,越大代表越不相近;似然函数的本质就是衡量在某个参数下,整体的估计和真实的情况一样的概率,越大代表越相近。

联系:交叉熵函数可以由最大似然函数在伯努利分布的条件下推导出来,或者说最小化交叉熵函数的本质就是对数似然函数的最大化

怎么推导的呢?我们具体来看一下。

设一个随机变量 [公式] 满足伯努利分布,

[公式]

则 [公式] 的概率密度函数为:

[公式]

因为我们只有一组采样数据 [公式] ,我们可以统计得到 [公式] 和 [公式] 的值,但是 [公式] 的概率是未知的,接下来我们就用极大似然估计的方法来估计这个 [公式] 值。

对于采样数据 [公式] ,其对数似然函数为:

[公式]

可以看到上式和交叉熵函数的形式几乎相同,极大似然估计就是要求这个式子的最大值。而由于上面函数的值总是小于0,一般像神经网络等对于损失函数会用最小化的方法进行优化,所以一般会在前面加一个负号,得到交叉熵函数(或交叉熵损失函数):

[公式]

这个式子揭示了交叉熵函数极大似然估计的联系,最小化交叉熵函数的本质就是对数似然函数的最大化。

现在我们可以用求导得到极大值点的方法来求其极大似然估计,首先将对数似然函数对 [公式] 进行求导,并令导数为0,得到

[公式]

消去分母,得:

[公式]

所以:

[公式]

这就是伯努利分布下最大似然估计求出的概率 [公式] 。

2. 在用sigmoid作为激活函数的时候,为什么要用交叉熵损失函数,而不用均方误差损失函数

其实这个问题求个导,分析一下两个误差函数的参数更新过程就会发现原因了。

对于均方误差损失函数,常常定义为:

[公式]

其中 [公式] 是我们期望的输出, [公式] 为神经元的实际输出( [公式] )。在训练神经网络的时候我们使用梯度下降的方法来更新 [公式] 和 [公式] ,因此需要计算代价函数对 [公式] 和 [公式] 的导数:

[公式]

然后更新参数 [公式] 和 [公式] :

[公式]

因为sigmoid的性质,导致 [公式] 在 [公式] 取大部分值时会很小(如下图标出来的两端,几乎接近于平坦),这样会使得 [公式] 很小,导致参数 [公式] 和 [公式] 更新非常慢。

那么为什么交叉熵损失函数就会比较好了呢?同样的对于交叉熵损失函数,计算一下参数更新的梯度公式就会发现原因。交叉熵损失函数一般定义为:

[公式]

其中 [公式] 是我们期望的输出, [公式] 为神经元的实际输出( [公式] )。同样可以看看它的导数:

[公式]

另外,

[公式]

所以有:

[公式]

[公式]

所以参数更新公式为:

[公式]

可以看到参数更新公式中没有 [公式] 这一项,权重的更新受 [公式] 影响,受到误差的影响,所以当误差大的时候,权重更新快;当误差小的时候,权重更新慢。这是一个很好的性质。

所以当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数









  1. 常用几种loss function总结
  2. 常见几种regulation总结

PS:这里注意下regulation和regularization term为两种不一样的范畴,具体来说regulation包含增加regularization term这种方法

1.loss function:

  • Loss function一般分为两个部分:误差部分(loss term) + 正则化部分(regularization term)

[公式]

  • loss term有以下常见几个类别:
  1. Gold Standard (ideal case)-又称0-1损失函数
  2. Hinge (SVM, soft margin)
  3. Log (logistic regression, cross entropy loss error)
  4. Squared loss (linear regression)
  5. Exponential loss (Boosting)

1.1 Gold Standard Loss:

用来记录分类错误的次数:m为predition,若m<0,则分类错误,反之,分类正确

[公式]

1.2 Hinge Loss:

  • Hinge Loss常作为分类器训练时的损失函数。Hinge loss用于“最大间隔”分类,特别是针对于支持向量机(SVM)。For an intended output t = ±1 and a classifier score y, the hinge loss of the prediction y is defined as:(对于预期输出t =±1以及分类器y(二分类),预测y的Hinge Loss定义为:)

[公式]

注意:这里的y分类器决策函数的“原始”输出,而不是预测的类别标签。例如,在线性SVM中,y=wx+b,(w,b)是分类超平面的参数,x是要分类的点。可以看到,当t和y有相同的符号的时候(这意味着y的预测是正确的)并且 [公式] ,hinge loss的结果为L(y)=0,但是当出现错误的分类是,hinge loss的L(y)与y呈线性关系(一个线性误差)。

  • 带有regulation term的Hinge Loss(偷个懒不打公式了,所有J,w,y,x,m 标记全文一致):

1.3 Log Loss:

在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布)然,后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为: 最小化负的似然函数[公式] 。从损失函数的视角来看,它就成了log损失函数。

其定义式:

[公式]

然后我们可以得出其loss function:

[公式]

然后我们自然最大化其最大似然函数(log likelihood function):

[公式]

而这个恰恰就是最小化cross entropy。

至此我们顺便介绍下cross entropy:

熵(entropy)的概念来自物理中的热力学,表示热力学系统中的无序程度,我们说的熵是信息论中的熵,表示对不确定性的测量,熵越高,能传输的信息越多,熵越少,传输的信息越少。举个例子说,当你站在一条公路旁边,看着车流来来往往,然后,你想告诉你的朋友每个车型号,但是只有一个二进制的信道,仅仅可以传输0,1序列,然后这个通讯相当的昂贵,十元1bit。你需要很多个二进制序列来表示每一个车型号。那么你该怎么来编码这些车的型号呢?会使用相同长度的bit来表示丰田Camry和奥迪Q7么? 当然不会了,因为你知道丰田Camry比奥迪Q7普遍多了,所以你会用更少的bit来编码丰田。换成数学的角度来看,把随机过的一辆车辆品牌是丰田Camry还是奥迪Q7看成随机事件,用随机变量X表示,所以我们在做的就是用X的分布来减少我们发送的bit的平均长度。也就是我们现在有了观测到的概率分布y,y_i = P(X=x_i)。我们要使用平均最小的bit,所以我们应该为x_i 分配log(1/y_i) 个比特。对所有的x_i 我们都有一个对应的最小需要分配的bit长度,那么我们对这个log(1/y_i)求期望也就得到了X的熵的定义了:

Cross entropy:

假如说我们用这个分布来作为我们来对事件编码的一个工具,熵就衡量了我们用这个正确的分布y来对事件编码所能用的最小的bit 长度,我们不能用更短的bit来编码这些事件或者符号了。相对的,交叉熵是我们要对y这个分布去编码,但是我们用了一些模型估计分布y`。这里的话通过y`这个分布我们得到的关于x_i的最小编码长度就变成了log(1/y`_i),但是呢,我们的期望仍是关于真是分布y的。所以交叉熵的定义就变成了:

Cross entropy equation

交叉熵是大于等于熵的,因为我们使用了错误的分布y`会带来更多的bit使用。当y和y`相等的时候,交叉熵就等于熵了。

KL 松散度(KL Divergence):

KL松散度和交叉熵的区别比较小,KL松散度又叫做相对熵,从定义很好看出区别:

KL Divergence equation

这个意思就是说我们要编码一个服从y分布的随机变量,假设我们使用了一些数据估计出来这个随机变量的分布是y`,那么我们需要用比真实的最小bit多多少来编码这个随机变量。这个值是大于等于0的,并且当y和y`相等的时候才为0。注意这里对交叉熵求最小和对KL松散度求最小是一样的。也就是我们要调整参数使得交叉熵和熵更接近,KL松散度越接近0,也就是y`越接近y。

1.4 squared loss:

很简单了,就是prediction与label差值的平方求和:

squared loss equation

1.5 exponential loss:

指数误差通常用在boosting中,指数误差始终> 0,但是确保越接近正确的结果误差越小,反之越大。

exponential loss equation

1.6 regulation term:

  • 简单区分L1,L2 regulation term:

L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。

  • L1正则化和L2正则化的说明如下:
  1. L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为 [公式]
  2. L2正则化是指权值向量w中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为 [公式]

一般都会在正则化项之前添加一个系数,Python中用α表示,一些文章也用λ表示。

  • L1正则化和L2正则化的作用:
  1. L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
  2. L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

PS:稀疏模型与特征选择

上面提到L1正则化有助于生成一个稀疏权值矩阵,进而可以用于特征选择。为什么要生成一个稀疏矩阵?

稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0. 通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

为什么L1正则化可以产生稀疏模型(L1是怎么让系数等于零的),以及为什么L2正则化可以防止过拟合?

  • L1正则化和特征选择:

假设有如下带L1正则化的损失函数:

[公式]
其中 [公式] 是原始的损失函数,加号后面的一项是L1正则化项,α是正则化系数。注意到L1正则化是权值的绝对值之和, [公式] 是带有绝对值符号的函数,因此 [公式] 是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数 [公式] 后添加L1正则化项时,相当于对 [公式] 做了一个约束。令 [公式] ,则 [公式] ,此时我们的任务变成在L约束下求出 [公式] 取最小值的解。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|对于梯度下降法,求解 [公式] 的过程可以画出等值线,同时L1正则化的函数L也可以在w1,w2的二维平面上画出来。如下图:

L1 regulation term

图中等值线是 [公式] 的等值线,黑色方形是L函数的图形。在图中,当 [公式] 等值线与L图形首次相交的地方就是最优解。上图中 [公式] 与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多), [公式] 与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。

而正则化前面的系数α,可以控制L图形的大小。α越小,L的图形越大(上图中的黑色方框);α越大,L的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的w可以取到很小的值。

假设有如下带L2正则化的损失函数,同样可以画出他们在二维平面上的图形,如下:

[公式]

L2 regulation term

二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此 [公式] 与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

  • L2正则化和过拟合:

拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。

那为什么L2正则化可以获得值很小的参数?

以线性回归中的梯度下降法为例。假设要求的参数为θ,hθ(x)是我们的假设函数,那么线性回归的代价函数如下:

[公式]

那么在梯度下降法中,最终用于迭代计算参数θ的迭代式为:

[公式]

其中α是learning rate. 上式是没有添加L2正则化项的迭代公式,如果在原始代价函数之后添加L2正则化,则迭代公式会变成下面的样子:

[公式]

其中λ就是正则化参数。从上式可以看到,与未添加L2正则化的迭代公式相比,每一次迭代, [公式] 都要先乘以一个小于1的因子,从而使得 [公式] 不断减小,因此总得来看, [公式] 是不断减小的。

最开始也提到L1正则化一定程度上也可以防止过拟合。之前做了解释,当L1的正则化系数很小时,得到的最优解会很小,可以达到和L2正则化类似的效果。


2. Regulation的常用方法:

  • Dropout
  • Batch Normalization
  • Data Augmentation
  • DropConnect
  • Fractional Max Pooling
  • Stochastic Depth(Resnet- shortcut)

--详细内容请传送至:zhuanlan.zhihu.com/p/40



-ref:

1.Loss function:损失函数(Loss Function)

2. Cross entropy 介绍

3.regulation term: 机器学习中正则化项L1和L2的直观理解 - CSDN

4. Regulation 常用方法:CS231n_lecture7_slides




https://zhuanlan.zhihu.com/p/40284001

https://zhuanlan.zhihu.com/p/58883095



Share Http URL:  http://www.wittx.cn/get_news_message.do?new_id=271



请输入评论





























Best Last Month

全局搜索算法

全局搜索算法

Information industry

by wittx


关于AI在疾病治疗领域的运用

关于AI在疾病治疗领域的运用

Medical science

by wittx


三大美国股指集体高开 科技股推动大盘上涨



EMO实现分类

EMO实现分类

Information industry

by wittx


Google Brain的优化器Lion

Google Brain的优化器Lion

Information industry

by wittx


房地产美元融资规模井喷

房地产美元融资规模井喷

Information industry

by wittx


电与磁的本质

电与磁的本质

Electronic electrician

by wittx


Nature综述:铁基超导体

Nature综述:铁基超导体

Information industry

by wittx


电磁超材料(EM Metamaterial)

电磁超材料(EM Metamaterial)

Information industry

by wittx


Graph neural networks for materials science and chemistry