【问题标题】:SimCLR does not learn representationsSimCLR 不学习表示
【发布时间】:2021-03-04 11:04:38
【问题描述】:

因此,我尝试在包含字母表的前 5 个字母的数据集上使用自定义轻量级 ConvNet 主干(已经尝试过 ResNet)训练 SimCLR 网络,其中两个是随机选择并放置在随机位置的图片。我不确定在这种情况下使用什么增强,所以我只使用图像翻译来提供增强样本之间的某种程度的差异。

这听起来像是一项极其微不足道的任务,但它在建立在冻结预训练网络之上的多标签分类器上表现非常糟糕。我很确定这是因为学习表示的质量有多差,而不是线性分类器。显然,这在有监督的分类器上效果很好。

到目前为止我尝试过的变体:

  1. 将数据集做成单字母、随机位置(多类),效果非常好。
  2. 用随机字母制作数据集,但中心位置相同,并且表现良好。上面提到的同样增强。

数据集中的示例图像(此处的标签为 [1, 1, 0, 0, 0] 表示存在的字母)

有人可以帮我弄清楚如何完成这项工作吗?

【问题讨论】:

    标签: python tensorflow mnist resnet self-supervised-learning


    【解决方案1】:

    这不是我第一次听说有人尝试 SimCLR 并得到可怕的结果...

    我有一些问题:

    • 您是否尝试过对比预训练部分的其他损失?三元组损失怎么样?
    • 表示是否标准化?
    • 您是否在您提到的变体中通过对比预训练获得了良好的结果?
    • 您是否使用两种模型(Resnet 和自定义卷积网络)都获得了良好的监督分类结果?
    • 您是否尝试过将模型在卷积层中学习到的特征可视化?
    • 您还可以尝试使用前向钩子可视化特征图,看看网络“在看”什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2020-09-09
      • 1970-01-01
      相关资源
      最近更新 更多