一、损失函数简介
损失函数主要分为两大类:分类损失和回归损失
1.回归损失:
- 1 均方误差(MSE 二次损失 L2损失) 它是我们的目标变量与预测值变量差值平方。
- 2 平均绝对误差(MAE L1损失) 它是我们的目标变量与预测值变量差值绝对值。 关于MSE与MAE的比较。MSE更容易解决问题,但是MAE对于异常值更加鲁棒。
2.分类损失:
- 1 交叉熵损失函数。 是目前神经网络中最常用的分类目标损失函数。
- 2 合页损失函数 合页损失函数广泛在支持向量机中使用,有时也会在损失函数中使用。缺点:合页损失函数是对错误越大的样本施以更严重的惩罚,但是这样会导致损失函数对噪声敏感。
二、损失函数样式
1、MSE(Mean Square Error)均方误差
MSE是真实值与预测值的差值的平方然后求和平均。
通过平方的形式便于求导,所以常被用作线性回归的损失函数。
2、MAE(Mean Absolute Error)平均绝对误差
MAE是真实值与预测值绝对误差的平均值,可以更好地反映预测值误差的实际情况。
3、RMSE(Root Mean Square Error)均方根误差
RMSE是衡量观测值与真实值之间的偏差,常用来作为机器学习模型预测结果衡量的标准。
4、SD(Standard Deviation)标准差
SD是方差的算术平均根。用于衡量一组数值的离散程度。
注:avg(x)表示mean值
5、交叉熵损失(Cross Entry Loss)
5.1、熵是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望,公式如下:
n表示事件可能发生的情况总数
其中一种比较特殊的情况就是掷硬币,只有正、反两种情况,该种情况(二项分布或者0-1分布)熵的计算可以简化如下:
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表示事件可能发生的情况总数):
KL散度的值越小表示两个分布越接近。
5.3、交叉熵
我们将KL散度的公式进行变形,得到:
前半部分就是p(x)的熵,后半部分就是我们的交叉熵:
6、合页损失(Hinge Loss)
在机器学习中,hinge loss是一种损失函数,它通常用于"maximum-margin"的分类任务中,如支持向量机。数学表达式为:
7、log对数损失
Logistic回归的损失函数就是对数损失函数,在Logistic回归的推导中,它假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接着用对数求极值。Logistic回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了log损失函数。
log损失函数的标准形式:
在极大似然估计中,通常都是先取对数再求导,再找极值点,这样做是方便计算极大似然估计。损失函数L(Y,P(Y|X))是指样本X在标签Y的情况下,使概率P(Y|X)达到最大值(利用已知的样本分布,找到最大概率导致这种分布的参数值)。
8、指数损失函数
AdaBoost就是一指数损失函数为损失函数的。
指数损失函数的标准形式:
三、损失函数的代表算法
- 0-1损失函数:感知机
- 绝对值损失函数:
- 平方损失函数:线性回归
- 指数损失函数:Adaboost
- 对数损失函数:逻辑回归
- 合页损失函数:SVM