首先学习一下自监督学习的内容,课程目录如下,按照这个流程可快速入门视觉大模型
在这里插入图片描述

为什么学习自监督学习

首先自监督学习的基本概念,如图二所示。为什么要先学习自监督学习?

在有监督学习当中,我们不仅需要原始数据的这一个x,我们还需要对应的这个label yhat,然后构建一个模型,我们学习从x到y的这样的一个映射的一个关系。那我们最后比较是y和y label之间的一个距离来构建一个loss。

而在自监督学习当中呢,我们从原始的这个数据当中就可以抽取出一个x’和一个x’‘,x’‘可以看成是一种数据当中的一个label,模型是通过x’来预测y。
那最后只需要约束y和x’'之间的距离来构建一个loss就可以。

自监督学习还有个优点,它就是有非常强的统一性,那相较于有监督学习,我们对于不同的任务。比如说分类检测分割关键点,预测这些不同的任务,我们都需要标注不同的标签,哪怕是同一个数据集。那么为了实现不同的任务,几乎都得重新去标注它们对应的标签。
而自监督学习,不管我是做什么任务,我们最终都把它统一了起来。因为我不需要任何的标注的信息,那么我就可以把所有的数据集,不管是针对哪个任务的,不管有没有标签,我全部都可以把他们放在一起训练,也就不需要为了不同的任务来分别去进行一个训练了。

自监督学习的分类

在这里插入图片描述

自监督学习可以分成三大类。基于前置任务的方法。
基于对比学习的方法和基于掩码重建的这三类。

基于前置任务

基于位置预测的方式

在这里插入图片描述

基于旋转预测

在这里插入图片描述

基于上色任务的方式

在这里插入图片描述

基于聚类预测的方式

在这里插入图片描述

基于对比学习

1️⃣原理

基于对比学习的方式原理如上图所示,两个正样本经过网络提取特征,让他们之间的相似度越大越好。两个负样本经过网络提取特征,让他们之间的相似度越小越好。
loss的计算就是个softmax函数,里面填进去的是样本之间的相似度计算。而相似度可以通过余弦函数来计算。
在这里插入图片描述

2️⃣SimCLR

网络结构如图所示比较直观,是两个正样本经过共享参数的encoder以后,在经过mlp,计算两个输出向量的相似度。
在这里插入图片描述

3️⃣MoCo

如图所示,基于动量的方式就是每次更新参数的时候不仅考虑当前的梯度,还会考虑一部分之前的梯度,以免学着学着学偏离了,这样可以加速收敛。
在这里插入图片描述

对于MoCo来说,将SimCLR中共享的encoder换成两个不共享的。
上面一路的encoder正常输入正样本x query,正常进行反向传播梯度更新。
下面一路encoder则输入正样本和负样本,其中只有一个正样本和和x query是一对pair。
下面一路的encoder更新参数(记为θk)的时候需要加权一部分(记为θq)的参数。这种方式即为基于动量的更新方式。
其中下面的支路提取出来的特征存到一个队列里面,起个名字叫memory bank,作者发现这个队列越大即bs越大效果越好。
为什么用动量的方式更新效果好,作者也只是实验出来的,没有定论。

MoCo代码详解参考我的笔记:链接

基于掩码重建

在这里插入图片描述
1.掩码重建方法是一种自监督学习方法,其思想来源于NLP中的BERT模型。
2.该方法通过随机遮盖图像中的某些部分,并训练网络预测被遮盖的内容,从而学习图像的上下文特征。
3.在CV领域,基于掩码重建的方法是一种创新的自监督学习方式。

BEiT方法介绍

1.BEiT(BERT Pre-training of Image Transformers)是一篇2021年发表在arXiv上的论文,提出了将BERT的思想应用于图像处理的方法。
2.BEiT方法将输入图像切割成多个patch,随机mask掉一部分,并用一个可学习的编码替换被mask的部分。
3.网络通过vision transformer结构预测被mask部分的内容,类似于分类任务。

优化目标与数学公式
1.优化目标是最大化被mask部分与其真实类别之间的条件概率。
2.条件概率通过线性分类器计算,特征经过网络后得到。
3.公式简单易懂,反映了线性层和softmax的使用。

总结

1.自监督学习方法包括基于前置任务的方法、基于对比学习的方法和基于掩码重建的方法。
2.基于前置任务的方法最早提出,通过设计策略在无标签数据下训练网络。
3.基于对比学习的方法通过构造正负样本对,学习数据的相似性。
4.基于掩码重建的方法通过遮盖部分数据并预测其内容,学习数据的上下文信息。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