Contrastive Learning, MoCo 对比学习 2021-05-09

深度神经网络有着强大的表征能力
一张输入图片经过层层变换表达为一个特征向量
如果是监督学习,特征的预测结果可以和标签比对作为损失函数;那如果是无监督学习,没有label,损失函数该如何构建?该如何判断一个好的表征?


学习不同分类的特征

Contrastive Learning给出的答案很简单,同类图像最后得到的特征向量应该在特征空间是相似的,而不同类之间应该尽可能的远,这就是对比学习。但是没有label,还是不知道哪些类别是同一个,解决方法就是, 每个实例当作同一类,用数据增广创造出该类别的其他实例。

contrastive learning基本思想可以被理解为一个查字典的过程,输入是query,用于对比的是key, 但是这个字典的大小限制于用于训练的GPU内存,那么对于图象这样的高维数据,如果字典不够大,用于对比的数据不够多,可能就达不到训练效果。

左边的是原版的对比学习

然后就可以使用Softmax得到两张图片相似的概率,
然后再转化为对数似然代价函数。温度系数设置 为0.07。


来源博客https://amitness.com/2020/03/illustrated-simclr/

Loss 是一个关于q和k的函数,这样,原图和变形之后的图片的特征相似度越高,不同的图片特征相似度越低, 整体的loss就越低, 就越接近我们的理想模型。

MoCo作者认为,字典一要大,二key之间应该保持一致性。但是用图二左端对端的方法,字典大小限制于显存。
MoCo用于解决字典大小限制的方法,来源于下面这篇论文。


https://arxiv.org/abs/1805.01978 通过非参数化实例判别进行非监督的特征学习

memory bank, 储存的是所有key的编码,初始值是随机归一化的,不存在梯度回传,所以这个空间不受限于GPU的内存。每次产生Loss的时候只要在这个空间采样一部分就好了,memory bank的编码在每次经过查询后, 得到的q的值才会更新到相应的k上面,所以存储的编码实际上来自该epoch 的每个step(一次epoch训练所有数据,每个step迭代一次,训练一个batch)。

这个方法使得用来对比的负样本可以足够多,但是又出现了新的问题:因为 memory bank中的 k更新得很慢,产生k的encoder来自于不同的step,这样就打破了k之间的一致性。

中memorybank不受字典限制,但是编码k的参数是不统一的,而右边MoCo没有选择更新k,而是更新编码k的参数,这样出来的 k就是来自同一组参数。

那可能比较的想法是,直接把最新的q的encoder直接作为k的encoder, 而k 这一路不更新。MoCo中做过这样的实验,也就是这个式子m=0的情况,但是发现不能收敛。作者给出的猜想是因为encoder的迭代更新很快,那么同样的 队列中的k又会是产生于不同参数,遭遇和memory bank一样的问题, 虽然每一组k 的编码参数是一致的,组和组之间却相差太大。但是用一个比较大的惯性参数就能比较好的解决这个问题。

不同m取值的实验

MoCo的做法是用了储存key特征用的是先进先出的队列结构,把两个encoder的参数用 0<momentum <1控制更新。
K代表负样本的数量, 端到端的方法,K是受限制的, 而Moco和memorybank通过增加K提升表现 MoCo因为保证了q和k之间的一致性,表现更好

在具体实现的方案上,MoCo使用了shuffling BN,因为BN会打破minibatch里样本的独立性,可以参考我的另一篇关于NFNet的博客。

总结一下,端对端方法字典大小受限于显存,memory bank 方法将 k 存储起来,碰到相应的q更新一次,字典大小不受限制,但是key之间是不一致的。MoCo用缓慢更新 k的编码器的方式 保证了队列中k 的一致性。

MoCoV2

https://arxiv.org/abs/2003.04297

用两层MLP检测头代替一层全连接。
使用模糊图像增广。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容