Calibration: 一个工业价值极大,学术界却鲜有研究的问题!

文 | kid丶(知乎作者)
编 | 夕小瑶

尽管深度学习给工业界带来了一波上线春天,但是总有很多比较难的业务,模型反复迭代后准确率依然达不到预期的产品标准,难以满足用户期望。

以下为工业界常见讨(si)论(b)场景:

R&D小哥哥一顿调参输出,RoBERTa都用上了,终于将模型从80%准确率提升到了90%,但是PM小姐姐说,“不行!咱们必须要达到95%准确率才能上线!否则就是对用户和产品逼格的伤害!”

怎么办呢?

熟悉工业界上线套路的小伙伴马上就能给出答案,那就是 提高模型决策的阈值! PM小姐姐只是根据产品标准定义了模型准确率(或者说精确率,precision),但是并不在乎召回率有多高(毕竟模型只要没上线,就相当于召回率为0)。

那么基于上面的思路:假如模型的softmax输出可靠,比如二分类场景,模型softmax之后1类的输出是0.92,能表征模型有92%的把握说这是个正例,并且模型的这个把握是精准的,那么PM小姐姐说要达到95%准确率,那我们就疯狂提高模型的决策阈值就好了,这样把那些不确定性高的样本砍掉了,模型准确率自然就上来了。

然而,神经网络并不一定这么靠谱,你看模型的测试集输出的话,却常常发现模型要么以99.999的概率输出来判定正例,要么0.0001的概率输出来判定负例,基本没有样本落在0.1~0.9区间内。那么这时候上面的思路就失效了。

那么有没有办法让模型的softmax输出能真实的反映决策的置信度呢? 这个问题,就被称为Calibration问题(直译是叫“校准”)。

故事要从一篇发表于2017年的ICML顶会论文开始,目前这篇论文引用量1001。

论文标题:

On Calibration of Modern Neural Networks

链接:

https://arxiv.org/pdf/1706.04599.pdf

Arxiv访问慢的小伙伴可以在【夕小瑶的卖萌屋】后台回复关键词【0106】下载论文pdf~

神经网络的 overconfidence

首先,让咱们来思考一个普通图像分类任务。对于一张“koala”的图像,在经过神经网络后会得到 logits 输出 ,经过 softmax 层后得到对各类别的预测的后验概率,接着我们选择概率最大的类别( koala)输出为最后的预测类别。这里,最终的预测类别 ,其对应的置信度为 。在大多情况下,我们只关心类别的预测 有多准,根本不 care 置信度是怎样的。然而,在一些实际应用场景下,置信度的度量也同样重要。例如:

如上图,对于自动驾驶中的目标识别任务,车辆的前方出现了一个人,神经网络会将其识别成塑料袋,此时输出的置信度为50%(低于阈值),则可通过其它传感器进行二次的正确识别(识别为人)。但想想看,若神经网络对塑料袋预测的置信度为90%会怎样?再例如:

使用 Resnet 模型简单的对一些图片任务进行训练,收敛后的模型对测试集的平均置信度高达80%-85%,然而只有将近70%的图片能被正确分对(红色代表分错,绿色代表分对)。这意味着啥?训练好的模型好像有点盲目自信,即出现 overconfidence 现象,或者可以称为模型的准确率和置信度不匹配(miscalibration)。

预期校准误差(ECE)

直观的来看,模型的准确率应当和置信度相匹配。一个完美校准的模型可定义成如下所示:

即,模型置信度 等于概率 的条件下模型的预测 为真实标记 的概率同样也为 。因此,本文提出一个新的度量方式叫做 预期校准误差(Expected Calibrated Error, ECE) 来描述模型学习的匹配程度:

很简单,其实就是将前面那个完美校准模型的等式写成差的期望的形式。我们将期望进一步展开可得到:

其中:

这里的 代表着一个个根据置信度区间划分的一个个桶(用来装样本的),如下图所示:

例如,我们将置信区间平均划分成5份,然后将样本按照其置信度挨个送到对应的桶中,分别计算每个桶中的平均置信度和准确率,两者的差值(Gap)的期望就是所定义的 ECE。

读到这的读者应该能逐步体会本文想干一件啥事了。本文首先引出这样一个问题,深度模型在学习过程中出现准确率和置信度的严重不匹配问题,接着提出了一个合理的评价指标来描述模型学习的匹配程度,所以接下来,它要提出方法来想办法最小化期望校准误差(ECE)。

什么原因导致神经网络出现准确率与置信度不匹配?

然而 ECE 是没办法直接最小化的,因此本文尝试着做一些探索性的实验来观察啥因素会使得模型的 ECE 变大。本文分别从三个方面上去进行实验:

▲网络复杂度对ECE的影响

