self supervised learning

news/2024/9/22 20:23:31/文章来源:https://www.cnblogs.com/jianyingzhou/p/18425797

self supervised learning 自监督学习,按照机器学习中传统分类方法,监督学习,无监督学习,强化学习,有些还会有半监督学习等。

监督学习,以计算机视觉领域中最简单的任务为例,给你一张只有一只狗的图,让你说这图是什么,你肯定说是狗。那么在计算机视觉任务重,给这图打的标签一般就是dog, 然后输入这张图,标签就是dog,模型输出如果不是dog, 就认为模型学错了,这个时候如果用一个loss损失函数来评估模型的表现的话,loss应该体现出来这个时候loss的值要很大,而如果模型输出的结果是这个图是dog,那么loss应该是0.此时模型优化过程就会根据loss进行调整模型参数的过程,这个过程称为是监督学习的过程。就是输入数据是有标签并直接和任务相关联的,用这个标签来对模型进行优化,在这个过程中,我们有理由相信此时模型只能做这个任务,如果换了个任务模型是不能用的。在深度学习领域,尤其是CNN卷积模型领域,通常需要大量带标签的数据才能使得模型具有良好的性能。那么在数据缺乏的情况下,之前常用的做法是基于公开的大数据集进行有监督学习,比如imagenet的分类数据,大概1M数据集,分为1000类别。那么如果我想做视觉中的别的任务,比如检测任务,但是我又缺乏足够的数据,那么之前通常的做法就是用这1M的分类数据训练一个分类网络,而后用这个分类网络作为backbone,在训练检测任务时,微调或者frozen住这个backbone,只用检测数据训练和检测相关的任务。在这个过程中,我们通常任务这个backbone的作用是特征提取,无数工作也表明当你数据很少时,这么做确实可以很好地提升性能。但是这个过程其实是针对分类任务进行训练的,是否真的最适合检测呢?

无监督学习,无监督学习就是在模型优化过程中,数据是没有标签的,那么此时我们就要去用一些measure去衡量样本之间的相似性,通常用的聚类等机器学习算法就是这类的方法,数据是没标签的,我们用一些measure,比如欧式距离,l1, l2等来衡量样本之间的相似性,样本由样本具有的一些特征来表征,比如x,y,或者w,h这种特性。这种方法通常情况下,受到measure的影响比较大,而且在这个过程中,有时候无法保证一定是收敛或者收敛到某一个点的。

半监督学习或者弱监督学习,所谓半监督学习,就是数据有标签,但是标签信息不完整,比如告诉你一张图里有人,但是不告诉你有几个人,人在哪里,但是你可以依赖这个弱标签找出来人在哪里,有几个人,这个过程的学习就是半监督学习。

强化学习,强化学习通常是用于机器人控制领域,就是没有办法给出具体的监督信息,但是可以给一个反馈,告诉你你走对了还是错了,或者算是一个惩罚、奖励反馈。在这个信息下,去达到最终的目的。

最近这些年非常热的一个方向,self-supervised learning,自监督学习,其实就是无监督学习,Self-Supervised Learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务 (Downstream Tasks)。 其主要的方式就是通过自己监督自己。作为代表作的 kaiming 的 MoCo 引发一波热议, Yann Lecun也在 AAAI 上讲 Self-Supervised Learning 是未来的大势所趋。自监督学习有两个方向,一个是端到端的,一个是对比学习,这次主要是介绍一下对比学习。已MOCO为例,对比学习其实思路真的很简洁好用。

 从图上可以看到,简单吧。

通过对比学习的方式实现无监督学习,训练模型的样本可以是1M的imagenet分类数据,此时监督学习不是1000类了,而是1M类了,也就是说每张图片自成一类,但是不再是简单的分类问题,一张图进行crop两次,作为正样本,别的都是负样本,类似于之前做的人脸特征提权工作,同一个人作为正样本,不同人作为负样本,这样学习。通过对比学习的网络更加适合做特征提取,这种网络更适合做下游任务的backbone。但是这些工作主要是针对CNN网络的经典网络,比如resnet等。
 

DINOv2: Learning Robust Visual Features without Supervision

Meta AI Research, FAIR

Maxime Oquab, Timothée Darcet, Théo Moutakanni, Huy V. Vo, Marc Szafraniec, Vasil Khalidov, Patrick Labatut, Armand Joulin, Piotr Bojanowski

https://github.com/facebookresearch/dinov2

 

这是后来出现的DINO系列的工作,也是META的工作,这个和CNN一样,也是对比学习实现自监督学习,但是不太一样的这是基于VIT来做的,训练上会收敛难点。目前来看,基于自监督的很多工作都是基于这个框架来的。前面一篇介绍深度估计的工作,就是基于dino来做的。

 推荐一个非常好的讲解视频,https://www.bilibili.com/video/BV19S4y1M7hm/?spm_id_from=333.788

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户验收测试指南8实施测试

