机器学习--06自监督学习BERT模型

self-supervised learning里面有一些模型这些模型都是巨大的模型,这次就来以bert大模型为例子来讲解self-supervised。我们之前学习的模型都是supervised,就是通过输入带有标签的数据给我们设计的模型,然后得到想要的输出结果,而self-supervised就是让数据自己想办法给自己打上标签==》把没有标签的数据分为两部分,一部分x作为模型的输入,一部分y作为模型的标签。x输入到模型里面得到输出,然后把得到的输出结果和标签y进行比较,越相近越好。

自监督学习模型主要分为两种:bert(做填空题)和GPT(预测接下来要出现的)

一、具体如何实现BERT过程

bert和self-attetion的encoder(transformer中)很相似,都是输入的为一排向量,输出也为一排向量,bert一般用在文字、语音处理上。在bert网络模型中,对于encoder部分我们把输入的一排向量随机盖住(换成特殊符号、用其他随机值替换)部分文字,经过encoder得到一个输出结果,然后把盖住部分对应的输出矩阵进行linear模型(linear线性变化乘以其他矩阵w)再进行softmax对所有可能的值进行估值,然后得到最有可能的值。被盖住的部分我们是知道的,但是对于模型bert是不知道的,我们希望的是经过softmax得到的输出要和真正的结果越接近越好,这样bert就能完成一项完形填空。bert的另外一个工作就判断两个句子是否能合并成一个句子,输入是一排向量,向量中添加特殊符号[SEP]用于告诉bert这是两个句子的分隔符,[CLS]特殊符号是一排向量的开头提示。对于bert模型得到的所有输出向量,首先只看[CLS]的输出,然后再进行linear二元分类,得到的结果就是预测这个向量是否拼接为一个句子,但是这个方法没啥用。所以目前bert就两个作用:1就是完形填空,2就是把两个句子连成一个句子。

那bert应该如何用呢(填空)?它能做很多的下游任务(downstream tasks),给一些有标注的资料,它就能分化成各式各样的任务,这样的方法就叫fine-tune;在fine-tune(进行训练)之前,产生bert的过程就叫做pre-train(这个的意思的通过学习填空之后得到的,这次的学习是不用标注信息来学习的)

bert到底是如何被使用的(训练)?案例①输入是一个句子,输出是句子的好坏;但是还是需要下游的标注资料才能训练bert模型,linear和bert的参数都是通过gradient descent来更新的,不过linear最初始的参数是随机的,但是bert的初始参数是通过pre-train(学习了填空,这样的初始化参数比随机的要好,loss下降的更快更低)得到的。

案例②:输入是一排向量,输出是和输入长度一样的向量;它的原理和case1是差不多的,只是在案例1的时候只有[CLS]对应的输出做linear来判断句子的好坏,现在是除了[CLS]都做linear来设计初始化参数以及得到判断句子的好坏。案例③:输入两个句子(前提和假设),输出是一个类别(判断这两个句子的关系);也是只通过[CLS]来进行判断。案例④:QA问题给一篇文章,然后进行问答这篇文章的内容,输入是文章和问题,输出是问题的答案(由两个字符组成,告诉我们答案在文章的哪个位置);橙色表示答案初始的位置,蓝色表示答案结束的位置,inner product可以理解为attetion里面的两个矩阵进行相乘。

之前给bert做的填空和现在的训练bert模型从输入到输出到底有什么关系?bert为什么有用呢?embedding表示为输出向量,每个输出的向量都有自己的含义(文字来说就是一个向量对应一个文字),从所有的输出能发现,意思越相近的向量距离越近。但是存在一词多义的情况下,比如我们对bert中输入了很多带有”苹“的这个单词,但是有一词多意的存在,对于有些“苹”对应输出的向量也是不一样的,bert能自己发现。发现过程就是经过填空之后知道这个词的意思(在填空的过程中会联系上下文,所以里面有self-attention),明白这个词的意思所以在之后的训练过程中能学习的更好。

把bert应用到DNA、音乐的分类:DNA一共有四种类别(ATCG),把四种类别对应于四种不同的单词,然后把DNA的序列输入到bert中,当然加上[CLS]然后对cls进行Linear分类,bert提前做了预训练,不过这个预训练是从学习单词得到的,Linear还是随机初始化参数。为什么能这样做,不知道,但是还是能得到一个还不错的结果。

multi-lingual bert(多语言的bert),拿各种语言进行bert填空,当你训练英语的QA问题,之后会发现这个模型能解决中文的QA问题,(可能是它发现语言的规律,不同语言的词汇的意思找到了对应词,不同语言相同意思的词语输出向量很近),是不是实现了翻译的功能?

二、其他大模型

GPT:先通过训练资料来训练模型,之后预测接下来要出现的词语是什么。不寻常之处就在于它给模型巨大的训练资料,并且这个模型是巨大的。

“few-show learning”就是说给出任务描述,然后再给出几个简单的例子,之后就要模型我们提出的问题从这几个例子中找出相关性从而得到我们想要的答案,这是不需要gradient descent的,这在GPT中叫做“in-context” learning。

三、应用

上面的所有例子都是运用到文字上,但是也能运用到影视、语音等方向上

这个还是比较火的,其他的就算了,根本就不行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值