作者|GUEST 编译|VK 来源|Analytics Vidhya
介绍
但是这些需求使得框架的计算量相当大。如果我们可以拥有这个框架的简单性和强大功能,并且有更少的计算需求,这样每个人都可以访问它,这不是很好吗?Moco-v2前来救援。

注意:在之前的一篇博文中,我们在PyTorch中实现了SimCLR框架,它是在一个包含5个类别的简单数据集上实现的,总共只有1250个训练图像。
数据集
这次我们将在Pytorch中在更大的数据集上实现Moco-v2,并在Google Colab上训练我们的模型。这次我们将使用Imagenette和Imagewoof数据集

来自Imagenette数据集的一些图像

这些数据集的快速摘要(更多信息在这里:https://github.com/fastai/imagenette):
Imagenette由Imagenet的10个容易分类的类组成,总共有9479个训练图像和3935个验证集图像。
Imagewoof是一个由Imagenet提供的10个难分类组成的数据集,因为所有的类都是狗的品种。总共有9035个训练图像,3939个验证集图像。
对比学习
对比学习在自我监督学习中的作用是基于这样一个理念:我们希望同一类别中不同的图像观具有相似的表征。但是,由于我们不知道哪些图像属于同一类别,通常所做的是将同一图像的不同外观的表示拉近。我们把这些不同的外观称为正对(positive pairs)。

另外,我们希望不同类别的图像有不同的外观,使它们的表征彼此远离。不同图像的不同外观的呈现与类别无关,会被彼此推开。我们把这些不同的外观称为负对(negative pairs)。

本文介绍了如何使用PyTorch实现Moco-v2,以减少计算约束。Moco-v2是一种对比学习方法,旨在提供SimCLR的强大功能,但计算需求更低。文章详细讨论了负对的生成、动态词典的概念以及MoCo-v2框架的步骤,包括损失函数InfoNCE。在Imagenette和Imagewoof数据集上进行训练,结果显示,尽管与监督学习方法相比仍有差距,但Moco-v2在无监督学习中表现良好。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



