zoukankan      html  css  js  c++  java
  • Expected Calibration Error (ECE)模型校准原理解析

    Expected Calibration Error (ECE)模型校准原理解析

     对于高风险应用来说,机器学习模型对其预测的置信度是至关重要的。model calibration(模型校准)就是要让模型结果预测概率和真实的经验概率保持一致。模型校准这个话题比较小众,博主也是在看一篇Self-KD的论文时才看到的。模型校准的metrics有很多,这里博主仅仅讨论Expected Calibration Error (ECE)这一个比较经典的模型校准metric。

    参考资料

    1. 什么是模型校准?

     模型校准就是要让模型结果预测概率和真实的经验概率保持一致。说人话也就是,在一个二分类任务中取出大量(M个)模型预测概率为0.6的样本,其中有0.6M个样本真实的标签是1。总结一下,就是模型在预测的时候说某一个样本的概率为0.6,这个样本就真的有0.6的概率是标签为1。

     上面是一个正面的例子,下面我再来举一个反面的例子说明模型校准的重要性。还是在一个二分类任务中取出大量(M个)模型预测概率为0.6的样本,而这些样本的真实标签全部都是1。虽然从accuracy的角度来考察,模型预测样本概率为0.6最后输出时会被赋予的标签就是1,即accuracy是100%。但是从置信度的角度来考察,这个模型明显不够自信,本来这些全部都是标签为1的样本,我们肯定希望这个模型自信一点,输出预测概率的时候也是1。

    2. Expected Calibration Error (ECE)

     有了前面对模型置信度的感性了解,我们接下来看看该怎么用Expected Calibration Error去定量度量。首先来一张原论文On Calibration of Modern Neural Networks的图:
    在这里插入图片描述
     为了能够定量地度量置信度,作者将[0, 1]区间划分为多个bin(这里划分为了5个bin),所有的二分类样本都将根据模型对其预测的结果分别落入这5个bin之中的1个。在每个bin之中计算平均的模型confidence,再与该bin中样本真实标签的平均accuracy进行对比,两者之差的绝对值就能度量模型的置信度,差距越大代表模型置信度越小。公式如下:
    E C E = ∑ b = 1 B n b N ∣ a c c ( b ) − c o n f ( b ) ∣ (1) ECE = sum_{b=1}^B frac{n_b}{N} |acc(b) - conf(b) | ag{1} ECE=b=1BNnbacc(b)conf(b)(1)

     其中,b代表第b个bin,B代表bin的总数, n b n_b nb代表第b个bin中样本的总数,acc(b)代表第b个bin中样本真实标签的平均值,conf(b)代表第b个bin中模型预测概率的平均值。

  • 相关阅读:
    Python
    Python
    Python
    #2035:人见人爱A^B
    #2030:汉字统计--统计给定文本文件中汉字的个数
    #2028:Lowest Common Multiple Plus(n个数的最小公倍数)
    幂次方的四种快速取法(不使用pow函数)
    爬楼梯:经典动态规划+递归法
    最小生成树算法【图解】:一文带你理解什么是Prim算法和Kruskal算法
    KMP算法-从头到尾彻底理解KMP
  • 原文地址:https://www.cnblogs.com/lsl1229840757/p/14381483.html
Copyright © 2011-2022 走看看