前言:损失函数是机器学习里最基础也是最为关键的一个要素,通过对损失函数的定义、优化,就可以衍生到我们现在常用的机器学习等算法中

损失函数的作用:衡量模型模型预测的好坏。再简单一点说就是:损失函数就是用来表现预测与实际数据的差距程度。

正文(及举例):

假设我们令真实值为Y 预测值为f(x) 损失函数为L(Y,f(x))他们的关系就是下图:

损失函数属于卷积神经网络的那一部分 损失函数干嘛的_损失函数属于卷积神经网络的那一部分


损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。

下面给个例子说明:

首先我们假设要预测一个公司某商品的销售量:

损失函数属于卷积神经网络的那一部分 损失函数干嘛的_机器学习_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损失函数(0-1 lossfunction):
L(Y,f(X))={1,0,Y≠f(X)Y=f(X)

(2) 平方损失函数(quadraticloss function)
L(Y,f(X))=(Y−f(X))2

(3) 绝对损失函数(absoluteloss function)
L(Y,f(X))=|Y−f(X)|

(4) 对数损失函数(logarithmicloss function) 或对数似然损失函数(log-likelihood loss function)
L(Y,P(Y|X))=−logP(Y|X)

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

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