机器学习-损失函数
有监督学习涉及的常用损失函数及其特点
有监督学习中,损失函数刻画了模型和训练样本之间的匹配程度。
常用的损失函数有:0-1 损失函数,合页损失函数,对数损失函数,平方损失函数,绝对损失函数,Huber 损失函数等。下面分别介绍几个损失函数。
0-1 损失函数
对于二分类问题,希望分类器输出的值与样本真实值一致,如果结果与真实结果不一致则相当于对数据造成了损失。最自然的损失函数就是 0-1 损失:
$L_{0-1} (f(x),y) = 1_{fy \leq 0}$
其中 $1_{fy \leq 0}$ 是指示函数,当预测结果与真实值相同时为 0,预测结果与真实值不相同时为 1。此损失函数能很直观地刻画分类的错误率,但是由于其非凸、非光滑的特点,使得优化算法很难直接对函数进行优化。
合页(Hinge)损失函数
合页损失函数常用在支持向量机中,即使用支持向量机最大化样本到分类超平面的距离就相当于一个最小化合页损失的问题。
$L_{hinge}(f(x),y) = max{0,1-f(x)y}$
其中 $y=+1\;\; or \;\; -1$,$f(x) = wx+b$ 即当样本分类正确且函数间隔大于等于 1 时,合页损失为 0,否则合页损失为 $1-fy$,合页损失其实对分类正确的样本也给出了一定的惩罚,对异常值也相对敏感一些。且合页损失在 $fy=1$ 处不可导,因此不能使用梯度下降法进行优化。,而是使用次梯度下降法进行优化。
对数损失函数
对数损失函数又称为logistic损失函数,或者极大似然损失函数,该损失函数利用极大似然估计的思想。
$L(y,p(y|x)) = -logp(y|x)$
其中,$P(Y|X)$ 的通俗的解释是:在当前模型的基础上,对于样本 X,其预测值为 Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了便于计算,对其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该越小,因此再加个负号取反。经典的对数损失包括交叉熵等。
平方损失函数
最小二乘法是线性回归的一种方法,它将回归的问题转化为了凸优化的问题。最小二乘法的基本原则是:最优拟合曲线应该使得所有点到回归直线的距离和最小,常用的损失函数就是平方损失函数。
$L_{square}(f(x),y) = (f(x)-y)^{2}$
平方损失函数是光滑函数,因此能够使用梯度下降法对其进行优化。然而,当真实值与预测值距离较远时,平方损失函数的惩罚力度非常大,因此对于异常点比较敏感。
绝对损失函数
$L_{absolute}(f(x),y) = |f(x)-y|$
绝对损失函数相当于在做中值回归,相比做均值回归的平方损失函数,绝对损失函对异常点的鲁棒性更强。但是其在 $f(x) = y$处无法求导数。
Huber损失函数
Huber损失函数考虑了平方损失函数和绝对损失函数的综合,一方面处理不可导问题,一方面处理对异常点的鲁棒性问题。
$L_{Huber}(f(x),y) = \left\{\begin{matrix}
(f(x)-y)^2 & |f(x)-y)| \leq \delta\\
2 \delta |f(x)-y)|-\delta^2& |f(x)-y)| > \delta
\end{matrix}\right.$
Huber 损失函数在 $|f(x)-y|$ 较小时为平方损失,在 $|f(x)-y|$ 较大时为先行损失,处处可导,且对异常点的鲁棒性较高。
指数损失函数
指数损失函数用于Boosting方法中,其标准形式为:
$L_{exp}(y,f(x)) = exp(-yf(x))$
其中,$ f(x) = \sum_{m=1}^{M} \alpha_{m} G_{m}(x) $ 是Boosting算法的最终分类器。
参考文献
[1] http://www.itongji.cn/detail?type=1040
[2] https://www.cnblogs.com/hejunlin1992/p/8158933.html
[3] 百面机器学习, 葫芦娃, 人民邮电出版社.