CVPR | 达摩院开源自监督学习框架CoKe, 单机8卡可训练

news2024/11/27 20:27:34

团队模型、论文、博文、直播合集,点击此处浏览

一、论文

论文链接: Unsupervised Visual Representation Learning by Online Constrained K-Means

代码链接:https://github.com/idstcv/CoKe

二、背景

        虽然基于instance的自监督学习方法在ImageNet上取得了成功,这些方法往往需要在同一个iteration中优化一个样本的double view,并要求大的batch size/memory bank(e.g., SimCLR, MoCo)或者额外的momentum encoder (e.g., BYOL, MoCo) 来辅助训练, 导致比较大的计算开销.而在有监督学习中,往往比较小的batch size和single view就可以进行有效的训练. 因此,我们设计基于聚类的自监督学习框架CoKe,参考有监督学习,以极简的框架进行高效的训练.同时,为了避免聚类自监督学习中常遇到的collapse问题,我们提出一个新的聚类size下限的限制并开发online算法进行相应的优化. CoKe的示意图如下,利用前一个epoch得到的pseudo label和cluster center,在每个iteration中我们可以利用样本的single view进行训练.

三、从有监督学习到无监督学习

        首先有监督情况下的representation learning可以认为是一个distance metric learning的问题. 给定triplet,优化目标函数为

        其中x是样本的feature,c是不同类别proxy的feature. 在无监督学习中,缺少类别信息y,因此,相应的优化目标可以改写为

        相比有监督学习,新增了一个变量u来表示cluster assignment. 当u固定时,可以发现这个目标就变为了有监督学习. 但是直接优化该目标会导致trivial solution,也就是所有样本collapse到一个类中.不同于现有的balanced assignment约束 (e.g., SwAV), 我们考虑只约束每个cluster的下限,以更好的匹配数据分布. 新的约束可以写为

四、算法

        现在我们来讨论优化提出的目标函数.首先,如果固定c和u,那子问题就是一个标准的有监督学习问题. 考虑到triplet约束和cross entropy的关系 (见 SoftTriple ICCV’19),该问题可以用标准的cross entropy loss优化.

其中聚类中心c和one-hot标签y来自上一个epoch. 当考虑double-view优化时,当前模型产出的soft label也可以加入优化,具体可见论文.

如果固定x,优化c和u可以写为一个标准的带约束的k-means问题

 K-means问题也可以迭代求解. 如果固定cluster assignment,聚类中心可以有closed-form solution

如果固定c,每个mini-batch的assignment问题为

 通过为每个cluster的constraint提供一个dual variable rho,assignment的更新为

 所有rho也会在每个mini-batch后进行相应的更新.

至此,目标函数的每组变量都可以在SGD的框架下进行优化.

五、结果

        CoKe展示了一个没有memory bank,momentum encoder等复杂结构的自监督学习框架,并可以利用小batch size, i.e., 1024,在单机8卡v100服务器上进行训练. 下面我们展示CoKe在不同任务上的效果.

1、CoKe on ImageNet

        首先,我们在标准的ImageNet linear probing任务上比较single/double/multi-view的CoKe的性能. 可以发现每个iteration只利用每个样本single view的CoKe已经取得了超过72%的Acc. 当配置为double/multi-view时,单机训练的CoKe都可以取得对应SoTA的结果.

 

2、CoKe on Clustering

        CoKe也可以被看作一个single-stage的深度聚类算法,因为我们在CIFAR-10/100上比较了聚类的结果.相比two-stage的SCAN,CoKe也取得了明显的提升. 目前CoKe已开源,期待CoKe在更多不同任务上的表现.

 六、应用

        另外给大家介绍下CV域上的开源免费模型,欢迎大家体验、下载(大部分手机端即可体验):

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet50_face-detection_retinaface/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet101_face-detection_cvpr22papermogface/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-detection_tinymog/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-detection_ulfd/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-detection_mtcnn/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet_face-recognition_facemask/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_ir50_face-recognition_arcface/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-liveness_flir/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-liveness_flrgb/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_facial-landmark-confidence_flcm/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_vgg19_facial-expression-recognition_fer/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet34_face-attribute-recognition_fairface/summary

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

注册claude AI账号 slack工作区账号

Claude 是建立在 slack工作区的一个AI人工助手,更像是将chatgpt集成到了会议模式,一个账号实际上拥有了你的会议室和你的AI助手,你可以让你的朋友和同事进入你的房间体验。 Claude是不是openai的产物?目前还不知道,不…

RS232/RS485/RS422 接线说明

RS232/RS485/RS422 接线 文章目录RS232/RS485/RS422 接线RS232RS485422RS232 设备A 和 设备B 没有硬件流控 设备A设备BTXDRXDRXDTXDGNDGND 设备A 和 设备B 使用RTS/CTS 做硬件流控 一般使用RTS/CTS都会由232芯片自动控制, 比如XR21V1414, 需要设备gpio mode 为00…

Docker安装+利用docker安装MySQL(保姆级教程)

前言:本文基于docker安装MySQL,如果还没安装docker的童鞋,点击这里(超大声)安装卸载老版本docker(超详细) 一、在docker仓库搜你想要的镜像版本 docker镜像仓库 打开官网,在搜索框…

Docker 镜像制作 服务编排 私有仓库

