美文网首页机器学习-算法理论
预估连续值概率的loss function选择

预估连续值概率的loss function选择

作者: shudaxu | 来源:发表于2019-05-22 11:16 被阅读0次

    如果模型的label为连续的概率值,选择什么loss fuc进行学习。
    本质为regression问题

    1、cross entropy
    首先在直觉上,用CE预估连续值,似乎有问题,因为当pred=label的时候,loss本身大于0,而在分类的时候,pred=label时loss为0,而离散交叉熵本身非负,0一定是最小值,所以此时梯度也为0,非常符合认知。而当连续值预估的时候,loss>0则梯度“应该”也不为0。
    但是实际推导一下,假设真实概率p,预估概率q,则loss对q的导数为-p/q + (1-p)/(1-q),实际上当p=q的时候,loss的gradient也为0,由chain rule可得,对输出前一层的neuron的偏导也会为0。
    以下会用更直观的图像来表示

    2、MSE
    MSE通常用于regression,其假设误差遵循Normal Distribution
    其实当输入为Sigmoid激活时,不能使用mse做loss,这样会导致梯度弥散,可以参考gradient vanishing/explode 中的数值分析中的第六点
    当然,这里还有个问题是,如果使用sigmoid激活。对于朴素的Logistic Regression来说,优化问题是convex的,而对于MSE loss就不是convex的了。对于DNN的状况,则大部分就是梯度问题,具体可见:https://stats.stackexchange.com/questions/326350/what-is-happening-here-when-i-use-squared-loss-in-logistic-regression-setting

    3、对比
    先说结论,CE在距离最优值一定距离的点上梯度比MSE更大,但是在极值(靠近0,1)附近的gradient非常大,所以训练的时候可能需要对gradient做额外的处理。如gradient clipping

    通过loss和gradient更直观地观察:下图中,label p=0.4

    Loss函数值


    loss值,蓝色为CE,红色为MSE

    由于边缘的gradient过大,所以这里CE的梯度只取了0.1~0.9范围内的


    gradient值,蓝色为CE,红色为MSE

    CE完整的梯度


    cross entropy的gradient

    针对不同label值的gradient曲线:


    绿0.2,蓝0.4,红0.6

    REFER
    http://fa.bianp.net/blog/2014/surrogate-loss-functions-in-machine-learning/
    mmse

    相关文章

      网友评论

        本文标题:预估连续值概率的loss function选择

        本文链接:https://www.haomeiwen.com/subject/bvkszqtx.html