一、损失函数简介

损失函数主要分为两大类:分类损失和回归损失

1.回归损失:

  • 1 均方误差(MSE 二次损失 L2损失) 它是我们的目标变量与预测值变量差值平方。
  • 2 平均绝对误差(MAE L1损失) 它是我们的目标变量与预测值变量差值绝对值。 关于MSE与MAE的比较。MSE更容易解决问题,但是MAE对于异常值更加鲁棒。

2.分类损失:

  • 1 交叉熵损失函数。 是目前神经网络中最常用的分类目标损失函数。
  • 2 合页损失函数 合页损失函数广泛在支持向量机中使用,有时也会在损失函数中使用。缺点:合页损失函数是对错误越大的样本施以更严重的惩罚,但是这样会导致损失函数对噪声敏感。

二、损失函数样式

1、MSE(Mean Square Error)均方误差

MSE是真实值与预测值的差值的平方然后求和平均。

通过平方的形式便于求导,所以常被用作线性回归的损失函数

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_MSE

2、MAE(Mean Absolute Error)平均绝对误差

MAE是真实值与预测值绝对误差的平均值,可以更好地反映预测值误差的实际情况。

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_MSE_02

3、RMSE(Root Mean Square Error)均方根误差

RMSE是衡量观测值与真实值之间的偏差,常用来作为机器学习模型预测结果衡量的标准。

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_机器学习_03

4、SD(Standard Deviation)标准差

SD是方差的算术平均根。用于衡量一组数值的离散程度。

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_04

注:avg(x)表示mean值

5、交叉熵损失(Cross Entry Loss)

5.1、熵是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望,公式如下:

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_05

n表示事件可能发生的情况总数

其中一种比较特殊的情况就是掷硬币,只有正、反两种情况,该种情况(二项分布或者0-1分布)熵的计算可以简化如下:

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_06

p(x)代表掷正面的概率,1-p(x)则表示掷反面的概率(反之亦然)

5.2、相对熵又称KL散度,用于衡量对于同一个随机变量x的两个分布p(x)和q(x)之间的差异。

在机器学习中,p(x)常用于描述样本的真实分布,例如[1,0,0,0]表示样本属于第一类,而q(x)则常常用于表示预测的分布,例如[0.7,0.1,0.1,0.1]。显然使用q(x)来描述样本不如p(x)准确,q(x)需要不断地学习来拟合准确的分布p(x)。

KL散度的公式如下(n表示事件可能发生的情况总数):

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_MSE_07

KL散度的值越小表示两个分布越接近。

5.3、交叉熵

我们将KL散度的公式进行变形,得到:

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_08

前半部分就是p(x)的熵,后半部分就是我们的交叉熵

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_09

6、合页损失(Hinge Loss)

在机器学习中,hinge loss是一种损失函数,它通常用于"maximum-margin"的分类任务中,如支持向量机。数学表达式为:

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_10

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_11

7、log对数损失

Logistic回归的损失函数就是对数损失函数,在Logistic回归的推导中,它假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接着用对数求极值。Logistic回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了log损失函数。

  log损失函数的标准形式:

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_12

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_12

在极大似然估计中,通常都是先取对数再求导,再找极值点,这样做是方便计算极大似然估计。损失函数L(Y,P(Y|X))是指样本X在标签Y的情况下,使概率P(Y|X)达到最大值(利用已知的样本分布,找到最大概率导致这种分布的参数值)。

8、指数损失函数

AdaBoost就是一指数损失函数为损失函数的。

指数损失函数的标准形式:

matlab BP神经网络的损失函数MSE 神经网络常见损失函数_损失函数_14

三、损失函数的代表算法

  • 0-1损失函数:感知机
  • 绝对值损失函数:
  • 平方损失函数:线性回归  
  • 指数损失函数:Adaboost
  • 对数损失函数:逻辑回归
  • 合页损失函数:SVM