当前位置: 首页 > news >正文

深度学习:bert模型

multi-headed机制

1、通过不同的head得到多个特征表达,一般8个head
2、将所有特征拼接在一起
3、降维,将Z0~Z7连接一个FC全连接实现降维

多层堆叠

位置编码

如何实现位置编码?

(1)为每个时间步添加一个0-1范围内的数字,其中0表示第一个单词,1表示最后一个单词。

我喜欢吃洋葱 【0 0.16 0.32.....1】

我真的不喜欢吃洋葱【0 0.125 0.25.....1】

问题:我们可以看到,如果句子长度不同,那么位置编码是不一样,所以无法表示句子之间有什么相似性。

(2)1-n正整数范围分配

我喜欢吃洋葱 【1,2,3,4,5,6】     

我真的不喜欢吃洋葱【1,2,3,4,5,6,7】   

 问题:往往句子越长,后面的值越大,数字越大说明这个位置占的权重也越大,这样的方式无法凸显每个位置的真实的权重。

三角函数位置编码

word embedding:是词向量,由每个词根据查表得到

pos embedding:就是位置编码。

composition:word embedding和pos embedding逐点相加得到,既包含语义信息又包含位置编码信息的最终矩阵

pos:指当前字符在句子中的位置(如:”你好啊”,这句话里面“你”的pos=0),

dmodel:指的是word embedding的长度(例“民主”的word embedding为[1,2,3,4,5],则dmodel=5),

2i表示偶数,2i+1表示奇数。取值范围:i=0,1,...,dmodel−1。

偶数使用公式(1),奇数时使用公式(2)。

当pos=3,dmodel=128时Positional Encoding(或者说是pos embedding)的计算结果为:

优点:

1、可以使PE分布在[0,1][0,1]区间。

2、不同语句相同位置的字符PE值一样(如:当pos=0时,PE=0)。

训练数据

训练数据集是什么?

(方法1)随机的将句子中的15%的词汇进行mask。让模型去预测mask的词汇。 注:一般选择字进行mask,词的可能性太多,例如今天,明天,后天,上午,下午,没有,再次等等。

方法2)预测两个句子是否应该连在一起。

CLS:分类标记(Classification Token)用于表示输入序列的开始。在输入序列中,CLS应放置在句子的开头。在训练过程中,CLS也当作一个词参与训练,得到对应与其他词汇关系的词向量。 SEP:分隔符标记(Separator Token)用于分隔两个句子或表示单个句子的结束。在处理多个句子时SEP应放置在每个句子的结尾。在训练过程中,SEP也当作一个词参与训练,得到对应与其他词汇关系的词向量。


http://www.mrgr.cn/news/68817.html

相关文章:

  • 信息安全建设方案,网络安全等保测评方案,等保技术解决方案,等保总体实施方案(Word原件)
  • 35.Redis 7.0简介
  • ReactPress系列—NestJS 服务端开发流程简介
  • 【设计模式系列】外观模式(十四)
  • Hive详解
  • web缓存器介绍
  • C#-里氏替换原则
  • 2.Python解释器
  • 抗辐照CANFD芯片工艺解析:如何保障芯片的可靠性
  • Python操作Excel
  • 1.python介绍、安装
  • _处理匿名命名空间里的变量时进入硬件中断错误
  • Scaffold-ETH 2:颠覆传统开发的区块链神器,快速构建你的去中心化应用!
  • 基于毫米波雷达和TinyML的车内检测、定位与分类
  • Excel快捷键大全
  • LeetCode 二分算法 范围内整数的最大得分
  • JavaScript 网页设计详解教程
  • Liunx:文件fd、重定向、管道
  • UE4.27打包为Html5
  • 我谈维纳(Wiener)去噪滤波器
  • ReactPress:构建高效、灵活、可扩展的开源发布平台
  • C++11新特性
  • MySQL基础(四)
  • 复杂度的讲解
  • 五分钟使用 CocosCreator 快速部署 TON 游戏:开发基于 ZKP 的游戏
  • 【java】哈希<两数之和> 理解哈希