Siamese 网络是一种使用孪生子网络处理两个输入并比较它们输出的神经架构。在自监督学习 (SSL) 中,这种设置使模型能够通过识别相同数据的增强或修改版本之间的关系来学习表示,而无需依赖标记示例。核心思想是训练网络识别来自同一来源的输入之间的相似性或差异性,使用数据本身的固有结构作为监督。例如,可以将图像的两个裁剪或文档中的文本片段输入到孪生网络中,并且该模型学习为相关输入生成相似的嵌入,为不相关的输入生成不同的嵌入。
Siamese 网络在 SSL 中的一个关键应用是对比学习框架,如 SimCLR 或 MoCo。例如,在 SimCLR 中,网络通过相同的子网络处理同一图像的两个增强视图(例如,裁剪、旋转或颜色调整后的版本)。训练目标强制这些视图的嵌入对齐,同时将来自不同图像的嵌入分开。 Siamese 结构确保子网络共享权重,从而保证两个增强输入之间的一致特征提取。这种方法通过使用数据中的自然变化作为监督信号,消除了对手动标签的需求。类似地,在 NLP 中,像 Sentence-BERT 这样的模型使用 Siamese 网络通过比较语义相似或不同的文本片段对来学习句子嵌入。
除了对比方法之外,Siamese 网络还用于非对比 SSL 方法,如 BYOL(Bootstrap Your Own Latent)。在这里,一个子网络(“在线”网络)学习预测一个缓慢更新的“目标”网络处理相同输入的不同增强视图的输出。虽然没有使用显式的负样本,但 Siamese 结构强制了两个子网络的输出之间的一致性。开发人员可以使用像 PyTorch 或 TensorFlow 这样的框架来实现这些概念,通过定义具有共享权重的孪生网络并设计对其组合输出进行操作的损失函数。例如,余弦相似度损失可能会比较来自两个子网络的嵌入,而预测器头(如在 BYOL 中)可以桥接它们的输出。关键的要点是,Siamese 网络提供了一种灵活的方式来利用 SSL 中的数据关系,使它们成为在没有标记数据的情况下进行表示学习的基本工具。