WangChangqi98 / CSS

[ICCV'23] Space Engage: Collaborative Space Supervision for Contrastive-based Semi-Supervised Semantic Segmentation
33 stars 3 forks source link

Question about the supervision to the representation space #14

Closed Hugo-cell111 closed 11 months ago

Hugo-cell111 commented 1 year ago

您好!请问特征空间的监督是只有对比学习来驱动吗?因为我看您的代码(mix_label.py),貌似并没有用mask_x或伪标签对特征空间的预测进行监督。另外想问一下您在获取特征空间的伪标签和置信度预测时,会发现特征空间的预测概率向量特别平滑,以至于softmax之后的值都非常接近吗(作为对比,logit空间的预测概率就很锐化,最大值几乎能达到0.9以上)?谢谢!

WangChangqi98 commented 1 year ago

您好,正如您所说,特征空间的监督的确是由对比学习驱动的,但是我们在特征空间应用的对比学习不同于MoCo或者SimCLR,我们用的是一种基于supervised 的pixel-wise对比学习,里面也用到了伪标签与真实标签。具体可以参考“Exploring Cross-Image Pixel Contrast for Semantic Segmentation”这一篇paper。

至于您的第二个问题,如果不采取任何措施的话,softmax值确实特别接近,预测的概率相当平滑,但是您可以尝试去使用温度系数t来调节这一预测的曲线,这种做法在知识蒸馏中十分的常见,相关的论文我记得是hinton的一篇paper,但是题目我忘记了,具体就是讲了关于温度系数t的一些作用之类的。t是一个超参数,这个参数要与阈值threshold一起调节,个人经验是先确定一个大概的,比较常见t,比如0.1或者0.5,然后你可以看一下使用不同的阈值过滤之后伪标签与真实标签的差距还有多少,选择几个你觉得合适的threshold尝试一下。值得注意的是,threshold这种提升伪标签精度的方法容易丢弃一些信息,所以不是十分建议为了更高的精度丢弃很多像素。当然,也有不少工作不采用这种简单的方法refine伪标签,比如说用uncertainty,或者是其他各种方法,这样做能够减少信息的浪费,我觉得他们的方法要优于我这篇文章里的简单的threshold方法(threshold这个方法的确需要大量的调参),但是由于我的文章中主要讨论的是怎么利用特征空间里的信息来指导模型unsupervised learning,所以在这里我就简单的使用了threshold这个方法。如果您想改进,不妨可以试试其他的能够refine伪标签的方式。

另外,我今天登陆了学校的server,但是很遗憾我找不到之前的log了,因为我有一个新的工作,但是用的还是老的一些代码文件,可能那些log文件被我删掉了。您是想通过我的log文件来看看我的收敛曲线然后判断你的代码是不是有问题是么,我的收敛曲线相较于baseline的话,一般都是在迭代的60%-70%之后才会超过我的baseline,也就是说,对比学习只有在训练比较后期的时候才会对整个模型有正向提升的效果,不知道是否能帮助到您?

Hugo-cell111 commented 12 months ago

非常有帮助!感谢!不过还有一个小问题,就是我知道温度参数能够锐化预测分布(t<1的时候),但是我发现锐化之后的预测似乎还是比较平滑。您之前做实验的时候有print过rep空间的预测看过吗?还是说你直接把你的idea用上去,直接跑实验,就发现超过baseline了?

WangChangqi98 commented 12 months ago

我有做过一个以0.1步长把similarity 从0-1分成10个区间然后看看每个区间representation的数量这样的实验,然后温度t就是通过这个实验确定的,确定了温度之后开始跑threshold的实验,threshold基本就是步长0.1然后从0.5-1.0跑五个实验,然后确定一个更小的区间进行进一步的微调直到work,的确需要很长的时间进行调参。

WangChangqi98 commented 12 months ago

如果过于平滑的话你可以试试再调小t,比如0.1或者0.01的区间

Hugo-cell111 commented 12 months ago

原来如此。明白了!那我也去试一试。感谢!

----------Reply to Message---------- On Tue, Nov 14, 2023 12:32 PM Wang @.***> wrote:

我有做过一个以0.1步长把similarity 从0-1分成10个区间然后看看每个区间representation的数量这样的实验,然后温度t就是通过这个实验确定的,确定了温度之后开始跑threshold的实验,threshold基本就是步长0.1然后从0.5-1.0跑五个实验,然后确定一个更小的区间进行进一步的微调直到work,的确需要很长的时间进行调参。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

WangChangqi98 commented 12 months ago

没事,祝你成功!