深度学习中的对比学习(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)相当的性能。

解题过程循序渐进讲解

  1. 问题背景与目标

    • 自监督学习的目标是从无标签数据中学习通用特征表示。对比学习通过拉近相似样本(正样本对)、推远不相似样本(负样本对)实现这一目标,但依赖大量负样本会导致计算开销大。
    • SwAV的改进:用在线聚类替代显式负样本对比。其关键假设是:同一图像的不同增强版本应被分配到相同的聚类中心,而不同图像的聚类分配应不同。
  2. 算法流程概览

    • 输入:一批图像\(\{x_1, x_2, ..., x_N\}\)
    • 步骤
      1. 对每个图像生成两个随机增强视图\(v_t\)\(v_s\)(如不同裁剪尺寸)。
      2. 通过编码器网络(如ResNet)提取特征\(z_t\)\(z_s\)
      3. 将特征映射到单位球面(L2归一化)。
      4. 计算特征与原型向量(可学习参数)的相似度,生成软分配概率\(q_t\)\(q_s\)
      5. 交换分配:用\(v_t\)的分配\(q_t\)预测\(v_s\)的特征,反之亦然,构造交叉熵损失。
      6. 通过Sinkhorn-Knopp算法优化聚类分配,避免平凡解。
  3. 核心组件详解

    • 原型向量(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\)
  4. 损失函数设计

    • 交换分配损失
      • 对视图\(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 $的特征预测,迫使模型学习到增强不变性。  
  1. 训练与优化细节

    • 梯度更新
      • 编码器参数和原型向量通过梯度下降联合优化。
      • 注意:Sinkhorn-Knopp算法的迭代过程不可微,因此仅对生成的分配\(q\)计算梯度(视为常数)。
    • 多尺度增强
      • SwAV常用多尺度裁剪(如全局视图+局部视图)提升特征鲁棒性。
    • 与SimCLR对比
      • SimCLR需构造大量负样本(批大小越大性能越好),而SwAV通过聚类分配隐式对比,降低对批大小的依赖。
  2. 总结

    • SwAV将对比学习转化为在线聚类问题,通过交换增强视图的聚类分配实现特征学习。
    • 优势:计算高效、避免负样本构造、适合大规模无标注数据。
    • 应用:在ImageNet等基准上达到当时最优水平,成为自监督学习的重要基线。
深度学习中的对比学习(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 \)。 损失函数设计 交换分配损失 : 对视图\( 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等基准上达到当时最优水平,成为自监督学习的重要基线。