zoukankan      html  css  js  c++  java
  • 机器学习中的损失函数

    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)

        均方误差的算数平方根    

  • 相关阅读:
    展示之前的作品
    let和const的一些知识点
    javascript执行上下文和变量对象
    数据类型隐式转换及数据类型判断方式总结
    CSS元素隐藏方法总结
    ES6 —— 数组总结
    小程序性能相关
    nginx和resin一二三
    修改XAMPP的默认根目录
    面试题延伸及总结
  • 原文地址:https://www.cnblogs.com/zhaopAC/p/9726768.html
Copyright © 2011-2022 走看看