文章目录
前言
损失函数(loss function)是一种衡量预测函数拟合真实值优劣的一种函数,用L(Y,f(x))来表示。一般来说,损失函数越小,模型的鲁棒性便越好,损失函数的出现便是为了使预测值更好地贴近真实值。但是为了防止过拟合现象,通常还要在此基础上添加结构损失函数,也就是正则化处理,常用的有L1,L2范数。下面介绍几种常见的单个样本下的损失函数。
一、0,1损失函数
L
(
Y
,
f
(
x
)
)
=
{
0
Y=f(x)
1
Y!=f(x)
L(Y,f(x))= \begin{cases} 0& \text{Y=f(x)}\\ 1& \text{Y!=f(x)} \end{cases}
L(Y,f(x))={01Y=f(x)Y!=f(x)
0,1损失函数是指预测值与目标值不想等为1相等为0。
0/1损失函数是最理想的损失函数,如果分类错误(只要有一个错误)就是1,全部正确就是0。不过这个函数是凸函数,且有不连续等性质,在实际应用中很难实现,所以才有了几种替代的损失函数,他们都是连续,凸函数。
二、绝对值损失函数
L ( Y , f ( x ) ) = ∣ Y − f ( x ) ∣ L(Y,f(x))=|Y-f(x)| L(Y,f(x))=∣Y−f(x)∣
绝对值损失函数是为了计算预测值与真实值的差的绝对值。
M A E = 1 N ∑ i = 1 N ∣ Y i − f ( x i ) ∣ MAE=\frac{1}{N}\displaystyle\sum_{i=1}^{N} |Y_i-f(x_i)| MAE=N1i=1∑N∣Yi−f(xi)∣
当从单个样本扩大到N个样本时,此时的损失函数称为平均绝对误差MAE。MAE是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。
三、log对数损失函数(逻辑回归)
L ( Y , P ( Y ∣ f ( x ) ) ) = − l o g P ( Y ∣ f ( x ) ) L(Y,P(Y|f(x)))=-logP(Y|f(x)) L(Y,P(Y∣f(x)))=−logP(Y∣f(x))
log对数损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,通常将其转换为对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。
在进行逻辑回归运算时使用的函数便是log对数损失函数。
逻辑回归的P(Y=y|x)表达式如下(为了将类别标签y统一为1和0,下面将表达式分开表示,f(x)是sigmoid函数):
P
(
y
∣
x
)
=
{
h
θ
(
x
)
=
g
(
f
(
x
)
)
=
1
1
+
e
x
p
(
−
f
(
x
)
)
y=1
1
−
h
θ
(
x
)
=
1
−
g
(
f
(
x
)
)
=
1
1
+
e
x
p
(
f
(
x
)
)
y=0
P(y|x)= \begin{cases} h_θ(x)=g(f(x))=\frac{1}{1+exp(-f(x))}& \text{y=1}\\ 1-h_θ(x)=1-g(f(x))=\frac{1}{1+exp(f(x))}& \text{y=0} \end{cases}
P(y∣x)={hθ(x)=g(f(x))=1+exp(−f(x))11−hθ(x)=1−g(f(x))=1+exp(f(x))1y=1y=0
当从单个样本扩大到N个样本时,此时的平均似然函数:
L ( θ ) = 1 n ∏ i = 1 n [ h θ ( x i ) ] y i [ 1 − h θ ( x i ) ] 1 − y i L(θ)=\frac{1}{n}\displaystyle\prod_{i=1}^{n} [h_θ(x_i)]^{y_i}[1-h_θ(x_i)]^{1-y_i} L(θ)=n1i=1∏n[hθ(xi)]yi[1−hθ(xi)]1−yi
为了方便计算,将等式两边取对数,取负号,得到log对数损失函数,即在逻辑回归模型中,最大化似然函数和最小化损失函数实际上是等价的。
J ( θ ) = − 1 n l o g L ( θ ) = − 1 n ∑ i = 1 n [ y i l o g ( h θ ( x i ) ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ] J(θ)=-\frac{1}{n}logL(θ)=-\frac{1}{n}\displaystyle\sum_{i=1}^{n}[y_ilog(h_θ(x_i))+(1-y_i)log(1-h_θ(x_i))] J(θ)=−n1logL(θ)=−n1i=1∑n[yilog(hθ(xi))+(1−yi)log(1−hθ(xi))]
四、平方损失函数(线性回归)
L ( Y , f ( x ) ) = ( Y − f ( x ) ) ² L(Y,f(x))=(Y-f(x))² L(Y,f(x))=(Y−f(x))²
平方损失函数是为了计算预测值与真实值的差的平方,通常用于线性回归问题。
Y-f(x)表示的是残差,整个式子表示的是残差的平方和,而我们的目的就是最小化这个目标函数值,也就是最小化残差的平方和(residual sum of squares,RSS)。
M S E = L ( Y i , f ( x i ) ) = 1 N ∑ i = 1 N ( Y i − f ( x i ) ) ² MSE=L(Y_i,f(x_i))=\frac{1}{N}\displaystyle\sum_{i=1}^{N} (Y_i-f(x_i))² MSE=L(Yi,f(xi))=N1i=1∑N(Yi−f(xi))²
当从单个样本扩大到N个样本时,此时的损失函数称为均方误差MSE。在实际应用中,通常会使用MSE作为一项衡量指标。MSE是指参数估计值与参数真值之差平方的期望值; MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
R M S E = 1 N ∑ i = 1 N ( Y i − f ( x i ) ) ² RMSE=\sqrt {\frac{1}{N}\displaystyle\sum_{i=1}^{N} (Y_i-f(x_i))²} RMSE=N1i=1∑N(Yi−f(xi))²
均方根误差RMSE是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。通常用来作为线性回归算法的性能指标。
五、指数损失函数(AdaBoost)
L ( Y , f ( x ) ) = e x p ( − y f ( x ) ) L(Y,f(x))=exp(-yf(x)) L(Y,f(x))=exp(−yf(x))
指数损失函数对离群点、噪声非常敏感。经常用在AdaBoost算法中。
L ( Y i , f ( x i ) ) = 1 N ∑ i = 1 N e x p [ − Y i f ( x i ) ] L(Y_i,f(x_i))=\frac{1}{N}\displaystyle\sum_{i=1}^{N} exp[-Y_if(x_i)] L(Yi,f(xi))=N1i=1∑Nexp[−Yif(xi)]
当从单个样本扩大到N个样本时,上式即为Adaboost的损失函数。
六、Hinge损失函数(SVM)
L
(
Y
,
f
(
x
)
)
=
m
a
x
(
0
,
1
−
y
f
(
x
)
)
L(Y,f(x))=max(0,1-yf(x))
L(Y,f(x))=max(0,1−yf(x))
Hinge损失函数一般作为分类算法中的损失函数,尤其是SVM中。
七、正则项L1,L2
L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓“惩罚”是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。
L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为||w||1。
L2正则化是指权值向量w中各个元素的平方和然后再求平方根,通常表示为||w||2。
而在在正则化项之前一般都会添加一个系数,这个系数需要由用户来指定。
总结
以上便是所有的内容了,本文简单介绍了一些常见的单个样本下的损失函数和正则化项L1和L2。