流行的语义分割方案的掩码解码策略(基于参数softmax或基于像素查询)视为可学习的类原型。本研究揭示了这种参数分割策略的几个局限性,并提出了一种基于不可学习原型的非参数替代方案。与之前的方法以完全参数化的方式为每个类学习单个权重/查询向量不同,我们的模型将每个类表示为一组、不可学习的原型,仅依赖于该类中几个训练像素的平均特征。这允许我们的模型通过优化嵌入像素和锚定原型之间的排列来直接塑造像素嵌入空间。它能够处理任意数量的类,具有恒定数量的可学习参数。
图1所示。不同的语义分割:(a-b)参数与(c)非参数。无论是使用(a)参数softmax还是(b)查询向量进行掩码解码,都可以被视为基于可学习原型的方法,以完全参数化的方式学习类原型。我们提出了一种非参数方案(c),该方案直接选择嵌入像素的子簇中心作为原型,并通过非参数最接近原型检索实现全像素预测。
文章主旨:
基于参数化范式的可学习原型的局限性是什么?如何解决这些限制?
三个局限性:首先,通常每个类只学习一个原型,不足以描述丰富的类内方差。其次,要将H×W×D特征张量映射到H×W×C掩码,至少需要D×C个参数进行原型学习。这损害了概括性,尤其是在词汇量大的情况下;例如,如果有800个类,D= 512,那么我们需要0.4M个可学习的原型参数。第三,交叉熵损失只优化类内和类间距离的相对关系,像素和原型之间的实际距离,即类内紧凑性,被忽略。
我们的模型有三个优点:首先,每个类都由一组原型抽象出来,很好地捕获了类的特征和类内方差。由于原型的含义清晰,可解释性也得到了增强——每个像素的预测可以直观地理解为其在嵌入空间中最近的类中心的参考。其次,由于非参数性质,提高了广义性。由于可学习的原型参数的数量不再局限于类的数量(即0 vs D×C),因此可以有效地处理大词汇的语义分割。第三,通过原型锚定的度量学习,将像素嵌入空间塑造成良好的结构,最终有利于分割预测。
基于原型的分类
设{pm}为代表其对应类{C}的一组原型,对于数据样本i,通过比较i与{pm}进行预测:
式中i和{pm}为数据样本和原型在特征空间中的嵌入,<. .>代表距离度量,通常设置为l2距离,但也可以应用其他接近度。
基于不可学习原型的非参数语义分割
首先采用一个编码器网络φ将输入图像h×w×3映射到H×W×D。然后引用了一组不可学习的原型,即{pc,k},它们完全基于类数据的子中心。每个类C由K个原型{pc,k}表示,原型pc,k确定为c类训练像素样本在嵌入空间φ中第K个子聚类的中心。这样,原型就可以在不引入φ之外的额外可学习参数的情况下有效地捕获相应类的特征属性。最终,每个像素i的类别预测是通过winner-take-all的分类来实现的:
式中,i表示像素i的l2归一化嵌入,距离测度<>定义为负余弦相似度,即<i,p>=−iTP(因为已经归一化,所以余弦相似度直接是两个向量点积)
我们首先定义像素i在C类上的概率分布:
像素级距离si,c∈[−1;1]计算为类c到最近原型的距离。给定每个像素的groundtruth类i,即ci,交叉熵损失可以用于训练:
上式可以看作是将像素i推得更靠近其对应类的最近原型(而不是更靠近其对应类,仔细体会这句话),并且远离其他不相关类的接近原型。然而,仅仅采用这样的培训目标是不够的,原因有二(很值得学习与思考)。首先,式子只考虑像素-类的距离,而没有处理类像素-原型的关系。例如,对于判别表示学习,期望像素i进一步靠近类ci的某个原型(即特别适合的模式),并且远离类ci的其他原型(即其他不相关但在类内的模式)。其次,由于像素-类之间的距离是在所有类之间归一化的,因此交叉熵只优化了类内和类间距离之间的相对关系,而不是直接正则化像素与类之间的余弦距离。例如,当像素i的类内距离相对小于其他类间距离时,得到的惩罚较小,但类内距离可能仍然较大。
有点抽象,大白话就是1交叉熵没有考虑和proto之间的关系,2只保证了类间的分散,没有保证类内的紧凑。
类内在线聚类策略+两个额外的训练目标
我们采用在线聚类方法进行原型选择和分配:将同一类中的像素样本分配给属于该类的原型,然后根据分配更新原型。在线聚类使我们的方法可扩展到大量数据,而不是离线聚类,需要在整个数据集上进行多次特征计算。
我们的目标是将N个像素i映射到c类的K个原型。我们将这个像素到原型的映射表示为Lc:K×N,其优化是通过最大化像素嵌入Xc:D×N和原型pc,k :D×K之间的相似性来实现的:
聚类是对每个类别单独进行的处理,前两个约束保证每个c类内的像素点只能匹配到一个prototype,第三个约束是鼓励所有的像素点均匀匹配到各个prototype,避免许多个像素点几乎都匹配到同一个prototype上了,强制每个原型在批次中平均至少被选择N/K次。
设计的Lppc损失则是在同一个类内,不同prototype之间的分散(其实是原型之间的交叉熵);Lppd损失着眼于同一个簇内,像素点与prototype的紧凑性优化.
对于提取特征的网络则还是常规SGD更新。Prototype是不可学习的,采用的动量更新的方式,在每个iteration中,将同属于每个prototype的所有像素的特征做一个平均,然后将它更新到所处的prototype上。