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

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

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


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

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

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

min1N∑i=1NL(yi,f(xi))min1N∑i=1NL(yi,f(xi))
而结构风险最小化可表示为最优化问题:
min1N∑i=1NL(yi,f(xi))+λJ(f)min1N∑i=1NL(yi,f(xi))+λJ(f)
在结构风险最小化中,经验风险只是被优化的一部分,此时并不能称经验风险最小化。


0-1损失函数


L(Y,f(X))={1,Y≠f(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))=−logP(Y|X)



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

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


J(w,b)=−1m∑D(yi,pi)J(w,b)=−1m∑D(yi,pi)


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

所以损失函数等价于

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


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

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

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


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


L(Y,f(X))=(Y−f(X))2L(Y,f(X))=(Y−f(X))2
该损失函数的意义也很简单,就是取预测差距的平方。



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

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


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


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

指数损失函数


L(y,f(x))=exp[−yf(x)]L(y,f(x))=exp[−yf(x)]
指数损失函数是0,1损失函数的变形
Adaboost的目标函数就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为
L(y,f(x))=1n∑i=1nexp[−yif(xi)]L(y,f(x))=1n∑i=1nexp[−yif(xi)]
其中yi∈{−1,1}yi∈{−1,1}表示对应的标签值


Hinge损失函数(SVM)


minL(w)=1n∑i=1nH(yif(xi,w)),whereH(t)={−t+10t<1t≥1minL(w)=1n∑i=1nH(yif(xi,w)),w
hereH(t)={−t+1t<10t≥1

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


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

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


minL(w)=1n∑i=1nH(yif(xi,w)),whereH(t)={−t0t<0t≥0minL(w)=1n∑i=1nH(yif(xi,w)),whe
reH(t)={−tt<00t≥0


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


优点:稳定的分类面,次梯度可导

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

决策树损失函数:

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


Ht(T)=−∑k=1KNtkNtlogNtkNtHt(T)=−∑k=1KNtkNtlogNtkNt


则损失函数可以定义为


Cα(T)=∑t=1∣T∣NtHt(T)+α∣T∣Cα(T)=∑t=1∣T∣NtHt(T)+α∣T∣


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

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

L1和L2正则化



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

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信