Self-Supervised Visual Representation Learning with Semantic Grouping

2205.15288v2.pdf

GitHub - CVMI-Lab/SlotCon: (NeurIPS 2022) Self-Supervised Visual Representation Learning with Semantic Grouping

Abstract

本文提出从数据驱动的语义槽 进行对比学习,即SlotCon,用于联合语义分组和表征学习

与先前的工作相比,通过同时优化 语义分组 和 对比学习 这两个耦合的目标,本文的方法绕过了手工制作的先验的缺点,并且能够从以场景为中心的图像中学习目标/组级别的表示。

<aside> 💡 Prototype(原型) 的概念其实就是 InfoSeg: Unsupervised Semantic Image Segmentation with Mutual Information Maximization 中的 global feature, 可以与特征图点积计算相似度, 得到每个像素分配到每个类别的概率. 另外可以认为是聚类得到的聚类中心.

Untitled

</aside>

Method

Untitled

语义分组

给定一个未标记图像的数据集 $D$,我们旨在学习一组原型 $S$,将每个像素分类为一个有意义的组,使得同一组内的像素是语义一致的(具有相似的特征表示),并且不同组之间的像素是语义不连贯的

语义上有意义的分组 应该 对数据增强是不变的。因此,对于同一图像的不同增强,我们强制位于同一位置的像素具有相似的匹配分数 关于同一组集群中心(原型)

<aside> 💡 类似于 leopart: Self-Supervised Learning of Object Parts for Semantic Segmentation

leopart 中损失函数中的两项分别是: student 网络输出的图像块的类别分数, 第二项是使用 teacher 网络输出的特征, 使用 OTA 匹配获得的类别分数.

$$ l \left( x _ { t _ { i } } , x _ { t _ { j } } \right) = H \left[ \left( s _ { \tau } \left( \alpha _ { B _ { j , i } } \left( g \left( \Phi \left( x _ { t _ { i } } \right) \right) ^ { T } C \right) , \alpha _ { B _ { i j } } \left( Q _ { t _ { j } } \right) \right] \right. \right. $$

而此模型与此类似, 损失函数的第二项与第一项的计算方式一致. 损失函数均为交叉熵, 并且 prototype 均为可以优化的.

</aside>

具体来说,如图 1 所示,本文的方法包含两个神经网络学生网络由 $θ$ 参数化,并包括编码器 $f_θ$、projector $g_θ$ 和 一组 $K$个可学习原型 ,教师网络与学生拥有相同的架构,但使用了一组不同的权重 $ξ$,其更新为 $θ$ 的指数移动平均值

  1. 给定输入图像 $x$,应用两个随机增强来生成两个增强视图 $v_1$ 和 $v_2$。
  2. 每个增强视图 $v^l \in \left\{v^1, v^2\right\}$ 然后用编码器 $f$ 编码成隐藏特征图 $h^l \in \mathbb{R}^{H \times W \times D}$,然后用多层感知器 (MLP) $g$ 转换得到 $z^l = g(h^l) \in \mathbb{R}^{H \times W \times D}$。
  3. 然后,我们用原型 $S_θ$ 使用相似度计算 $z^l$ 的匹配分数 $P^l_{\theta}$,并强制它与教师网络的另一个视图 $v^{l'}$ 产生的分配 $Q_{ξ}^{l'}$ 相匹配。更准确地说,使用 l2 归一化 投影 $\overline { \boldsymbol { z } } = \boldsymbol { z } / \left\| { \boldsymbol { z } } \right\|$ 和原型 $\overline { \boldsymbol { s } } = \boldsymbol { s } / \left\| { \boldsymbol { s } } \right\|$.