赞
踩
©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 追一科技
研究方向 | NLP、神经网络
最近 arXiv 上的一篇论文《EXACT: How to Train Your Accuracy》[1] 引起了笔者的兴趣,顾名思义这是介绍如何直接以准确率为训练目标来训练模型的。正好笔者之前也对此有过一些分析,如《函数光滑化杂谈:不可导函数的可导逼近》[2]、《再谈类别不平衡问题:调节权重与魔改 Loss 的对比联系》等, 所以带着之前的研究经验很快完成了论文的阅读,写下了这篇总结,并附上了最近关于这个主题的一些新思考。
失实的例子
论文开头指出,我们平时用的分类损失函数是交叉熵或者像 SVM 中的 Hinge Loss,这两个损失均不能很好地拟合最终的评价指标准确率。为了说明这一点,论文举了一个很简单的例子:假设数据只有 三个点,-1 和 1 分别代表负类和正类,待拟合模型是 f(x)=x-b,b 是参数,我们希望通过 来预测类别。如果用“sigmoid + 交叉熵”,那么损失函数就是 , 代表一对标签数据;如果用 Hinge Loss,则是 。
由于只是一个一维模型,我们可以直接网格搜索出它的最优解,可以发现如果用“sigmoid + 交叉熵”的话,损失函数的最小值在 b=0.7 取到,而如果是 Hinge Loss,那么 。然而,如果要通过 完全分类正确,那么 才行,因此这说明了交叉熵或 Hinge Loss 与最后评测指标准确率的不一致性。
看上去是一个很简明漂亮的例子,但笔者认为它是不符合事实的。其中,最大的问题是模型设置温度参数,即一般出现的模型是 而不是 ,刻意去掉温度参数来构造不符合事实的反例是没有说服力的,事实上补上可调的温度参数后,这两个损失都可以学到正确的答案。更不公平的是,后面作者在提出自己的方案 EXACT 时,是自带温度参数的,并且温度参数是关键一环,换句话说ÿ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。