背景:
最近做实验的过程中发现,随着训练集的平均交叉熵损失(Average Cross Entropy,ACE)降低,验证集ACE升高时,分类模型的准确率(Accuracy,ACC)也会出现升高的情况。起初认为这是反直觉的,还以为是自己程序里有bug。经查阅发现也有人遇到相同的问题,并且对这个现象给出了解释(详情见参考链接1)。
通过一下午的认真思考,尝试将ACC与ACE之间的关系进行整理。我理解不对的地方,或者有更加规范的证明方法,劳烦指教~
正文:
一、交叉熵损失
如下为对应于Softmax回归的交叉熵损失函数(来自于UFLDL教程):
二、单个样本的ACC与ACE关系分析
想分析一批训练数据会使ACC与ACE产生什么样的关系,需要首先了解单个样本时ACC与ACE可以有什么样的关系。
如下为交叉熵损失函数退化为单样本时的公式:
J(θ)=-1 *1{y=label} * logP(y=label)
单个样本时,ACC和CE(Cross E )会出现以下9种情况:
CE\ACC | 上升 | 不变 | 下降 |
上升 | ①:二分类时不 |