news 2026/6/13 7:37:57

对比学习:【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/9 22:12:54

港科大ORCA框架:视频角色实现自主复杂任务执行

这项由香港科技大学何轩华、杨天宇和陈启峰教授领导,联合美团研究团队共同完成的研究发表于2024年12月,论文编号为arXiv:2512.20615v1。有兴趣深入了解的读者可以通过该编号查询完整论文。当我们观看一个视频博主制作美食的过程时,会发现他们…

作者头像 李华
网站建设 2026/6/13 1:54:45

基于SpringBoot的音乐网站设计与实现(毕设源码+文档)

背景 本课题聚焦音乐传播与分享的数字化需求,针对当前音乐资源分散、个性化推荐不足、交互体验单一、版权管理不规范等痛点,设计开发基于SpringBoot的音乐网站。网站以SpringBoot为核心后端框架,结合前端主流开发技术与数据库存储方案&#x…

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

ARM 汇编指令:STP\LDP

ARM 汇编指令:STP\LDP 好的,STP 和 LDP 是 ARMv8-A 架构中非常核心且高效的一对指令,用于同时存储/加载两个寄存器。它们对栈操作、函数调用约定和内存数据块操作至关重要。 核心概念 STP:Store Pair。将两个寄存器的值存储到相邻…

作者头像 李华
网站建设 2026/6/10 20:27:35

基于微信小程序的智能雨伞借取系统毕设源码+文档+讲解视频

前言 本课题聚焦公共出行场景下的应急借伞需求,针对传统共享雨伞借还流程繁琐、点位信息不透明、归还不便、管理效率低下等痛点,设计开发基于微信小程序的智能雨伞借取系统。系统以微信小程序为核心载体,结合前端原生开发技术与后端轻量化服务…

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

2025最强AI写论文神器:8款工具一键搞定降重润色!

别再为论文熬夜、为查重焦虑、为导师意见抓狂了。这篇终极清单,将彻底改变你的学术写作方式。 在学术写作的世界里,时间就是生命,质量就是尊严。从开题报告到文献综述,从数据处理到最终查重,每一步都充满挑战。但今天&…

作者头像 李华
网站建设 2026/6/12 13:07:02

PMP学习笔记--环境

01,组织运行环境包含事业环境因素和资质过程资产组织结构类型(1)职能型组织(2)矩阵型组织(3)项目型组织项目管理者在不同组织中的特征组织治理框架法约尔原则与治理要素企业文化与发展战略企业所…

作者头像 李华