0
点赞
收藏
分享

微信扫一扫

Java开发从入门到精通(十):Java的面向对象编程OOP:抽象类

首先介绍什么是自监督学习:b46dcc508bad489ab998a93cca78b856.png

普通的有监督学习是每个x对应有个y',x训练得到y,将y与y'作比较,而自监督是没有对应y',直接把一部分样本x作为训练目标x'',训练得x'后和x''对比

 

bert中如何创造x':以文字处理为例,把字随机遮住或者随机替换一些,把新的字符串组输入bert后经过linear和softmax层得到的结果和实际字符(比如这里是湾)做交叉熵,从而训练bert的参数

ab8d90fe44fd40aba1c1ce3d02d2d2e5.png

 在模型学会做填空题之后,经过微调就可以解决其他不同的任务,测试的时候会根据8个任务看总体效果

 

如何使用bert:4个case:

1.语言情感分析(输入一个序列,输出这个序列是积极还是消极的)

0dff5a3dc69b4f389c55c668e3a967c7.png

方法:在输入的字符串前面加cls字符,通过这个字符的输出经过线性层后得到类别,bert的作用是得到一个比较好的初始化参数(注:需要有提前标注的数据)

 

2.词性分析

1fb3341660aa486597fcf8a7807cbd86.png

根据每个词的输出过线性层看词性

 

3.判断两个句子是否矛盾

bafb18351e51448b9d2451a92d2b390c.png

把两个句子中间加个分割符,根据句首的cls符对应的输出判断关系

 

4.根据一个问题,从一段话里截出一部分作为答案

17b71a3b8cf34007ae7dbbbcba56d726.png  

方法:随机初始两个向量(需要训练的两个东西)把他们分别和d1,d2,d3的输出做内积并过softmax层,得到最大值的位置就是截取文本的开始和结束位置 

 

注意:因为attention运算量较大,一般不输入太长的,因此会把文本分成一段一段放进去

为什么bert有效:一个词的意思可以从它的上下文得出,而bert学做填空题的过程就是抽取上下文的资信

bert实验结果的神奇之处:bert可以让不同语言得到的词语向量很接近,每个词的英文和中文的差距几乎是一个固定值

 

 

 

 

 

 

 

 

 

举报

相关推荐

0 条评论