损失函数(loss function)用来估量模型的预测值
f
(
x
)
f(x)
f(x) 与真实值
Y
Y
Y 的不一致程度,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
R
s
r
m
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
R_{srm}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)
Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
注:结构风险最小化:Structural risk minimization, SRM
前面的函数表示的是经验风险函数,L代表的是损失函数,后面的 λ J ( f ) \lambda J(f) λJ(f) 是正则化项或惩罚项,它可以是L1,也可以是L2,或者其他的正则函数。
对于损失函数,主要的形式有:
1. 对数损失函数(逻辑斯特回归)
对数损失函数的标准形式:
L
(
Y
,
P
(
Y
∣
X
)
)
=
−
l
o
g
P
(
Y
∣
X
)
L(Y,P(Y|X))=-logP(Y|X)
L(Y,P(Y∣X))=−logP(Y∣X)
取对数是为了方便计算极大似然估计,因为在 MLE 中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数
L
(
Y
,
P
(
Y
∣
X
)
)
L(Y, P(Y|X))
L(Y,P(Y∣X)) 表达的是样本 X 在分类 Y 的情况下,使概率
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X) 达到最大值(换言之,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大)。
逻辑斯特回归最后得到的目标式子如下:
J
(
θ
)
=
−
1
m
[
∑
i
=
1
m
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta)=-\frac{1}{m}[\sum_{i=1}^my^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]
J(θ)=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
2. 平方损失函数(最小二乘法)
平方损失函数的标准形式:
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
X
)
)
2
L(Y,f(X))=(Y-f(X))^2
L(Y,f(X))=(Y−f(X))2
最小二乘法是线性回归的一种,最小二乘法(OLS)将问题转化成了一个凸优化问题。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。
Y − f ( X ) Y-f(X) Y−f(X) 表示的残差,整个式子表示的是残差的平方和,而我们的目标就是最小化这个目标函数值,也就是最小化残差平方和。
3. 指数损失函数(Adaboost)
指数损失函数的标准形式如下:
L
(
Y
,
f
(
X
)
)
=
e
−
Y
f
(
X
)
L(Y,f(X))=e^{-Yf(X)}
L(Y,f(X))=e−Yf(X)
可以看出,Adaboost 的目标式子就是指数函数,在给定 n 个样本的情况下,Adaboost 的损失函数为:
L
(
Y
,
f
(
X
)
)
=
1
n
∑
i
=
1
n
e
−
Y
i
f
(
X
i
)
L(Y,f(X))=\frac{1}{n}\sum_{i=1}^ne^{-Y_if(X_i)}
L(Y,f(X))=n1i=1∑ne−Yif(Xi)
4. Hinge 损失函数(SVM)
在机器学习算法中,hinge 损失函数和 SVM 是息息相关的。Hinge 函数的标准形式:
L
(
Y
)
=
m
a
x
(
0
,
1
−
t
Y
)
L(Y)=max(0,1-tY)
L(Y)=max(0,1−tY)
其中,t 为目标值(-1或+1),Y是分类器输出的预测值,并不直接是类标签。其含义为,当 t 和 Y 的符号相同时(表示y预测正确)并且|Y|≥1时,hinge loss为0;当 t 和 Y 的符号相反时,hinge loss 随着y的增大线性增大。
在 SVM 中,其损失函数最终可写为:
J
(
w
)
=
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
L
H
i
n
g
e
J(w)=\frac{1}{2}||w||^2+C\sum_iL_{Hinge}
J(w)=21∣∣w∣∣2+Ci∑LHinge
因此,SVM 的损失函数可以看做是 L2 正则化与 Hinge loss 之和。
5. 其他损失函数
除了上述所说的损失函数,常用的损失函数还有:
0-1损失函数
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y,f(X))=\begin{cases}1, Y\neq f(X) \\ 0, Y=f(X) \end{cases}
L(Y,f(X))={1,Y=f(X)0,Y=f(X)
绝对值损失函数
L
(
Y
,
f
(
X
)
)
=
∣
Y
−
f
(
X
)
∣
L(Y,f(X))=|Y-f(X)|
L(Y,f(X))=∣Y−f(X)∣
本篇博文主要参考资料:
[1] 常见损失函数
[2] 机器学习中常见的几种损失函数
[3] 机器学习中的常见问题——损失函数