1.损失函数是什么
损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。
2.回归损失函数
2.1平方误差损失
每个训练样本的平方误差损失(也称为 L 2 L_2 L2 L o s s Loss Loss)是实际值和预测值之差的平方:
L = ( y − f ( x ) ) 2 L=(y-f(x))^{2} L=(y−f(x))2
相应的损失函数是这些平方误差的平均值(MSE 均方误差):
M S E = 1 n ∑ i = 1 n ( y i − f ( x i ) ) 2 MSE=\frac{1}{n} \sum_{i=1}^{n}\left({y}_{i}-f(x_i)\right)^{2} MSE=n1i=1∑n(yi−f(xi))2
它是一个二次函数(形式为 a x 2 + b x + c ax^2+bx+c ax2+bx+c),并且值大于等于0。二次函数仅具有全局最小值。由于没有局部最小值,所以我们永远不会陷入它。因此,可以保证梯度下降将收敛到全局最小值(如果它完全收敛)。
MSE损失函数通过平方误差来惩罚模型犯的大错误。把一个比较大的数平方会使它变得更大。但有一点需要注意,这个属性使MSE成本函数对异常值的健壮性降低。因此,如果我们的数据容易出现许多的异常值,则不应使用这个它。
2.2绝对误差损失
每个训练样本的绝对误差是预测值和实际值之间的距离,与符号无关。绝对误差也称为L1 Loss:
L = ∣ y − f ( x ) ∣ L=|y-f(x)| L=∣y−f(x)∣
相应的损失函数是这些绝对误差的平均值(MAE 平均绝对误差):
M A E = 1 n ∑ i = 1 n ∣ y i − f ( x i ) ∣ MAE= \frac{1}{n} \sum_{i=1}^{n}\left|y_{i}-f(x_i)\right| MAE=n1i=1∑n∣yi−f(xi)∣
与MSE相比,MAE成本对异常值更加健壮。但是,在数学方程中处理绝对或模数运算符并不容易。我们可以认为这是MAE的缺点。
2.3Huber损失
Huber损失结合了MSE和MAE的最佳特性。对于较小的误差,它是二次的,否则是线性的(对于其梯度也是如此)。Huber损失需要确定 δ 参数:
L δ = { 1 2 ( y − f ( x ) ) 2 , if ∣ y − f ( x ) ∣ ≤ δ δ ∣ y − f ( x ) ∣ − 1 2 δ 2 , otherwise L_{\delta}=\left\{\begin{array}{ll} \frac{1}{2}(y-f(x))^{2}, & \text { if }|y-f(x)| \leq \delta \\ \delta|y-f(x)|-\frac{1}{2} \delta^{2}, & \text { otherwise } \end{array}\right. Lδ={