news 2026/6/10 9:41:51

对比学习:【SimCLR】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
对比学习:【SimCLR】

🚩 对比学习最经典的框架:SimCLR笔记它来咯!
主要包括:数据增强+编码+投影头+对比损失


文章目录

  • 1. 一句话概括
  • 2. 简介
    • 2.1 模型定位
    • 2.2 历史意义
    • 2.3 核心思想
  • 3. 方法
    • 3.1 数据增强(Data Augmentation)
    • 3.2 编码网络(Encoder Network)
    • 3.3 投影头(Projection Head)
    • 3.4 对比损失(Contrastive Loss)

1. 一句话概括

SimCLR是一种基于对比学习的自监督框架:对每张图像生成两种强增强视图作为正样本对,使用ResNet编码并通过MLP投影头得到对比空间表示,在 batch 内把其他样本当作负样本,用带温度系数的NT-Xent损失拉近正对、拉远负对,从而学习可迁移的视觉表征。

2. 简介

2.1 模型定位

  • 图像分类、目标检测、语义分割的预训练模型

2.2 历史意义

SimCLR(Simple Contrastive Learning of visual Representations),它是自监督学习(Self-Supervised Learning, SSL)在计算机视觉领域的重要里程碑之一,由 Google Research 在 2020 年提出。

利用对比学习,实现自监督学习模型的性能超越了有监督学习模型的性能。

  • 论文《A Simple Framework for Contrastive Learning of Visual Representations》
  • 代码仓库:https://github.com/google-research/simclr

2.3 核心思想

让同一张图像的不同增强视图在特征空间中彼此靠近,同时让不同图像的增强视图彼此远离。(对比学习)

换句话说,模型要学会“识别”哪些特征属于同一图像的不同视角,从而学到对图像变换鲁棒的通用特征。

3. 方法

3.1 数据增强(Data Augmentation)

  • 对同一张原始图像 x随机采样两种不同的增强方式,得到两个视图x i x_ixix j x_jxj(正样本对)
  • 数据增强方式组合包括:
    • 随机裁剪缩放
    • 颜色扰动
    • 随机灰度
    • 高斯模糊
    • 水平翻转
  • 目的:制造视觉上不同但语义相同的样本,迫使模型关注语义而非表面特征。
  • 前两种数据增强方法对效果提升很重要。
importtorchvision.transformsasT# SimCLR 常用的数据增强组合(适用于 ImageNet 风格输入)simclr_train_transform=T.Compose([T.RandomResizedCrop(size=224,scale=(0.08,1.0)),# 随机裁剪缩放T.RandomApply([# 颜色扰动(按概率应用)T.ColorJitter(brightness=0.4,contrast=0.4,saturation=0.4,hue=0.1)],p=0.8),T.RandomGrayscale(p=0.2),# 随机灰度T.GaussianBlur(kernel_size=23,sigma=(0.1,2.0)),# 高斯模糊(kernel_size 建议为奇数,随分辨率调整)T.RandomHorizontalFlip(p=0.5),# 水平翻转T.ToTensor(),# 转成 PyTorch TensorT.Normalize(mean=(0.485,0.456,0.406),std=(0.229,0.224,0.225))# 对每个通道做标准化(这组数来自 ImageNet 的统计)])

3.2 编码网络(Encoder Network)

  • 使用一个卷积神经网络(ResNet)将增强图像x i x_ixix j x_jxj编码为特征向量。

3.3 投影头(Projection Head)

  • 小型非线性网络,通常是MLP

  • 投影头的输出z zz才是对比学习任务的直接输入,训练完成后可丢弃,只用编码器f ( . ) f(.)f(.)提取的特征做下游任务。

3.4 对比损失(Contrastive Loss)

使用 Normalized Temperature-scaled Cross Entropy Loss(NT-Xent)​ 计算损失:


其中,τ:温度参数(temperature),控制分布的平滑程度。


NT-Xent 损失本质是 InfoNCE 的一种写法

损失的演变过程

  • NCE:原本是一种用于估计概率模型中配分函数(partition function)的方法,通过将密度估计问题转化为二分类问题(区分真实数据与噪声数据)。
  • InfoNCE:在 NCE 的基础上,用于最大化输入与表征之间的互信息的下界,在对比学习中,它表现为“让正样本对的相似度高于负样本对”。
  • NT-Xent:一种写法上的转变
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:14:35

Prime Intellect开源INTELLECT-3:性能超越多数前沿大模型

这项由Prime Intellect团队于2025年12月发表的研究报告,详细介绍了他们开发的INTELLECT-3模型及其完整的开源训练基础设施。这个研究团队包括了来自多个机构的研究人员,包括Mika Senghaas、Fares Obeid、Sami Jaghouar等十多位专家。研究成果发表在arXiv…

作者头像 李华
网站建设 2026/6/10 14:07:22

基于spark的西南天气数据的分析与应用(毕设源码+文档)

背景 本课题聚焦西南地区天气数据的深度挖掘与价值转化需求,针对当前西南区域气象数据体量庞大、处理效率低下、分析维度单一、数据应用场景不足等痛点,开展基于Spark的西南天气数据的分析与应用研究。研究以Spark为核心大数据处理框架,结合气…

作者头像 李华
网站建设 2026/6/10 14:13:40

基于SpringBoot框架社区老年人健康杂志阅读分享管理系统(毕设源码+文档)

课题说明本课题聚焦社区老年人健康知识获取与交流分享的核心需求,针对当前老年群体健康读物适配性不足、阅读资源分散、交流渠道匮乏、健康知识传播效率偏低等痛点,设计开发基于SpringBoot框架的社区老年人健康杂志阅读分享管理系统。系统以SpringBoot为…

作者头像 李华
网站建设 2026/6/10 9:59:10

基于SpringBoot特色农产品销售系统(毕设源码+文档)

课题说明本课题聚焦特色农产品产销对接的数字化需求,针对当前特色农产品流通渠道狭窄、品牌推广不足、供需信息不对称、交易流程不规范等痛点,设计开发基于SpringBoot的特色农产品销售系统。系统以SpringBoot为核心后端框架,结合前端主流开发…

作者头像 李华
网站建设 2026/6/10 10:02:33

腾讯三面:100万 QPS 的秒杀,你用 Redis 做限流?CPU 炸了谁负责?

写在开头: 上周跟一个想跳槽腾讯的朋友吃饭,他一脸郁闷。 三面的时候,面试官问了他一个经典的场景题:“双十一大促,某个爆款商品预计每秒有 100 万请求(QPS),库存只有 100 个。请设…

作者头像 李华
网站建设 2026/6/10 10:05:16

【电动机】三相感应电动机TIM间接磁场定向控制IFOC研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

作者头像 李华