淘先锋技术网

首页 1 2 3 4 5 6 7

在讲方法之前,作者提出了一个概念:给定一个样本,这个样本的标签y_{x}是确定的,即y_{x}\in \left\{ 1,2,...,C\right\},但是有的样本本身表达的情绪就很模糊,标签其实是不太确定的,就跟下面这张图里的两个样本一样。所以作者提出了一种标签潜在分布\widetilde{y}_{x}\in R^{C-1},这个\widetilde{y}_{x}代表的是该样本被分成其他类别的概率分布。且

该网络结构包含以下几个部分:(1)C个挖掘潜在分布的辅助分枝,一个具有相同结构的目标分枝。(2)两两非确定性估计,其中不确定性估计模型由两个FC层组成。每个辅助分枝都充当C-1类的分类器去寻找样本x的潜在分布\widetilde{y}_{x}

\widetilde{y}_{x}y_{x}联合指导目标分枝,此外,还对这些分支进行正则化,通过它们的相似矩阵来预测图像的一致性关系。需要特别注意的是,所有辅助分支和不确定性估计模块最后都将被删除,只留下目标分支用于推理。因此,整个框架是端到端的,可以灵活地集成到现有的网络架构中,而无需额外的推理成本。

潜在标签挖掘

举个例子,假设表情被分成1,2,3,4,5,6,7,8这8类,那么就需要8个分类器去预测每个样本的潜在分布。考虑到计算效率,作者采用了多分支的结构,共享低层特征。注意:所有的分支都有相同的结构,并且共享低层特征(比如Resnet的前三个阶段)。图中的Classifier 1、Classifier 2、... 、Classifier C都是C-1类分类器,只有Classifier 0是C类分类器。

训练时,使用除第 j 类的图像以外的其他 C-1 类图像来训练第 j 个辅助分支。辅助分枝的损失为:

得到潜在分布\widetilde{y}_{x}后,作者还进行了一个如下图所示的sharpen操作,这可以轻微调整\widetilde{y}_{x},让\widetilde{y}_{x}更加平滑:

然后作者计算了一个L2损失,这个损失用来最小化目标分支的预测值与sharpen后的\widetilde{y}_{x}之间的偏差,\tilde{y}_{x_{p},k }代表潜在分布,f_{target}(x_{k};\theta)代表目标分枝的预测值,下图中的最后一句话很重要:我们不会通过计算\widetilde{y}来反向传播梯度。

相似性保持

原文翻译:受[35]的启发,我们发现当给定一对图像时,对所有分支进行正则化以预测一致性关系是有益的。这是因为CE损耗仅利用标签空间中的单个样本。然而,样本之间的关系是另一种知识范式。例如,给定一对微笑图像,除了告诉网络它俩的标签是happy之外,不同分支提取的语义特征的相似性应该是一致的。因此,我们将[35]概括为多分支体系结构的上下文,即多分支相似性保持(MSP),定义为:

两两不确定性估计

为了处理模糊样本,文章引入了潜在分布挖掘。但是目标分枝也应该从干净的样本中获益。

由于存在模棱两可的样本,直接使用CEloss可能会导致性能下降。因此,我们在标准CE损失中加入一个调节项,以在样本空间中权衡潜在分布和样本标签这两者。具体来说,我们根据样本之间关系的统计数据来估计样本的置信度。更模糊的样本将会有更低的置信度,进一步降低交叉熵。这样,潜在分布将提供更多的指导。

为了更好地理解这部分,举个栗子。

如上图所示,定义某个样本a的语义特征和one-hot标签向量分别为f_{a}y_{a},同一分类批次的其他样本i的语义特征和one-hot标签向量分别为f_{i}y_{i}f_{i}指的是目标分枝在进行分类之前的特征。计算f_{a}和每个f_{i}f_{i}被标注成第j类,j = 1, 2, ..., C)之间的平均余弦相似度S_{a,j}S_{a,j}是一个数,有多少类,就有多少个S_{a,j},比如S_{a,1}代表样本a和同一分类批次中的所有第1类样本的平均余弦相似度。),C个S_{a,j}可以组成向量S_{a} = [S_{a,1}, ... , S_{a,C}],然后将S_{a}y_{a}拼接起来,形成SV_{a} \in R^{ 2C}

SV_{a}可以描述一个样本的模糊程度:比如说样本a属于第1类,如果这个样本的标签是正确的话,那么S_{a,1}应该会比其他C-1个S_{a,j}更大,同样的,y_{a,1} = 1,y_{a,j} = 0,元素之间位置和大小一一对应;如果样本的标签是错误的,那么S_{a}y_{a}中元素的大小顺序排列就会不一样。SV_{a}的计算方式如下,注意,对每一个样本来说都有一个SV_{a}

进一步地,某个分类批次(batch)的模糊信息特征就是:SV = [SV_{1}, SV_{2}, ... , SV_{N}],其中batch_size = N,不确定性估计模块将SV作为输入,通过两层全连接层计算得到每个样本的置信度\alpha_{i} \in (0,1),置信度越大,代表这个样本的标签越正确。SV的计算方式如下:

有了置信度以后,就可以利用置信度对目标分枝进行加权训练。如下图所示:

整体损失

(1)在训练开始时,辅助分支挖掘的潜在分布不够稳定。因此,我们专注于辅助分支结构的训练。

(2) 当辅助分支训练有素时,我们就会把注意力转移到训练目标分支上。