机器学习常见的损失函数、代价函数

  • **损失函数(Loss Function):**定义在单个样本上的,指一个样本的误差
  • **代价函数(Cost Function):**定义在整个训练集上,是所有样本误差的平均,也就是所有损失函数值的平均
  • **目标函数(Object Function):**指最终需要优化的函数,一般来说是经验风险+结构风险(代价函数+正则化项)。

损失函数

分类问题

0-1损失函数

机器学习常见的损失函数、代价函数

预测正确时,损失函数值为0;预测错误时,损失函数值为1。该损失函数不考虑预测值与真实值的误差程度。

Hinge损失函数(SVM)

L(w,b)=max{0,1yf(x)} L(w,b)=max\{0,1-yf(x)\}

其中y∈{+1,-1},f(x)=wx+b,当为SVM的线性核时。

Logistic损失函数

L(y,p(yx))=log p(yx) L(y,p(y|x))=-log\ p(y|x)

该损失函数用到了极大似然估计的思想。

P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。

由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。

最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。

交叉熵损失函数(Cross Entry)

H(p,q)=i=1Np(x(i))log q(x(i)) H(p,q)=-\sum_{i=1}^Np(x^{(i)})log\ q(x^{(i)})

交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其中 p(x) 是指真实分布的概率,q(x) 是模型通过数据计算出来的概率估计。

Exponential损失函数(AdaBoost)

L(y,f(x))=exp(yf(x)) L(y,f(x))=exp(-yf(x))

指数损失函数是AdaBoost里使用的损失函数,同样地,它对异常点较为敏感,鲁棒性不够

Log损失函数(LR)

L(y,P(yx))=logP(yx) L(y,P(y|x))=-logP(y|x)

详见

机器学习常见的损失函数、代价函数

回归问题

平方损失函数(Least Squares)

L(y,f(x))=(yf(x))2 L(y,f(x))=(y-f(x))^2

预测值与实际值的误差的平方。

绝对值损失函数(Least Absolute)

L(y,f(x))=yf(x) L(y,f(x))=|y-f(x)|

预测值与实际值的误差的绝对值。

Log-cosh损失函数

Llog(cosh(y,f(x)))=log(cosh(f(x)y))cosh(x)=(ex+ex)2 L_{log(-cosh(y,f(x)))}=log(cosh(f(x)-y)) \\ cosh(x)=\frac {(e^x+e^{-x})}2

log-cosh损失函数比均方损失函数更加光滑,具有huber损失函数的所有优点,且二阶可导。因此可以使用牛顿法来优化计算,但是在误差很大情况下,一阶梯度和Hessian会变成定值,导致牛顿法失效。

分位数损失函数

Lγ(y,f(x))=i:yi<fi(x)(1γ)yifi(x)+i:yifi(x)γyifi(x)γ01γ0.5MAEγ(γ) L_\gamma(y,f(x))=\sum_{i:y_i<f_i(x)}(1-\gamma)|y_i-f_i(x)|+\sum_{i:y_i\ge f_i(x)}\gamma|y_i-f_i(x)| \\ 预测的是目标的取值范围而不是值。γ 是所需的分位数,其值介于0和1之间,γ等于0.5时,相当于MAE。 \\ 设置多个 γ 值,得到多个预测模型,然后绘制成图表,即可知道预测范围及对应概率(两个 γ 值相减)

机器学习常见的损失函数、代价函数

代价函数

均方误差(Mean Squared Error)

MSE=1Ni=1N(y(i)f(x(i))) MSE=\frac 1N\sum_{i=1}^N(y^{(i)}-f(x^{(i)}))

均方误差是指参数估计值与参数真值之差平方的期望值;

MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

通常用来做回归问题的代价函数

均方根误差(Root Mean Squared Error)

RMSE=1Ni=1N(y(i)f(x(i)))2 RMSE=\sqrt[2] {\frac 1N\sum_{i=1}^N(y^{(i)}-f(x^{(i)}))}

均方根误差是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。

通常用来作为回归算法的性能指标

平均绝对误差(Mean Absolute Error)

MAE=1Ni=1Ny(i)f(x(i)) MAE=\frac 1N\sum_{i=1}^N|y^{(i)}-f(x^{(i)})|

平均绝对误差是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。

通常用来作为回归算法的性能指标

借鉴来源

https://www.cnblogs.com/lliuye/p/9549881.html

https://blog.****.net/zuolixiangfisher/article/details/88649110