网络复杂度对 ECE 的影响: 首先,作者使用两个模型(LeNet和ResNet)分别对CIFAR-100数据集进行了训练,准确率分别为55.1%和69.4%,ResNet 在预测性能上完爆LeNet。然而,ResNet 置信度(右图蓝色+红色部分)的分布和准确率(右图蓝色部分)出现了严重的不匹配,导致二者的 Gap (红色部分)非常大。注意完美校准模型的分布应当是蓝色部分刚好和对角线重合,且没有红色 Gap 部分。

▲网络的宽度和深度对ECE的影响

网络宽度和深度对 ECE 的影响: 在得知模型复杂度会影响模型的 ECE 后,作者紧接着做了网络宽度和深度对模型 ECE 和错误率(Error)的影响。可以看到,在控制变量前提下,单方面的增加网络的深度和宽度均会使得模型的 Error 降低,这是我们所期望的;然而,ECE也会同样的随着上升。换句话来说,一昧的增加模型复杂度能有效的提高模型的预测性能,但同样带来的问题是模型的 overconfidence 问题愈发严重。

▲归一化和权重衰减对ECE的影响

normalization 和 weight decay 对 ECE 的影响: 接着的实验也是我们为提高模型性能经常使用的 batch normalization 和 loss regularization。左图: 使用 batch normalization 会有效的提升模型的性能,但同时也会提升模型的 ECE。右图: weight decay 通常用来调节 L2 正则的权重衰减系数,随着其系数的增加相当于更多的强调模型参数 w 要尽可能的小,能有效的防止模型过拟合。该现象表明,模型越不过拟合,其ECE是越小的,也就是说模型越不会 overconfidence ;换句话说,模型对样本的拟合程度和对样本的置信度是息息相关的,拟合得越好,置信度越高,所以 ECE 越大。(个人理解,欢迎评论区指正~)

我们该如何对模型进行校准呢?

作者接下来又做了一个很有意思的实验,在CIFAR-100上训练模型500个 epoch,其中在第250个 epoch 和第375个 epoch 下调节学习率,观察测试集上的 test error 和 test NLL 的变化情况。Test NLL 的定义如图中所示,它其实等价于测试集上的交叉熵。这个实验啥意思呢?我调节了一下学习率后,测试性能得到了提升,但是测试集上的交叉熵却出现了过拟合现象(出现了反常的上升现象)。有意思的点来了! 有人肯定会 argue 不是说好本文研究的是overconfidence嘛?即模型的置信度太高而准确率过低,这里对 NLL overfitting 岂不是好事,因为负对数似然上升了等价于模型的置信度的降低了。注意:这里的 是对正确类上的置信度,而前面的实验是对预测类的置信度 !其实认真想想,是一个意思,前面之所以 confident 很高的样本准确率很低,正是因为其在正确类别上的置信度太低导致的!!(这部分卡了很久)

该结果可以表明,模型置信度和准确率的不匹配很大可能的原因来自于模型对 NLL 的过拟合导致的。所以,咋办呢?最小化 NLL 呗。

此时,本文提出在验证集上对带 temperature 参数的 softmax 函数进行校准。即我们训练完模型后,最小化 NLL 来学习 temperature 参数,注意到对该项的优化并不会影响模型预测的准确率,只会对模型的 confidence 进行校准。最终的结果是这样的,详细可参考论文。

讨论

上述得实验结果我觉得对很多研究领域都是很有启发意义的。

  1. 模型的置信度应当是和准确率匹配的,这样的模型我觉得才是有意义的,否则以很高置信度进行很离谱的预测错误的模型会让人感觉这个模型好像什么都会、又好像什么都不会。

  2. ECE 的指标是否能反应样本的一些性质,例如难易程度、是否为噪声等。

  3. 该文章是间接的去优化ECE的,能否有直接优化的形式,或者主动学习里面能否考虑这一点来挑选样本?

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

肖仰华 | 大规模、高质量的金融知识图谱,如何自动化构建?

本文转载自公众号:恒生技术之眼。◆本文根据2019恒生技术开放日肖仰华教授演讲整理◆肖仰华:复旦大学教授、博士生导师,复旦大学知识工场实验室创始人。知识图谱(Knowledge Graph, KG)本质上是一种大规模语义网络&…

Android官方开发文档Training系列课程中文版:构建第一款安卓应用之启动另一个Activity

原文地址:http://android.xsoftlab.net/training/basics/firstapp/starting-activity.html#CreateActivity 在完成了上一节课之后,你有了一个带有输入框和按钮的单屏幕Activity。在这节课中,你将会在MyActivity中添加一些代码,以…

美团点评Kubernetes集群管理实践

背景 作为国内领先的生活服务平台,美团点评很多业务都具有非常显著、规律的”高峰“和”低谷“特征。尤其遇到节假日或促销活动,流量还会在短时间内出现爆发式的增长。这对集群中心的资源弹性和可用性有非常高的要求,同时也会使系统在支撑业务…

论文浅尝 | 基于知识图谱 Embedding 的问答

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为知识图谱问答。来源:WSDM 2019链接:https://dl.acm.org/citation.cfm?doid3289600.3290956目前知识图谱问答(本文简写为QA-KG,question answeri…

