机器学习案例系列教程——损失函数总结

注意区分样本损失,和样本集的损失

在本文,我们要注意区分,一个样本的损失值为

loss(y,f(x)) l o s s ( y , f ( x ) )

而多个样本的损失值为
1ni=1nloss(y,f(x)) 1 n ∑ i = 1 n l o s s ( y , f ( x ) )

所说义如果我们说一个算法的损失函数,都是针对一个样本的。只不过有些文章把所有样本的损失平均也说成是算法的函数函数。要注意区分。

损失函数 |yif(xi)| | y i − f ( x i ) | ,一般是针对单个样本 i
代价函数 1/N.Ni=1|yif(xi)| 1 / N . ∑ i = 1 N | y i − f ( x i ) | , 一般是针对总体
目标函数 1/N.Ni=1|yif(xi)| 1 / N . ∑ i = 1 N | y i − f ( x i ) | + 正则化项

经验风险最小化可表示为最优化问题:

min1Ni=1NL(yi,f(xi)) m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) )

而结构风险最小化可表示为最优化问题:
min1Ni=1NL(yi,f(xi))+λJ(f) m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f )

在结构风险最小化中,经验风险只是被优化的一部分,此时并不能称经验风险最小化。

0-1损失函数

L(Y,f(X))={1,Yf(X)0,Y=f(X) L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X )

可以看出,该损失函数的意义就是,当预测错误时,损失函数值为1,预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度,也就是只要预测错误,预测错误差一点和差很多是一样的。

对数损失函数(logarithmic loss function)

L(Y,P(Y|X))=logP(Y|X) L ( Y , P ( Y | X ) ) = − l o g P ( Y | X )

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

逻辑回归中使用对数损失函数,最后得到的损失函数如下:

J(w,b)=1mD(yi,pi) J ( w , b ) = − 1 m ∑ D ( y i , p i )

其中 D(y,p)=ylog(p)+(1y)(1log(p)) D ( y , p ) = y l o g ( p ) + ( 1 − y ) ( 1 − l o g ( p ) ) 公式中的p为逻辑回归预测的概率值。 p=h(w,b)=sigmoid(wx+b) p = h ( w , b ) = s i g m o i d ( w x + b )

所以损失函数等价于

J(w,b)=1mi=1m[y(i)logy^(i)+(1y(i))log(1y^(i))] J ( w , b ) = − 1 m ∑ i = 1 m [ y ( i ) l o g y ^ ( i ) + ( 1 − y ( i ) ) l o g ( 1 − y ^ ( i ) ) ]

其中 yi{0,1} y i ∈ { 0 , 1 } 表示正样本的概率。

对于softmax多分类,类标号要进行one-hot编码,转变为多输出问题。所有一个样本的预测输出的值为向量。例如3分类问题,一个样本的输出值为 [p1,p2,p3] [ p 1 , p 2 , p 3 ] ,损失函数为

L(Y,f(x))=j=1nYjlogpj L ( Y , f ( x ) ) = − ∑ j = 1 n Y j l o g p j
其中n为输出维度,也就是有多少种分类, pj p j 为预测的属于每种分类的概率。 可以看出softmax损失函数是逻辑回归损失函数的一种推广。当n取2时,损失函数值就是逻辑回归的损失函数。

平方损失函数(最小二乘法, Ordinary Least Squares )

L(Y,f(X))=(Yf(X))2 L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2

该损失函数的意义也很简单,就是取预测差距的平方。

最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布。最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。

绝对值损失函数(absolute loss function)

L(Y,f(X))=|Yf(X)| L ( Y , f ( X ) ) = | Y − f ( X ) |

该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。

指数损失函数

L(y,f(x))=exp[yf(x)] L ( y , f ( x ) ) = e x p [ − y f ( x ) ]

指数损失函数是0,1损失函数的变形
Adaboost的目标函数就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为
L(y,f(x))=1ni=1nexp[yif(xi)] L ( y , f ( x ) ) = 1 n ∑ i = 1 n e x p [ − y i f ( x i ) ]

其中 yi{1,1} y i ∈ { − 1 , 1 } 表示对应的标签值

Hinge损失函数(SVM)

minL(w)=1ni=1nH(yif(xi,w)),whereH(t)={t+10t<1t1 m i n L ( w ) = 1 n ∑ i = 1 n H ( y i f ( x i , w ) ) , w h e r e H ( t ) = { − t + 1 t < 1 0 t ≥ 1

其含义为,y的值在-1到1之间就可以了,并不鼓励,即并不鼓励分类器过度自信,让某个可以正确分类的样本距离分割线的距离超过1并不会有任何奖励。从而使得分类器可以更专注整体的分类误差

优点:稳定的分类面,凸函数。对分对的但又不是很对的样本也进行惩罚(0-1之间),可以极大化分类间隔。

感知机损失函数(L1 margin cost)

minL(w)=1ni=1nH(yif(xi,w)),whereH(t)={t0t<0t0 m i n L ( w ) = 1 n ∑ i = 1 n H ( y i f ( x i , w ) ) , w h e r e H ( t ) = { − t t < 0 0 t ≥ 0

在t=0处不连续,所以不可导,但是可以求次梯度(导数)。

这里写图片描述
优点:稳定的分类面,次梯度可导

缺点:二阶不可导,有时候不存在唯一解

决策树损失函数:

设决策树的叶子节点集合为T,t是T中的一个元素,该叶节点有 Nt N t 个样本,其中k类的样本有 Ntk N t k 个,共K个分类

Ht(T)=k=1KNtkNtlogNtkNt H t ( T ) = − ∑ k = 1 K N t k N t l o g N t k N t

则损失函数可以定义为

Cα(T)=t=1TNtHt(T)+αT C α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣

右边第一项表示误差大小,第二项表示模型的复杂度,也就是用叶节点数目表示,防止过拟化。(一般的损失函数都用两项来表示,误差和模型复杂度)

对每个叶节点t来说, Ht(T) H t ( T ) 表示 t t 的熵(也就是不确定性)的期望,针对的是t叶子节点中每个数据实例的熵的期望, t t 叶子节点中有Nt个实例,那么 t t 叶子节点总的熵(不确定性)就是NtHt(T),整个树有∣T∣个叶节点,加起来就是整棵树的熵(不确定性,也可以理解成误差)。

L1和L2正则化

这里写图片描述

L1正则化假设了模型的先验概率分布服从拉普拉斯分布;L2正则化假设了模型的先验概率分布服从高斯分布。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值