如何训练你的准确率?

6e924daafd8a706fe25312926b5e3c93.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

最近 arXiv 上的一篇论文《EXACT: How to Train Your Accuracy》[1] 引起了笔者的兴趣,顾名思义这是介绍如何直接以准确率为训练目标来训练模型的。正好笔者之前也对此有过一些分析,如《函数光滑化杂谈:不可导函数的可导逼近》[2]、《再谈类别不平衡问题:调节权重与魔改 Loss 的对比联系》等, 所以带着之前的研究经验很快完成了论文的阅读,写下了这篇总结,并附上了最近关于这个主题的一些新思考。

3dba2da9fe25dadb762ea55f19fe444c.png

失实的例子

论文开头指出,我们平时用的分类损失函数是交叉熵或者像 SVM 中的 Hinge Loss,这两个损失均不能很好地拟合最终的评价指标准确率。为了说明这一点,论文举了一个很简单的例子:假设数据只有 三个点,-1 和 1 分别代表负类和正类,待拟合模型是 f(x)=x-b,b 是参数,我们希望通过 来预测类别。如果用“sigmoid + 交叉熵”,那么损失函数就是 , 代表一对标签数据;如果用 Hinge Loss,则是 。

由于只是一个一维模型,我们可以直接网格搜索出它的最优解,可以发现如果用“sigmoid + 交叉熵”的话,损失函数的最小值在 b=0.7 取到,而如果是 Hinge Loss,那么 。然而,如果要通过 完全分类正确,那么 才行,因此这说明了交叉熵或 Hinge Loss 与最后评测指标准确率的不一致性。

看上去是一个很简明漂亮的例子,但笔者认为它是不符合事实的。其中,最大的问题是模型设置温度参数,即一般出现的模型是 而不是 ,刻意去掉温度参数来构造不符合事实的反例是没有说服力的,事实上补上可调的温度参数后,这两个损失都可以学到正确的答案。更不公平的是,后面作者在提出自己的方案 EXACT 时,是自带温度参数的,并且温度参数是关键一环,换句话说,在这个例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值