论文标题:Prototypical Contrastive Learning of Unsupervised Representations
论文链接:
https://arxiv.org/abs/2005.04966
代码链接:
https://github.com/salesforce/PCL PCL 采用了期望-最大化框架,即 EM 算法的思路,流程如下图所示,简单来说可以分为 E 步和 M 步: E 步:momentum encoder 从所有样本中提取表征,并对表征做 k-means 聚类,得到每个样本所属类别、以及聚类中心。 M 步:从数据集中采样若干个 batch,然后分别通过 encoder 和 momentum encoder 获得表征,计算聚类对比 loss,梯度更新 encoder。 具体来说,PCL 的 EM 算法的推导过程如下: 这里采用 EM 算法来最大化(6),其中 E 步用来估计分类概率 ,这里采用 k-means 算法,通过聚类来估计得到 one-hot 概率;对于 M 步,我们假设 k 个聚类的先验分布是均匀的,则有: 接着,假设给定聚类中心的条件分布是高斯分布,则有:
其中 ,这里认为 v 和 c 是归一化后的向量(),将其代入式(6)中,则原先的对数似然最大化可以写做: 其中 代表一个聚类中点的集中程度,这里通过动量 encoder 得到的特征 来自适应地计算 ,具体如下所示:
其中 表示该聚类下的样本数量, 是平滑参数,模型可以通过该参数控制聚类的稳定(具体论述在原文 3.3 节,但我没看懂...);最后 PCL 的 loss 可以写做:
[1] Unsupervised Learning of Visual Features by Contrasting Cluster Assignments [2] Prototypical Contrastive Learning of Unsupervised Representations[3] https://zhuanlan.zhihu.com/p/445108226