【论文精读】Improving Simple Models with Confidence Profiles
Improving Simple Models with Confidence Profiles
原文地址:Improving Simple Models with Confidence Profiles
Abstract
用ProWeight方法进行模型迁移,使用linear probes通过flattened intermediate representations生成confidence score。在使用中间层的confidence scores的简单模型的训练过程中对样本进行理论上合理的加权。在CIFAR-10上,这个weighting method用一个复杂的Resnet一小部分得到了3-4%的提升;在一个生产问题中使用作者方法,CART模型的精度提升了13%。
1 Introduction
作者提出三个原因用来解释为什么关注提高简单模型:
- 某些领域专家的偏好:一些领域的专家有一些自己喜欢用的模型。
- 可用的数据很少:避免过拟合,提供insight,使用预训练的模型进行迁移也很可取。
- 资源有限:当电力内存受限时,简单模型更可取。
之前提到的linear probes就是logistic分类器,添加到预训练网络中的中间层,以便从该层获取预测。通过这些confidence scores和probe的输出所构成的confidence profile来weight样本来帮助简单模型的训练。作者先后尝试了area under the curve (AUC)和神经网络来学习这些weights。
这种weight样本的思想和curriculum learning类似,就是首先关注那些比较容易学习的样本。
2 General Framework
这里的思想就是得到那些容易训练(easier)的样本去训练,可以通过area under the curve (AUC)算法确定easier的样本,由此可以得到用来训练简单模型的数据集每个样本的权重。那么优化问题变为:
其中是损失函数,是参数空间,是权重向量存在的空间,对权重大小进行了限制以避免权重全为零的解出现。
2.1 Algorithm Description
首先在上训练一个复杂的模型,就是flattened的表征(可能就是说把复杂网络这一层的信息都集中到了中,相当于flattened了),那么:
是softmax,是类别数,在数据集上进行训练。就是标签的confidence score。
教师的精度也决定了学生表现的好坏,教师提供的probe confidence scores不能总是太好,也不能总是太差。
ProWeight算法在Algorithm 1中展示步骤(5)计算权重可以使用AUG算法(Algorithm 2),或是将confidence scores作为输入的正则化神经网络,正则项为,并且神经网络在batch上训练,正则项要计算所有的样本。然后使用weights在上训练简单样本就好了。
2.2 Theoretical Justification
这里用了importance weighting的思想,得出:
3 Experiments
主要有两个实验,一个在CIFAR-10上,一个在芯片制造厂商的数据集上。还跟蒸馏(distillation)方法对比了。
3.1 CIFAR-10
复杂网络使用了15个Resnet单元。简单网络使用了复杂网络的一部分,但初始的卷积层,和最后的平均池化层和全连接层都一样,四个简单模型的体积分别是复杂网络的1/5,1/3,1/2,2/3。结果如下:
这里作者中指出,复杂模型的精度太高对简单模型weights的确定也不利,这样会使得全部接近于1,即不利于区分那些样本容易学习。
3.2 Manufacturing
在另外一个预测芯片刻蚀质量的实验中也表现出了不错的效果,有兴趣的可以看一下原文中的Setup。
4 Related Work and Discussion
这里作者将ProfWeight和其他相关的迁移方法相比较,与Distillation相比,ProfWeight对于模型的适应性更强,因为它只需要对样本进行Weighting,适用于几乎所有的模型,而且相比Distillation,占用的资源更少;相比Curriculum Learning,Weighting过程是通过在复杂网络上训练Probes自动进行的,不需要人工设计;Boosting方法跟ProfWeight差异比较大。
未来的工作中作者提到要研究一下使用Weighted样本对训练简单模型的时间的影响,同时也要探索更多的weighting的策略。