深度学习中的对比学习(Contrastive Learning)中的SwAV(Swapping Assignments between Views)算法原理与在线聚类机制
字数 2097 2025-12-03 15:45:51
深度学习中的对比学习(Contrastive Learning)中的SwAV(Swapping Assignments between Views)算法原理与在线聚类机制
题目描述
SwAV(Swapping Assignments between Views)是一种结合对比学习和在线聚类的自监督学习算法。其核心思想是:对同一图像的两个不同增强视图(例如随机裁剪、颜色抖动),通过交换它们的聚类分配(Cluster Assignment)来学习特征表示,而无需显式构造负样本对。SwAV通过维护一组可学习的原型向量(Prototypes)作为聚类中心,并利用"Sinkhorn-Knopp"算法生成均衡的软分配标签,从而避免平凡解(如所有样本被分配到同一聚类)。该算法在减少计算成本的同时,实现了与基于大量负样本的对比方法(如SimCLR)相当的性能。
解题过程循序渐进讲解
-
问题背景与目标
- 自监督学习的目标是从无标签数据中学习通用特征表示。对比学习通过拉近相似样本(正样本对)、推远不相似样本(负样本对)实现这一目标,但依赖大量负样本会导致计算开销大。
- SwAV的改进:用在线聚类替代显式负样本对比。其关键假设是:同一图像的不同增强版本应被分配到相同的聚类中心,而不同图像的聚类分配应不同。
-
算法流程概览
- 输入:一批图像\(\{x_1, x_2, ..., x_N\}\)。
- 步骤:
- 对每个图像生成两个随机增强视图\(v_t\)和\(v_s\)(如不同裁剪尺寸)。
- 通过编码器网络(如ResNet)提取特征\(z_t\)和\(z_s\)。
- 将特征映射到单位球面(L2归一化)。
- 计算特征与原型向量(可学习参数)的相似度,生成软分配概率\(q_t\)和\(q_s\)。
- 交换分配:用\(v_t\)的分配\(q_t\)预测\(v_s\)的特征,反之亦然,构造交叉熵损失。
- 通过Sinkhorn-Knopp算法优化聚类分配,避免平凡解。
-
核心组件详解
- 原型向量(Prototypes):
- 定义一组可学习的向量\(C = \{c_1, c_2, ..., c_K\}\),其中\(K\)为聚类数量(超参数),每个\(c_k \in \mathbb{R}^d\)(与特征维度相同)。
- 作用:作为聚类中心,将特征映射到离散的分配空间,替代显式负样本对比。
- 软分配计算:
- 对特征\(z\)(L2归一化后),计算其与所有原型向量的点积相似度:\(s_k = z^T c_k\)。
- 通过softmax生成分配概率:\(p(k|z) = \frac{\exp(s_k / \tau)}{\sum_{j=1}^K \exp(s_j / \tau)}\),其中\(\tau\)为温度参数。
- Sinkhorn-Knopp算法:
- 目的:生成均衡的软分配,防止所有样本聚集到少数聚类中心(平凡解)。
- 步骤:
- 对相似度矩阵\(S \in \mathbb{R}^{N \times K}\)(每行为一个样本与所有原型的相似度)进行迭代归一化:
- 交替对行和列进行L1归一化,使每行和为1(每个样本的分配概率和为1),每列和为\(N/K\)(每个聚类分配到的样本数均衡)。
- 通常迭代3-5次后得到均衡的软分配矩阵\(Q\)。
- 对相似度矩阵\(S \in \mathbb{R}^{N \times K}\)(每行为一个样本与所有原型的相似度)进行迭代归一化:
- 原型向量(Prototypes):
-
损失函数设计
- 交换分配损失:
- 对视图\(v_t\)和\(v_s\),分别计算分配概率\(q_t\)和\(q_s\)(通过Sinkhorn-Knopp生成)。
- 损失函数为交叉熵之和:
- 交换分配损失:
\[ \mathcal{L} = -\frac{1}{2N} \sum_{i=1}^N \left[ q_t^{(i)} \log p_s^{(i)} + q_s^{(i)} \log p_t^{(i)} \right] \]
其中$ p_s^{(i)} = \text{softmax}(z_s^{(i)} C^T / \tau) $,$ p_t^{(i)} $同理。
- 直观解释:用视图$ v_t $的聚类分配$ q_t $作为标签,监督视图$ v_s $的特征预测,迫使模型学习到增强不变性。
-
训练与优化细节
- 梯度更新:
- 编码器参数和原型向量通过梯度下降联合优化。
- 注意:Sinkhorn-Knopp算法的迭代过程不可微,因此仅对生成的分配\(q\)计算梯度(视为常数)。
- 多尺度增强:
- SwAV常用多尺度裁剪(如全局视图+局部视图)提升特征鲁棒性。
- 与SimCLR对比:
- SimCLR需构造大量负样本(批大小越大性能越好),而SwAV通过聚类分配隐式对比,降低对批大小的依赖。
- 梯度更新:
-
总结
- SwAV将对比学习转化为在线聚类问题,通过交换增强视图的聚类分配实现特征学习。
- 优势:计算高效、避免负样本构造、适合大规模无标注数据。
- 应用:在ImageNet等基准上达到当时最优水平,成为自监督学习的重要基线。