损失函数的作用:衡量模型预测的好坏。

简单来说就是,损失函数就是用来表现预测与真实数据的差距程度。

令 真实值 为Y,预测值为 f(x),损失函数为L( Y , f(x)),关系如下:

机器学习常用损失函数 损失函数有什么用_损失函数

损失函数(loss funtion)是用来估量模型的预测值和真实值的不一样程度,它是一个非负实值函数。损失函数越小,模型的鲁棒性就越好。

例子:

机器学习常用损失函数 损失函数有什么用_损失函数_02

X:门店数 Y:销量
我们会发现销量随着门店数上升而上升。于是我们就想要知道大概门店和销量的关系是怎么样的呢?

我们根据图上的点描述出一条直线:

机器学习常用损失函数 损失函数有什么用_逻辑回归_03

 似乎这个直线差不多能说明门店数X和Y得关系了:我们假设直线的方程为Y=a0+a1X(a为常数系数)。假设a0=10 a1=3 那么Y=10+3X(公式1)

机器学习常用损失函数 损失函数有什么用_机器学习常用损失函数_04

我们希望我们预测的公式与实际值差值越小越好,所以就定义了一种衡量模型好坏的方式,即损失函数(用来表现预测与实际数据的差距程度)。于是乎我们就会想到这个方程的损失函数可以用绝对损失函数表示:

公式Y-实际Y的绝对值,数学表达式:

上面的案例它的绝对损失函数求和计算求得为:6

为后续数学计算方便,我们通常使用平方损失函数代替绝对损失函数:

公式Y-实际Y的平方,数学表达式:L(Y,f(X))=

上面的案例它的平方损失函数求和计算求得为:10

以上为公式1模型的损失值。

假设我们再模拟一条新的直线:a0=8,a1=4

机器学习常用损失函数 损失函数有什么用_损失函数_05

公式对比,学习损失函数的意义

公式2 Y=8+4X

绝对损失函数求和:11 平方损失函数求和:27

公式1 Y=10+3X

绝对损失函数求和:6 平方损失函数求和:10

从损失函数求和中,就能评估出公式1能够更好得预测门店销售。

统计学习中常用的损失函数有以下几种:

1】0-1损失函数(gold standard标准式)

0-1损失函数是指,预测值与损失值不相等为1,否则为0.

机器学习常用损失函数 损失函数有什么用_算法_06

 该函数不考虑预测值和真实值的误差程度,也就是说只要预测错误,预测错误差一点和差很多是一样的,感知机就是用的这种损失函数,但是由于相等这个条件太过严格,我们可以放宽条件:

机器学习常用损失函数 损失函数有什么用_机器学习_07

 这种损失函数用在实际场景中比较少,更多的是用俩衡量其他损失函数的效果。

2】绝对损失函数

机器学习常用损失函数 损失函数有什么用_机器学习常用损失函数_08

3】平方损失函数(squared loss)

实际结果和观测结果之间差距的平方和,一般用在线性回归中,可以理解为最小二乘法:

机器学习常用损失函数 损失函数有什么用_机器学习常用损失函数_09

4】对数损失函数(logarithmic loss)

主要在逻辑回归中使用,样本预测值和实际值的误差符合高斯分布,使用极大似然估计的方法,取对数得到损失函数:

机器学习常用损失函数 损失函数有什么用_机器学习_10

损失函数L(Y,P(Y|X))L(Y,P(Y|X))是指样本X在分类Y的情况下,使概率P(Y|X)达到最大值。

       经典的对数损失函数包括entropy和softmax,一般在做分类问题的时候使用(而回归时多用绝对值损失(拉普拉斯分布时,μ值为中位数)和平方损失(高斯分布时,μ值为均值))。

5】指数损失函数(Exp-Loss)

在boosting算法中比较常见,比如Adaboosting中,标准形式是:

机器学习常用损失函数 损失函数有什么用_损失函数_11

6】铰链损失函数(Hinge Loss)

       铰链损失函数主要用在SVM中,Hinge Loss的标准形式为:

                                                        

机器学习常用损失函数 损失函数有什么用_算法_12

      

       y是预测值,在-1到+1之间,t为目标值(-1或+1)。其含义为,y的值在-1和+1之间就可以了,并不鼓励|y|>1|y|>1,即并不鼓励分类器过度自信,让某个正确分类的样本的距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的分类误差。

损失函数越小,模型就越好。

总结:

损失函数可以很好的反应模型与实际数据差距的工具,理解损失函数能够更好得对后续优化工具(梯度下降等)进行分析与理解,很多时候遇见复杂的问题,最难的一关是如何写出损失函数。