个人网站首页界面,做网站为什么要域名 解析绑定,网站租金可以做办公费吗,主题字体wordpress文 | kid丶(知乎作者)编 | 夕小瑶尽管深度学习给工业界带来了一波上线春天#xff0c;但是总有很多比较难的业务#xff0c;模型反复迭代后准确率依然达不到预期的产品标准#xff0c;难以满足用户期望。以下为工业界常见讨#xff08;si#xff09;论#xff08;b#… 文 | kid丶(知乎作者)编 | 夕小瑶尽管深度学习给工业界带来了一波上线春天但是总有很多比较难的业务模型反复迭代后准确率依然达不到预期的产品标准难以满足用户期望。以下为工业界常见讨si论b场景RD小哥哥一顿调参输出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.pdfArxiv访问慢的小伙伴可以在【夕小瑶的卖萌屋】后台回复关键词【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 进行校准。最终的结果是这样的详细可参考论文。讨论上述得实验结果我觉得对很多研究领域都是很有启发意义的。模型的置信度应当是和准确率匹配的这样的模型我觉得才是有意义的否则以很高置信度进行很离谱的预测错误的模型会让人感觉这个模型好像什么都会、又好像什么都不会。ECE 的指标是否能反应样本的一些性质例如难易程度、是否为噪声等。该文章是间接的去优化ECE的能否有直接优化的形式或者主动学习里面能否考虑这一点来挑选样本后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集