什么对对比学习很重要?我们认为对比学习在很大程度上依赖于信息特征,或“硬”(正面或负面)特征。早期的作品通过应用复杂的数据增强和大批量或内存库来包含更多信息特征,最近的作品设计了精细的采样方法来探索信息特征。探索这些特征的关键挑战是源多视图数据是通过应用随机数据增强生成的,这使得始终在增强数据中添加有用信息是不可行的。因此,从这种增强数据中学习到的特征的信息量是有限的。作为回应,我们建议直接增强潜在空间中的特征,从而在没有大量输入数据的情况下学习判别表示。我们执行元学习技术来构建增强生成器,通过考虑编码器的性能来更新其网络参数。然而,输入数据不足可能会导致编码器学习折叠的特征,从而导致增强生成器出现故障。在目标函数中进一步添加了一个新的边缘注入正则化,以避免编码器学习退化映射。为了在一个梯度反向传播步骤中对比所有特征,我们采用了提出的优化驱动的统一对比损失,而不是传统的对比损失。根据经验,我们的方法在几个基准数据集上实现了最先进的结果。
存在的问题
贡献
有效的原因
首先在自监督对比学习的学习范式下训练 f θ ( ⋅ ) f_θ(·) fθ(⋅) 和 g ϑ ( ⋅ ) g_ϑ(·) gϑ(⋅)。然后,通过计算关于 f θ ( ⋅ ) f_θ(·) fθ(⋅) 和 g ϑ ( ⋅ ) g_ϑ(·) gϑ(⋅) 性能的梯度来更新 a ω ( ⋅ ) a_ω(·) aω(⋅)。
伪代码
编码器和投影头的网络参数 θ θ θ 和 ϑ ϑ ϑ 的更新目标
ϑ ˙ \dot{ϑ} ϑ˙和 θ ˙ \dot{θ} θ˙的更新
ω ω ω的更新
存在的问题
当原始特征信息量不足时,通过对比信息量不足的特征难以生成大梯度,MAGs a ω ( ⋅ ) a_ω(·) aω(⋅) 倾向于创建折叠的增强特征,例如,增强的特征和原始特征非常相似。作者认为特征崩溃的原因是编码器在投影头 g ϑ ( f θ ( ⋅ ) ) g_ϑ(f_θ(·)) gϑ(fθ(⋅)) 旁边的小梯度变化导致 a ω ( ⋅ ) a_ω(·) aω(⋅) 的更新步长变得非常小,这使得 a ω ( ⋅ ) a_ω( ·) aω(⋅) 陷入局部最优。
裕度 R σ R_σ Rσ的计算
{ d ( { z + } k + ) } \{d(\{z^+\}k^+)\} {d({z+}k+)}是由判别函数 d ( ⋅ ) d(·) d(⋅)和 k + ∈ { 1 , . . . , K + } k^+∈ \{1, ..., K^+\} k+∈{1,...,K+}计算的一组正例的输出(相似性),其中 K + K^+ K+表示小批量中正例的数量。 d ( { z − } k − ) d(\{z^−\}k^−) d({z−}k−)是负样本的判别输出的集合,并且 k − ∈ { 1 , . . . , K − } k^−∈\{1, ..., K^−\} k−∈{1,...,K−} 其中 K − K^− K−表示负样本的数量。
实际效果
优化驱动的统一损失函数
作者发现 ∑ k − = 1 K − d ( { z − } k − ) \sum^{K^−}_{k^−=1}d(\{z^−\}_{k^−}) ∑k−=1K−d({z−}k−)和 ∑ k + = 1 K + d ( { z + } k + ) \sum^{K^+}_{k^+=1}d(\{z^+\}_{k^+}) ∑k+=1K+d({z+}k+)之间的差异并不是越大越好。差异的过度增加可能会破坏优化的收敛性。
添加一个温度系数 β β β后的损失
引入加权因子 Γ − Γ^− Γ−和 Γ + Γ^+ Γ+
这种方法旨在对偏离最优值的相似性给予更大的权重,对与最优值非常接近的相似性给予较小的权重。 Γ − = [ d ( { z − } k − ) − O − ] + Γ^− = [d(\{z^−\}_{k^−})−O^−]_+ Γ−=[d({z−}k−)−O−]+和 Γ + = [ O + − d ( { z + } k + ) ] + Γ^+ = [O^+-d(\{z^+\}_{k^+})]_+ Γ+=[O+−d({z+}k+)]+,其中 O − O^− O−和 O + O^+ O+表示 d ( { z − } k − ) d(\{z^−\}_{k^−}) d({z−}k−)和 d ( { z + } k + ) d(\{z^+\}_{k^+}) d({z+}k+)的预期最优值。 γ + γ^+ γ+和 γ − γ^− γ−用于替换 λ λ λ。
通过归一化 { z − } k − \{z^−\}_{k^−} {z−}k−和 { z + } k + \{z^+\}_{k^+} {z+}k+中的特征,将 d ( { z − } k − ) d(\{z^−\}_{k^−}) d({z−}k−)和 d ( { z + } k + ) d(\{z^+\}_{k^+}) d({z+}k+)限制在 [ 0 , 1 ] [0, 1] [0,1]的范围内,这样理论上, d ( { z − } k − ) d(\{z^−\}_{k^−}) d({z−}k−)的最优值为 0, d ( { z + } k + ) d(\{z^+\}_{k^+}) d({z+}k+)的最优值为 1。
减少参数量
Γ Γ Γ 变体
在实践中,作者发现引入加权因子 Γ Γ Γ不能直接改进方法。原因在于 Γ Γ Γ可能导致损失收敛过快,从而使网络参数处于局部最小值。因此,提出了一个变量来替换 Γ Γ Γ,即 Γ = Γ ϕ d e c Γ=\frac{Γ}{\phi_{dec}} Γ=ϕdecΓ,其中, ϕ d e c \phi_{dec} ϕdec是线性衰减系数,以线性衰减 Γ Γ Γ的影响,从而使当前值与最佳值之间的差值变小。
变体有效性证明
batch size的影响
随着批大小的增加,每个比较方法在下游任务上都取得了更好的性能。作者推测,随着批大小的增大,训练步骤中可用特征的数量增加,因此模型可以探索更多信息特征以提高对比学习的性能。然而,随着batch size增加MetAug(仅OUCL)的性能与比较方法之间的差距变得更小。于是作者扩展了上述推测:随着在一个训练步骤中所有方法都可以探索更多信息特征,OUCL的优势变得不那么明显。OUCL的目标是包括所有可用的特征,以有效地训练模型,避免优化陷入局部最优,而增加批次大小,这意味着充分的自我监督,可以自然地提高优化效率,避免陷入局部最优。