【论文笔记】Propagate Yourself: Exploring Pixel-Level Consistency for Unsupervised Visual Representation Learning
论文地址:http://arxiv.org/abs/2011.10043
代码:https://github.com/zdaxie/PixPro
贡献
把 Unsupervised VisualRepresentation Learning从以图象为单位的instance level拓展到pixel level
PixContrast
常见的contrastive leanring的input是一张图片,经过augmentation后产生两个不同的view,再经过backbone+projection head得到两个projection,这里区别于传统contrastive leanring地方在于,x可以是一个feature map在这基础上,每一个feature map对应的值可以溯源到原始图像中的某一个位置的像素,同instance level的contrastive leanring一样,的一个像素经过不同的图像增强产生的representation再projection之后应该是尽量接近的。
利用从两个视图计算的两个feature map,我们可以构建用于representation的pixel contrast pretext tasks。首先将特征映射中的每个像素warp到原始图像空间,然后计算两个feature map中所有像素对之间的距离。距离被归一化为二进制特征图的对角线长度,以考虑到增强视图之间的比例差异,基于阈值T用归一化的距离来生成positive and negative pairs。
如果对所有的像素都计算loss,这会使这个feature map中所有的像素的feature都变成同一个,因为这里对比的不是图像层次而是对比的一个像素,而这个像素的feature可能跟feature map中其他的feeature长得不一样,但是他和其他的像素都是来自于同一张图像,直接做contarstive loss显然不太合适,因此作者增加了一个基于距离的distance mask,用意是这个像素只和周围一定距离的像素做contrastive loss,距离太远的就不管了。
其中i和j分别是两个视图的像素;dist(i;j)表示原图像空间中像素i与j之间的归一化距离,阈值默认为T = 0.7。
其中i是第一个视图中的一个像素,它也位于第二个视图中;
Ω
p
i
\Omega_{p}^{i}
Ωpi 和
Ω
n
i
\Omega_{n}^{i}
Ωni 是第二视图中相对于像素i分别赋值为正和负的像素集;
τ
\tau
τ是温度超参数,默认设置为0.3。损失是对位于两个视图交叉处的第一个视图上的所有像素的平均值。
类似地,第二个视图上像素j的对比损失也被计算和平均。最后的损失是一个小批量中所有图像对的平均值。
此处参考InfoNCE loss
PixPro:Pixel-to-Propgation Consistency
相比于Pixcontrast,作者加入了一个Pixel-to-Propgation Moudle
输入图像x送入similarity computation,指同一张图片中不同像素,他们之间的feature的computation
计算后得到了像素数量*像素数量的一个相关性矩阵
对每一个像素做MLP;类似于prediction head
把这两项结合,其实就是根据similarity 来决定prediction的权重
把输出的
y
y
y和
x
′
x'
x′对比得到PixPro Loss