Token Lab搜索

← 论文资料库
表示与对比学习 / 2020

SimCLR:数据增强定义了“相似”

跟踪两个视图经过共享编码器与投影头,并审查这种不变性是否合理。

A Simple Framework for Contrastive Learning of Visual Representations · Chen et al. · arXiv:2002.05709

Token Lab 原创学习解读 · 来源核对 2026-10-25 · 区分论文主张与合成教学例子。

01 · 论文提出了什么

SimCLR 研究增强组合、非线性投影头及大规模对比训练。论文通过包括线性评估在内的下游评价报告表示质量,而不是只把训练损失当作成功标准。

一手来源:论文摘要 ↗
学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

  • 理解层:写明假设、形状/单位和一个反例。
  • 实现层:复算数值例子并检查边界。
  • 研究层:在匹配预算下比较一个替代方法。

02 · 核心机制

Text / 原始公式
x → augmentation₁ → f → h₁ → g → z₁
x → augmentation₂ → f → h₂ → g → z₂
Lᵢⱼ = −log[exp(sim(zᵢ,zⱼ)/τ) / Σₖ≠ᵢ exp(sim(zᵢ,zₖ)/τ)]
N original examples → 2N views → 2N−2 negatives/anchor

正样本对规则告诉表示哪些变化应被忽略。两个裁剪可能保留物体身份,但在其他领域可能裁掉唯一有关信号。投影头将对比目标使用的表示与下游编码器特征分开;这种分离是否有用应被验证,不能假定适用于所有数据。

符号与直觉为教学解释,完整假设及实现细节请对照原论文方法。

机制图与逐步推导

一个源样本 → 两个独立增强视图 → 共享编码器 → 投影 → 配对损失,评价编码器
原创机制示意图,按从上到下顺序阅读。 SVG ↓
符号与假设
符号含义
f, g共享编码器与投影头
h, z编码表示与投影表示
2N−2标准配对 batch 中每个 anchor 的负例数
  1. 每个源样本生成两个独立增强视图,用来源身份构造正例索引,不依赖偶然的 batch 邻接。
  2. 时有六个视图,每个 anchor 排除自身,有一个正例、四个负例。检查每个 anchor 恰有一个预期正例。
  3. 分别评价编码器 h 与投影 z。对比目标可能在 z 中移除某些干扰信息,而 h 保留的信息可能仍对另一项下游任务有用。
实验检查点

写领域增强有效性表,至少包含一个看似合理却改变标签的变换。

LOCAL / SYNTHETIC / INTERACTIVE

改变一个变量,解释结果为什么变。

原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。

04 · 手算一个例子

原创计数算例: 生成八个视图。对一个 anchor,排除自身、保留一个正例和六个负例,分母共七项; 时为十五项。这个组合视角说明大 batch 同时改变计算与辨别任务,本身不能预测质量。

05 · 设计实验

先为你的领域制作增强有效性表,再做实验。在相同计算预算下比较无投影头和非线性头。用冻结特征上的独立训练线性分类器,并匹配数据划分和调参预算,分别评价 h 与 z。加入保留标签的增强和故意破坏信息的增强,记录检索失败与逐类准确率。

研究交付物

写出一个假设,保存配置与原始结果,提出替代解释,只报告证据支持的结论。关联实验是本地起点,不是完整论文复现。

打开关联课程/实验 →

06 · 局限与审稿式追问

分析提醒:batch size 同时改变负例数、梯度噪声,通常也影响优化器行为。一次改变三者不能隔离单一原因。即使文件名不同,重复或语义相关样本也可能成为假负例。

医学图像增强可以直接照搬自然图像配方吗?

不可以。先判断变换是否保留下游标签与有关信号。视觉上合理的变换也可能抹去任务所需证据。

07 · 阅读原文

框架、增强和投影头消融,再读线性评估协议。

年份采用首次 arXiv 投稿年份。未锁定版本的链接随修订变化,复现报告请记录准确版本。此处 DeepSeek-R1 明确固定为 v1。

继续学习本主题

MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

使用余弦相似度且 τ>0;分母排除自身、包含正样本,对 2N 个锚点方向平均。冻结特征,对 h/z 分别训练线性分类器,匹配划分和调参预算。

复核所示公式、中英解释及声明滑块范围。代码复现标量教学计算,不是论文训练系统。

运行前:预测一个边界情况

先为你的领域制作增强有效性表,再做实验。在相同计算预算下比较无投影头和非线性头。用冻结特征上的独立训练线性分类器,并匹配数据划分和调参预算,分别评价 h 与 z。加入保留标签的增强和故意破坏信息的增强,记录检索失败与逐类准确率。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node simclr.mjs. 无需第三方运行依赖。

import {paperCalc} from './paper-core.mjs';
const result=paperCalc("simclr",4);
console.log(result);
参考输出——先预测再展开
{
  "labels": [
    "Views",
    "Positive per anchor",
    "Negatives per anchor"
  ],
  "values": [
    8,
    1,
    6
  ],
  "unit": "count"
}

测试与迁移

先为你的领域制作增强有效性表,再做实验。在相同计算预算下比较无投影头和非线性头。用冻结特征上的独立训练线性分类器,并匹配数据划分和调参预算,分别评价 h 与 z。加入保留标签的增强和故意破坏信息的增强,记录检索失败与逐类准确率。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围