8 实施测试 到目前为止,我们已经规划了我们的 UAT 演习,并制定了测试的总体战略,然后设计了所有测试并编写了测试脚本。现在,我们已准备好实施计划和进行测试。 在本章中,我们将介绍如何安排所有测试,以实现我们的测试策略,并根据验收标准评估系统。为此,我们需要记录所…

Linux中删除文本中所有的重复的字符保持唯一

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试文本 abk akkkkccc 8777 ,,, aaaf 333444 --- uukk22 [root@PC1 test]# cat a.txt | tr -s [:alnum:] ## 删除连续的重复字符 abk akc 87 ,,, af 34 --- uk2 [root@PC1 test]# …

ConcurrentLinkedQueue详解(图文并茂)

前言 ConcurrentLinkedQueue是基于链接节点的无界线程安全队列。此队列按照FIFO(先进先出)原则对元素进行排序。队列的头部是队列中存在时间最长的元素,而队列的尾部则是最近添加的元素。新的元素总是被插入到队列的尾部,而队列的获取操作(例如poll或peek)则是从队列头部…

Linux 中实现文本中所有的单词的第一个字符大写,其余字符小写

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 afdf eDET FDSS FFde fexk mxnd [root@PC1 test]# cat a.txt | awk {for(i = 1; i <= NF; i++) {$i = toupper(subst…

Docker方式搭建Maven私服

私服搭建 如下讲解如何基于Docker方式快速搭建Nexus3私服。 编写docker-compose.yaml文件,内容如下: version: 2services:nexus3:image: sonatype/nexus3:3.72.0container_name: nexus3restart: alwaysports:- 8081:8081 volumes:- /data/opt/nexus3/data:/nexus-data为了避免…

安全的路很长,致迷茫的你

最近有一些朋友找到我,跟我聊,说自己感觉很迷茫,不知所措,不知道未来该怎么办?安全该怎么做?OKR该怎么写?其实我想反问他以下几个问题: 1.漏洞研究了几个? 2.样本分析了几个? 3.这段时间看了多少安全技术类文档? 4.目前流行的恶意样本家族都有哪些? 5.目当流行的影…

我对什么都感兴趣,可我迷茫了

我收到一个同学给我的邮件问了个在我看来属于“太阳系”级的难题,比宇宙终极难题还差那么些^^他问: ----------------- 这几天一直挺困惑。说下我的问题,你有空的时候帮我解答下吧。 今天问自己个问题,找个自己的特长现在开始发展它。 基本上以后主要就靠这个特长工作。 但…

进程控制2

使用waitpid(pid, status,0);填入子进程的pid,阻塞父进程,直到子进程结束了,然后把子进程的pcb结构体的状态码读取出来。使用WIFEXITED(status)判断子进程是否正常退出,WEXITSTATUS(status)读取退出码来判断运行是否正常结束。 因为进程结束有3种情况:1.进程正常退出,并正…

电力煤矿液体泄漏识别系统

电力煤矿液体泄漏识别系统对电力煤矿危化品生产区域管道机械实时检测,当电力煤矿液体泄漏识别系统检测到机械管道出现液体泄漏时,系统立即抓拍存档并告警同步回传给报警信息给后台监控人员,让工作人员及时处理,电力煤矿液体泄漏识别系统实现危险区域跑冒滴漏异常自动监控抓…

河道水尺水位监测系统

河道水尺水位监测系统利用计算机视觉技术对河道湖泊水尺水位进行7*24小时全天候实时监测,当河道水尺水位监测系统监测到河道水位异常变化时,系统立即抓拍存档同步回传图片给后台监控平台,提醒后台工作人员及时处理异常情况,避免更大损失的发生。河道水尺水位监测系统适用于…

7-4DeepFM模型

DeepFM继承了Wide&Deep的主体结构,将高低特征进行融合。其主要创新点有2个。一是将Wide部分替换成了 FM结构,以更有效的捕获特征交互interaction;二是FM中的隐向量 和 Deep部分的 embedding 向量共享权重,减少模型复杂性。推荐系统和广告CTR预估主流模型的演化有两条主…

排水口排水识别系统

排水口排水识别系统基于Python基于YOLOv7深度学习的计算机视觉识别检测算法,排水口排水识别系统赋予传统监测系统智能检测能力提升企业污水排放监督管效率,7*24小时不间断准确判断检测场景内的是否出现排水口排水情况,减少后台监控人员的工作量,减少后台漏报误报产生的失误…