NeurIPS 2020 | 没有乘法的神经网络,照样起飞?

文:苏剑林编:兔子酱单位:追一科技今天给大家介绍一篇1962年的论文《Computer Multiplication and Division Using Binary Logarithms》[1],作者是John N. Mitchell,他在里边提出了一个相当有意思的算法:在二…

LeetCode 1160. 拼写单词

文章目录1. 题目2. 解题1. 题目 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串&…

MTFlexbox自动化埋点探索

1. 背景 跨平台动态化技术是目前移动互联网领域的重点关注方向,它既能节约人力,又能实现业务快速上线的需求。经过十年的发展,美团App已经变成了一个承载众多业务的超级平台,众多的业务方对业务形态的快速迭代和更新提出了越来越高…

Android官方开发文档Training系列课程中文版:添加ActionBar之设置ActionBar

导言- 添加ActionBar 原文地址:http://android.xsoftlab.net/training/basics/actionbar/index.html ActionBar是很多重要的特性之一,你可以用它实现用户的自定义行为。它提供了若干的用户界面特性,以便你的应用可以很快的提供与其它应用很…

论文浅尝 | 具有图卷积网络和顺序注意力机制的应用于目标导向的对话系统

论文笔记整理:吴涵,天津大学硕士,研究方向:自然语言处理。来源:2019 Association for Computational Linguistics论文链接:https://www.mitpressjournals.org/doi/full/10.1162/tacl_a_00284开放源码&#…

Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99%

两个奇技淫巧,将 Docker 镜像体积减小 99% 使用Docker运行程序 Docker的基本使用(部署python项目) 一、准备项目 我写的是一个爬取某ppt网站的代码,就一个ppt1.py是爬虫,然后,ppts是存放下载的ppt的 二、准备requirement.txt文件…

Pytorch与Tensorflow,哪个更适合你?

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

LeetCode 500. 键盘行

文章目录1. 题目2. 解题1. 题目 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 示例: 输入: ["Hello", "Alaska", "Dad", "Peace"] 输出: ["Alaska", &quo…

XGBoost缺失值引发的问题及其深度分析

1. 背景 XGBoost模型作为机器学习中的一大“杀器”,被广泛应用于数据科学竞赛和工业领域,XGBoost官方也提供了可运行于各种平台和环境的对应代码,如适用于Spark分布式训练的XGBoost on Spark。然而,在XGBoost on Spark的官方实现中…

Android官方开发文档Training系列课程中文版:添加ActionBar之添加Action按钮

原文地址 : http://android.xsoftlab.net/training/basics/actionbar/adding-buttons.html 添加Action按钮 ActionBar允许在当前的APP上下文内添加很多重要的功能按钮。这样便可以通过图标或者文字作为功能按钮直接展示在ActionBar上。功能按钮如果没有足够空间或无足轻重的按…

快手搜索技术部招聘NLP算法工程师!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术工作职责快手搜索技术部招聘,负责研发快手主APP搜索中的关键NLP模型/算法,包括但不限于:适合快手数据生态的NLP预训练语言模型,并推动预训练模型在query解析&am…

论文浅尝 | 解决知识图谱补全中的长尾关系和不常见实体问题

论文笔记整理:汪寒,浙江大学硕士。链接:https://www.aclweb.org/anthology/P19-1024.pdf动机KG的分布遵循长尾分布,大部分关系只有很少的三元组,且大体趋势是关系出现的频率和与之相关的不常见实体的比例呈反比关系。而…

LeetCode 944. 删列造序

1. 题目 题目链接 每个单词的位组成的列非降,最少删除几列。 示例 1:输入:["cba", "daf", "ghi"] 输出:1 解释: 当选择 D {1},删除后 A 的列为:["c&quo…

Android官方开发文档Training系列课程中文版:添加ActionBar之自定义ActionBar样式

原文地址 : http://android.xsoftlab.net/training/basics/actionbar/styling.html ActionBar的样式 ActionBar提供了为用户提供了常见的习惯性的用户界面以及按钮功能。但是这并不意味着必须要和其它APP看起来一模一样。如果需要设计更符合产品品牌样式风格的话,…

美团 iOS 工程 zsource 命令背后的那些事儿

zsource 命令是什么? 美团 App 在 2015 年就已经基于 CocoaPods 完成了组件化的工作。在组件化的改造过程中,为了能够加速整体工程的构建速度,我们对需要集成进美团 App 的组件进行了二进制化,同时提供一个叫做 cocoapods-binary …

互联网大厂CTR预估前沿进展

文 | Ruhjkg编 | 小鹿鹿lulu源 | 知乎前言CTR(click through rate)预估模型是广告推荐领域的核心问题。早期主要是使用LR(线性回归)人工特征工程的机器学习方法,但是存在人工组合特征工程成本较高,不同任务…