目录
1.Learning with Noisy Correspondence for Cross-modal Matching(NCR)
1-1.贡献和创新点
- 提出了Noisy Correspondence,其意思是不对齐(not correctly aligned)的数据对(传统noisy labels意思是错误地打上类标签)。
- 提出了新方法Noisy Correspondence Rectifier(NCR)解决Noisy Correspondence问题。(1)NCR具体功能为,先基于神经网络的记忆性将数据分为clean和noisy,然后通过an adaptive prediction model in a co-teaching manner来rectifies the correspondence。(2)NCR的创新点是使用了有soft margin的triplet loss来实现鲁棒的跨模态匹配。
- 在Flickr30K, MS-COCO, and Conceptual Captions数据集上验证了方法的有效性。
1-2.图和公式
1-2-1.总图
对于下图中右边那个正方形图,意思是样本(anchor)与其正样本(T和F对应真的和假的)距离近,与其负样本(negative)距离远;这通过Lsoft的soft margin实现
- 设①正真的正对对应anchor和T,②假的正对对应anchor和F,③负对对应anchor和negative。则①和③对应的soft margin为α-hat1,②和③对应的soft margin为α-hat2。
- Lsoft是让正对(①和②)的S比负对(③)的S大一个soft的α-hat,但是真正对①的soft margin比假正对②的要大,这就实现了:Lsoft的作差形式实现了:锚点anchor和正样本T/F尽可能相近(相似度大),而和负样本negative之间尽可能远离(相似度小);Lsoft的soft margin实现了:真正样本T比假正样本F离负样本negative更远
- 但是在代码中一共训练了40轮,只有后20轮训练了②③的loss,说明文章没咋管②(也就是F),文章更加着手于训练①③的loss
对了以上颜色是《半甜巧克力色》#6B4226,用来记录一些个人发现
1-2-2.Co-divide
- 式(1)是loss的集合,数据对从1到N
- 式(2)是用于GMM的loss,^意思是非原配,Σ下的符号代表遍历所有满足条件的数据对求和
- 式(3)是GMM的先验概率(这个算法里没有用到先验概率),l是某组数据对,θ是当前概率分布(我猜的),k是component即第k个高斯分布(该算法K=2),βk是混合系数,Φ(l|k)是k-component的概率密度,p(l|θ)是在该概率分布下(θ)数据对l出现的概率
- 下式是GMM的后验概率(用到了),k是component(该算法k是平均值较小的那个高斯分布,作为clean数据的高斯分布),li是第i组数据对,wi是取第i组数据对,其为clean数据的概率
- 下图是clean/noisy数据对的per-sample loss的概率分布,虚线是拟合两种数据的高斯分布,实线是混合高斯分布
- 总结:在这个阶段,通过loss和GMM求出每对数据对为clean的概率wi,r然后通过wi和阈值0.5,将数据分为clean和noisy
1-2-3.Co-Rectify
- 式(4)用于求数据新标签y-hat。第一行意思是数据对i若被判为clean则新标签求法,y-hatCi是第i对数据对若被判为clean后的新标签,wi是Co-divide阶段获得的数据为clean的概率, yCi是第i数据对若被判为clean后的原标签(这里yCi都取1),Pk是式(5)的结果,用网络输出的S(相似度)求出来的数据为clean的程度,k表示与wi来自不同网络(wi来自A则Pk来自B的S);第二行意思是数据对i若被判为noisy则新标签求法,PA/B来源分别是A/B的S
- 式(5)是通过A/B网络输出的S相似度求数据对为clean的程度。Θ(s)指将s控制在一定范围内,即设置超过上限的数据为上限,下限同理,这里被设置为0~α(0.2)之间
1-2-4.Robust Cross-modal Matching
-
式(6)是用于训练网络的loss函数。soft是指α是一个soft margin,在式(7)中介绍,其中T-hath和I-hath是使S最大的最大负对。需要注意的是,这个loss只对被上一步被划分为clean的数据进行训练
-
式(7)让α-hat以类似指数的形式从0长到α(0.2),其中y-hat对应的值为0到1
1-2-5.总流程
1-3.一些细节
-
其loss函数代码是ContrastiveLoss类,该类输入相似度sim(batch_size, batch_size),分别能选择输出Lw,Lsoft,p(prediction),也就是说一个loss函数处理了所有有关于相似度S的输出。(这里感觉应该是Triplet Loss,不知道)
-
(我猜的)虽然对比学习代码中loss一般写成ContrastiveLoss,但是其实是triplet loss,其与真正的Contrastive loss不一样
-
warm_up时,loss = cost_s_mean.sum() + cost_im_mean.sum(),即所有负对的Lw的总和,反向传播对f,g,S网络一起进行,说明希望网络让生成的正对S大于生成的负对S,且至少大出α=0.2。
-
【对比学习中的一些概念:锚点-anchor-一个样本-一个图像,正样本-positive-由锚点通过transformation得到,负样本-negative-其他样本,然后把这些样本送到编码器中得到特征表示,对比学习的目标就是在特征空间中,使锚点和正样本尽可能相近,而和负样本之间尽可能远离】。摘自:自监督学习-对比学习-MoCo Momentum Contrast 阅读笔记。这里相近表示相似度大或者score高,远离表示相似度小或者score低。
-
基于对比的自监督学习,核心思想:样本与正样本之间的距离远大于样本与负样本之间的距离。其中包含了anchor,在对比学习中,锚点=anchor=一个样本=一个图像(来自上面那句话)。自监督学习 | (1) Self-supervised Learning入门
2.Dual Contrastive Prediction for Incomplete Multi-view Representation Learning(DCP)
2-1.贡献和创新点
2-2.图片和公式
2-2-1.总图
2-2-2.
(这里还有一些没截图)