PyTorch深度学习教程:基于能量的模型中的对比方法
能量模型回顾
在深度学习中,基于能量的模型(Energy-Based Models, EBMs)提供了一种统一框架来处理各种学习任务。这类模型通过能量函数F(x,y)来衡量输入x和输出y之间的兼容性,能量越低表示兼容性越好。
上周课程中我们了解到,EBMs主要有两类学习方法:
- 对比方法:降低训练数据点(x_i, y_i)的能量,同时提高其他点(x_i, y')的能量
- 架构方法:通过正则化构建能量函数F,限制低能量区域的范围
其中,最大似然方法(Maximum Likelihood)就是一种典型的对比方法。它不关心能量的绝对值,而是关注能量之间的相对差异,通过概率分布的方式自然地实现能量调整。
自监督学习中的对比方法
在自监督学习场景下,对比方法展现出强大的特征学习能力。其核心思想是:降低观察到的训练数据点的能量,同时提高训练数据流形之外点的能量。
对比嵌入方法
考虑一个正样本对(x,y),其中y是x的内容保持变换(如旋转、缩放等)。通过卷积网络提取它们的特征向量h和h',使用余弦相似度等度量最大化它们的相似性,从而降低训练流形上的能量。
同时,我们还需要负样本对(x_neg, y_neg),它们内容不同。对这些样本对,我们最小化其特征向量的相似性,从而提高非训练流形上的能量。
这种方法在ImageNet等基准测试中取得了接近监督学习的效果。
前沿自监督方法分析
MoCo与PIRL
MoCo(Momentum Contrast)和PIRL(Pretext-Invariant Representation Learning)代表了当前最先进的自监督方法:
- 对于小容量模型,它们能达到接近监督学习的性能
- PIRL使用噪声对比估计器(NCE)作为目标函数
- 采用独立头部f和g处理特征,而非直接使用卷积输出
- 需要大量负样本,使用内存缓存机制解决SGD中的样本限制问题
技术细节:为什么使用余弦相似度而非L2范数?因为L2范数可能通过简单调整向量长度来"作弊",而余弦相似度强制系统寻找真正的相似性解决方案。
SimCLR
SimCLR(Simple Contrastive Learning)通过以下创新取得了突破:
- 复杂的数据增强方法生成相似对
- 使用极大batch size在TPU上长时间训练
- 在ImageNet上达到监督方法的top-1准确率
SimCLR也揭示了对比方法的局限性:在高维空间中,需要大量负样本来确保非流形区域的能量被充分提高。
去噪自编码器
去噪自编码器通过重建损坏的输入来学习数据表示:
- 训练系统产生能量函数,当损坏数据远离数据流形时能量二次增长
- 架构包含编码器和解码器两部分
存在问题
- 高维连续空间中损坏方式不可计数,难以全面塑造能量函数
- 缺乏潜在变量导致图像处理性能不佳
- 流形中间点的重建可能产生能量函数的平坦区域
其他对比方法
对比散度(Contrastive Divergence)
- 通过智能损坏输入样本来学习表示
- 在连续空间中使用梯度过程降低样本能量
- 离散空间中使用随机扰动
- 通过对比原始样本和损坏样本来更新能量函数参数
持久对比散度(Persistent Contrastive Divergence)
- 使用多个"粒子"并记住它们的位置
- 粒子在能量表面上移动寻找低能量区域
- 随着维度增加,这种方法难以扩展
总结
基于能量的对比方法为自监督学习提供了强大工具,特别是在计算机视觉领域。从理论上看,这些方法通过精心设计的能量调整策略,能够学习到有意义的特征表示。实践中的挑战主要来自高维空间处理和大规模负采样需求。未来的发展方向可能包括更高效的对比策略和与其他学习范式的结合。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考