注意区分样本损失,和样本集的损失
在本文,我们要注意区分,一个样本的损失值为
而多个样本的损失值为
所说义如果我们说一个算法的损失函数,都是针对一个样本的。只不过有些文章把所有样本的损失平均也说成是算法的函数函数。要注意区分。
损失函数
|yi−f(xi)|
|
y
i
−
f
(
x
i
)
|
,一般是针对单个样本 i
代价函数
1/N.∑Ni=1|yi−f(xi)|
1
/
N
.
∑
i
=
1
N
|
y
i
−
f
(
x
i
)
|
, 一般是针对总体
目标函数
1/N.∑Ni=1|yi−f(xi)|
1
/
N
.
∑
i
=
1
N
|
y
i
−
f
(
x
i
)
|
+ 正则化项
经验风险最小化可表示为最优化问题:
而结构风险最小化可表示为最优化问题:
在结构风险最小化中,经验风险只是被优化的一部分,此时并不能称经验风险最小化。
0-1损失函数
可以看出,该损失函数的意义就是,当预测错误时,损失函数值为1,预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度,也就是只要预测错误,预测错误差一点和差很多是一样的。
对数损失函数(logarithmic loss function)
这个损失函数就比较难理解了。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,但是乘法直接求导比较困难,所以需要将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。
逻辑回归中使用对数损失函数,最后得到的损失函数如下:
其中 D(y,p)=ylog(p)+(1−y)(1−log(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 )
所以损失函数等价于
其中 yi∈{0,1} y i ∈ { 0 , 1 } 表示正样本的概率。
对于softmax多分类,类标号要进行one-hot编码,转变为多输出问题。所有一个样本的预测输出的值为向量。例如3分类问题,一个样本的输出值为
[p1,p2,p3]
[
p
1
,
p
2
,
p
3
]
,损失函数为
平方损失函数(最小二乘法, Ordinary Least Squares )
该损失函数的意义也很简单,就是取预测差距的平方。
最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布。最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。
绝对值损失函数(absolute loss function)
该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。
指数损失函数
指数损失函数是0,1损失函数的变形
Adaboost的目标函数就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为
其中 yi∈{−1,1} y i ∈ { − 1 , 1 } 表示对应的标签值
Hinge损失函数(SVM)
其含义为,y的值在-1到1之间就可以了,并不鼓励,即并不鼓励分类器过度自信,让某个可以正确分类的样本距离分割线的距离超过1并不会有任何奖励。从而使得分类器可以更专注整体的分类误差
优点:稳定的分类面,凸函数。对分对的但又不是很对的样本也进行惩罚(0-1之间),可以极大化分类间隔。
感知机损失函数(L1 margin cost)
在t=0处不连续,所以不可导,但是可以求次梯度(导数)。
优点:稳定的分类面,次梯度可导
缺点:二阶不可导,有时候不存在唯一解
决策树损失函数:
设决策树的叶子节点集合为T,t是T中的一个元素,该叶节点有 Nt N t 个样本,其中k类的样本有 Ntk N t k 个,共K个分类
则损失函数可以定义为
右边第一项表示误差大小,第二项表示模型的复杂度,也就是用叶节点数目表示,防止过拟化。(一般的损失函数都用两项来表示,误差和模型复杂度)
对每个叶节点t来说, Ht(T) H t ( T ) 表示 t t 的熵(也就是不确定性)的期望,针对的是叶子节点中每个数据实例的熵的期望, t t 叶子节点中有个实例,那么 t t 叶子节点总的熵(不确定性)就是,整个树有∣T∣个叶节点,加起来就是整棵树的熵(不确定性,也可以理解成误差)。
L1和L2正则化
L1正则化假设了模型的先验概率分布服从拉普拉斯分布;L2正则化假设了模型的先验概率分布服从高斯分布。