【深度学习】自监督学习

自监督学习利用辅助任务从大规模无标签数据中学习表征,通过预训练-微调流程在下游任务中评估其效果。主要方法包括基于上下文、时序和对比的学习。BERT作为一个例子,展示了自监督学习在NLP和CV领域的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接:
自监督学习的预训练模型设计:
https://zhuanlan.zhihu.com/p/432546119

自监督学习:
https://zhuanlan.zhihu.com/p/184995155

自监督学习

利用**辅助任务(pretext)**从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。

自我监督学习是通过以下方式将无监督学习问题转化为有监督问题的方法:

在自监督学习中,我们通过利用数据的某些属性来设置伪监督任务来替换人类注释。
例如,这里我们可以将图片旋转 0/90/180/270 度,然后训练模型来预测旋转的角度,而不是将图像标记为 cat / dog。如果将图片标记为 cat / dog 是需要人的参与,而将图片进行旋转并记录其旋转的角度作为标签写个脚本就能完成,并且我们可以从互联网上找到数百万张图像生成几乎无限的训练数据。

在这里插入图片描述

Figure : 自监督学习的端到端工作流程

从数百万张图像中学习到特征表示后,我们可以使用转移学习对一些监督任务(例如猫与狗的图像分类)进行微调

在这里插入图片描述

1、自监督学习的三个挑战

链接:https://zhuanlan.zhihu.com/p/108906502

  • 1、对于大量的无标签数据,如何进行表征学习
  • 2、从数据的本身出发,如何设计有效的辅助任务 pretext
  • 3、对于自监督学习到的表征,如何来评测它的有效性

回答:
3、评测自监督学习的能力,主要是通过 Pretrain-Fintune 的模式。 我们首先回顾下监督学习中的 Pretrain - Finetune 流程:我们首先从大量的有标签数据上进行训练,得到预训练的模型,然后对于新的下游任务(Downstream task),我们将学习到的参数进行迁移,在新的有标签任务上进行「微调」,从而得到一个能适应新任务的网络。
而自监督的 Pretrain - Finetune 流程:首先从大量的无标签数据中通过 pretext 来训练网络,得到预训练的模型,然后对于新的下游任务,和监督学习一样,迁移学习到的参数后微调即可。所以自监督学习的能力主要由下游任务的性能来体现。

在这里插入图片描述

监督学习的Ptrtrain-Fineturn

在这里插入图片描述

自监督学习的Ptrtrain-Fineturn

2、自监督学习的主要方法

自监督学习的方法主要可以分为 3 类:1. 基于上下文(Context based) 2. 基于时序(Temporal Based)3. 基于对比(Contrastive Based)

  1. 基于上下文(Context Based)

  2. 基于时序(Temporal Based)

  3. 基于对比(Contrastive Based)

3、自监督学习的理解

在这里插入图片描述

BERT

BERT模型,它的架构就是Transformer 的 Encoder,里面有很多Self-attention,MLP,Normalization等等。BERT可以做的事情也就是Transformer 的 Encoder 可以做的事情,就是输入一排向量,输出另外一排向量,输入和输出的维度是一致的。那么不仅仅是一句话可以看做是一个sequence,一段语音也可以看做是一个sequence,甚至一个image也可以看做是一个sequence。所以BERT其实不仅可以用在NLP上,还可以用在CV里面。所以BERT其实输入的是一段文字,如下图所示。

在这里插入图片描述
接下来要做的事情是把这段输入文字里面的一部分随机盖住。随机盖住有2种:
一种是直接用一个Mask把要盖住的token (对中文来说就是一个字)给Mask掉,具体是换成一个特殊的字符。另一种做法是把这个token替换成一个随机的token。

在这里插入图片描述
接下来把这个盖住的token对应位置输出的向量做一个Linear Transformation,再做softmax输出一个分布,这个分布是每一个字的概率,如下图所示。
在这里插入图片描述
那接下来要怎么训练BERT呢?因为这时候BERT并不知道被 Mask 住的字是 “湾” ,但是我们知道啊,所以损失就是让这个输出和被盖住的 “湾” 越接近越好,如下图所示。

使输出和被mask住的token越接近越好
剩余内容:
https://zhuanlan.zhihu.com/p/378360224
看不懂了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值