DockerNginx部署Redis部署Dockerfile镜像制作容器转为镜像dockerfileDocker服务编排Docker ComposeDocker Compose安装使用docker compose编排nginxspringboot项目Docker私有仓库私有仓库搭建将镜像上传至私有仓库Nginx部署 案例:需求 在Docker容器中部署Nginx&…

【ARMv8 异常模型入门及渐进2 - 系统寄存器访问方法:op1,CRn,CRm,op2】

文章目录1.1 ARMv8 系统寄存器访问概要1.1.1 系统寄存器访问级别1.1.2 ARMv8 系统寄存器编码1.1 ARMv8 系统寄存器访问概要 ARMv8中,取消了协处理器,之前协处理器实现的功能,全部由系统寄存器来是实现。对于系统寄存器的访问,使用…

javaweb在校大学生贷款管理系统ns08a9

1系统主要实现:学生注册、填写详细资料、申请贷款、学校审核、银行审核、贷后管理等功能, (1) 学生注册:学生通过注册用户,提交自己的详细个人资料,考虑现实应用中的安全性,资料提交后不可修改;…

Springboot + MySQL+ JPA Ⅲ delete方法详解

一、deleteById(Id id) 和 delete(T entity) 为什么要把这两个方法放在一起呢?我们先看源码再说 deleteById源码(通过id进行删除) Transactional Override public void deleteById(ID id) {Assert.notNull(id, ID_MUST_NOT_BE_NULL);delet…

@爱打游戏的你,当游戏测试是什么感觉?

爱打游戏的你,当游戏测试是一种什么感觉? 去年《宝可梦朱紫》大火的那段时间,想必各位爱好游戏的友友们都刷到过这样的图吧:(量子纠缠)(天怎么黑了)(弹簧巨怪&#xff09…

手敲Mybatis(九)-结果集处理器

1.前言-背景介绍 上节我们处理了参数处理器,本节我们处理结果集处理器,之前我们写了一个DefaultResultSetHandler,我们把返回结果获取对象,填充值什么的写到了一起,流程没有进行解耦,并且只接收了Object的…

不通过鲁大师进行硬件检测

文章目录简介dxdiag系统信息设备管理器任务管理器PowerShelldxdiag系统信息设备管理器任务管理器PowerShellTODO:CPU-ZTODO:Everest参考文献简介 不少二手电脑重装系统后发现是假配置(特别是XP系统),可以使用系统自带…

基于Vue2实现滚动过程中数据懒加载

以下为实现滚动懒加载的过程: 1、在data对象中定义了items数组,用于存放已加载的item,loading状态,当前页数page,每页数量pageSize,以及距离底部的阈值threshold。 2、在mounted钩子函数中,首次…

Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

状态管理是自适应平台服务中的一个功能集群。 在自适应平台中,状态决定了一组活动的自适应应用程序。 特定于项目的应用程序,即状态管理器,决定何时请求状态更改,从而更改当前活动的应用程序集。状态管理器是特定于项目的&#…

【Golang】三分钟让你快速了解Go语言为什么我们需要Go语言?

博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: Go语言核心编程近期目标:写好专栏的每一篇文章 目录一、Go语…

Pytorch基础 - 3. torch.utils.tensorboard

目录 1. 简介 2. 基本步骤 3. 示例1 - 可视化单条曲线 4. 示例2 - 可视化多条曲线 5. 示例3 - 可视化网络结构 1. 简介 Tensorboard是Tensorflow的可视化工具,常用来可视化网络的损失函数,网络结构,图像等。后来将Tensorboard集成到了P…

wps如何修改已经存在的目录标题内容?

如需了解更多办公应用的相关知识,可进入到赛效官网查看应用资讯或者应用问答栏目。 在WPS文档中,为方便大家查看文档中的内容,可以给文档内容添加目录,很多人由于对文档功能不太熟悉,所以当目录生成以后,想…

高效又稳定的ChatGPT大模型训练技巧总结,让训练事半功倍!

文|python前言近期,ChatGPT成为了全网热议的话题。ChatGPT是一种基于大规模语言模型技术(LLM, large language model)实现的人机对话工具。现在主流的大规模语言模型都采用Transformer网络,通过极大规模的数…

Day941.仓库版本管理 -系统重构实战

仓库&版本管理 Hi,我是阿昌,今天学习记录的是关于仓库&版本管理的内容。 当代码以及团队达到一定的规模以后,这会给项目仓库和版本的管理带来诸多问题。 一张常见问题的表格,不妨“对号入座”,看看项目有没…

【常见CSS扫盲雪碧图】从源码细看CSS雪碧图原理及实现,千字详解【附源码demo下载】

【写在前面】其实估计很多人都听过雪碧图,或者是CSS-Sprite,在很多门户网站就会经常有用到的,之所有引出雪碧图这个概念还得从前端加载多个图片时候页面闪了一下说起,这样给人的视觉效果体验很差,也就借此机会和大家说…

Linux查看串行端口

查看串口驱动 cat /proc/tty/driver/serial查看串口设备 dmesg | grep ttyS*[rootlocalhost driver]# cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD 2:…

攻防世界-inget(简单的SQL注入、万能密码)

目录 1、手工注入(万能密码原理) 2、sqlmap实现 3、常用参数 1、手工注入(万能密码原理) 打开链接,提示输入id并尝试绕过 尝试一下万能密码,使用逻辑语句使结果返回 构造payload /?id or 我们这里是…