机器学习中的损失函数
Classification:
1、0-1
1)普通01损失函数
针对于二分类问题,Y = {-1, 1}, f为预测结果,f应该是一个连续值,没有经过激励函数加工的数,如果 fy <= 0 为负
该损失函数能够直观的刻画分类的错误率,但是由于其非凸、非光滑的特点,使得算法很难直接对函数进行优化。
2)Hinge损失函数
对0-1损失函数的扩展,hinge损失函数,即svm中的折页损失函数
L( f, y) = max {0, 1 - fy}
hinge对分类结果有了进一步的限制,它增加了一个margin, 也就是 如果 f 在[0, 1) 它并不认为是属于 1 类的,只有 f >= 1时才认为是正类
hinge损失函数在fy=1处不可导,因此不能用于梯度下降法进行优化,(想知道svm是怎么做的), 而是采用次梯度下降法
2、Logistic
白面上管这个较Logistic,但是感觉就是交叉熵损失函数的扩展,不懂。
参考博客:https://blog.csdn.net/red_stone1/article/details/80735068
1)对于分类是01的交叉熵损失函数:
设g(y)表示sigmod函数,它代表的就是y被分类成1的概率,对于01分类问题来说,
表示分为1类的概率,则分类为0的概率就是:
结合上述两个式子,可以得出x样本最后的分类情况为,对这个式子取log(为什么取log,应该是和最大似然挺相似的,在不改变单调性的基础下,计算方便),得到,这是一个样本,如果是多个样本那就进行累加操作。
直观理解,当y是1时,损失函数就是一个log函数,越接近1越小,当y是0时,第一项不存在,当预测结果越接近0,loss越小,可以参考博客
2)交叉熵的扩展 分类为(-1, 1)
对于sigmod函数又这样一个性质, g(-t) = 1 - g(t)
所以,p(y = 1 | x) = g(t), p(y = -1 | x) = 1 - g(t) = g(-t), 故可以总结出 p(y | x) = g(ys), s表示预测值,然后再取log, 让概率最大,可以转换成 取负数后最小,即
最后转换成:
3、cross entropy
百面P143交叉熵不知道怎么推出来的?!
4、指数损失函数
参考西瓜书
Regression
1、平均绝对值误差(MAE)
特点: 受异常点的影响较小,简单,更好的反应实际情况
缺点:不光滑,不能用梯度下降求解
2、Huber损失函数
对绝对值的一种改进, 当 误差绝对值 在一个很小的范围中采用均方误差, 当大于这个范围时 取绝对值,这样可以避免异常点的影响
橘黄色代表Huber,绿色代表均方误差,蓝色代表绝对值
2、均方误差(MSE)
受异常点影响大,可以用梯度下降求解
3、均方根误差(RMSE)
均方误差的算数平方根