Transformer Encoder (Bert)

news2024/11/23 16:47:27

参考:图解Self-Attention_子燕若水的博客-CSDN博客

举个例子:

假设输入数据形状为(243,34),表示的是243帧,每帧包含34个特征(比如17个关键点的x,y坐标)。那么这个数据在Transformer Encoder中的流动过程如下:

  1. 输入数据shape是(243, 34),表示243个时间步(帧),每个时间步是一个34维的向量(一帧的编码向量)。
  2. 首先加入位置编码,为每个时间步增加位置信息。位置编码的shape仍然是(243, 34)。
  3. 然后进入Multi-Head Attention (MHA)层。MHA会计算每个时间步与所有时间步的关联性。输出shape保持不变,(243, 34)。
  4. MHA输出通过一个前馈全连接网络(Feed Forward Network, FFN),进行非线性转换,shape不变。
  5. 通过残差连接和Layer Normalization,把MHA和FFN的输出加入最初的输入数据中,作为这个Encoder layer的最终输出,shape还是(243, 34)。
  6. 栈叠多个这样的Encoder Layer,重复进行自注意力计算和特征转换,输出shape保持不变。
  7. 每个时间步(帧)都能调用其周围所有帧的信息,通过MHA建模全局依赖关系。

所以综上,输入在Encoder中通过MHA和FFN被复用转换多次,但shape保持不变,依然编码每个时间步的特征。shape的维持使得 Encoder可以灵活堆叠。

 

Training of BERT

 

 

 

獻上有兩種訓練方法,第一種為Masked LM:即,輸入給BERT的詞彙會有15%的詞彙會被置換為一個特殊的token,這個token稱為"MASK"。也就是蓋掉句子裡面15%的資訊。BERT要做的就是猜這些被蓋掉的詞彙是那幾個詞彙。

作法如下說明:假設輸入的第二個詞彙是被蓋掉的,所有的input經過BERT得到一個output-embedding,然後將被蓋掉的那個詞彙丟到Linear Multi-class Classifier裡面,讓這個Classifier猜這個被蓋掉的是那一個詞彙。但是,因為這是一個Linear model,因此它很弱,要它能猜的出來就必需要BERT能夠抽出一個很好的representation,因此BERT所抽出來的embedding會跟上下文間的詞彙的embedding是相近的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/783435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【字符流】案例:点名器

案例:点名器 1.需求: 我有一个文件里面存储了班级同学的姓名,每一个姓名占一行,要求通过程序实现随机点名器 2.思路: 创建字符缓冲输入流对象创建ArrayList集合对象调用字符缓冲输入流对象的方法读数据把读取到的字…

vue ---- filters过滤器中不能使用this问题

在日常开发中,使用filters是很正常,最近遇到切换单位,页面上显示的数据要根据单位转换,这时就需要根据data里面的变量去转换,可是filters里面不能使用this 解决: 1、先在return中声明一个变量that&#xf…

vuejs源码之模版编译原理

之前我们说过虚拟dom,也就是虚拟dom拿到vnode后所做的事情,而模版编译是如何让虚拟dom拿到vnode。 模版编译的目标就是生成渲染函数,而渲染函数的作用是每次执行它,它就会使用当前最新的状态生成一份新的vnode,然后用…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition,是 Java 的标准版,主要用于桌面应用程序开发,它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

【问题记录】Ubuntu 22.04 环境下,程序报:段错误(核心已转储)怎么使用 core 文件和GDB调试器 解决?

目录 环境 问题情况 解决思路 原因分析 解决方法 番外知识 环境 VMware Workstation 16 Pro (版本:16.1.2 build-17966106)ubuntu-22.04.2-desktop-amd64 问题情况 本人在运行百万并发的服务端程序时,程序运行报&#xff1a…

语音基石模型Speech Foundation Models

语音基石模型(Speech Foundation Models) 主要包含三部分: 1.语音表示学习(Speech representation learning) 自监督学习模型(Self-suprevised learning, SSL model)Representation benchmark…

CMU 15-445 -- Embedded Database Logic - 12

CMU 15-445 -- Embedded Database Logic - 12 引言User-Defined Functions (UDF)SQL FunctionsExternal Programming Language Stored ProceduresStored Procedures 与 UDF 的区别 Database TriggersChange NotificationsUser-Defined Types (UDT)Viewsviews vs select...intov…

区别出过孔的内径、外径、单边孔环、电镀铜厚

自记: 这个参数是啥?下图区别出过孔的内径、外径、单边孔环、电镀铜厚 嘉立创单双面最小过孔内径0.3mm/外径0.6mm(极限0.56mm),四、六层最小过孔内径0.2mm/外径0.45mm(极限0.40mm),外…

学习day50

自定义指令总结: 一:定义语法: (1)局部指令: new Vue({ directives{指令名,配置对象} }) 或 new Vue({ directives{指令名,回调函数} }) (2)全局对象 Vue.dir…

基于Gym Anytrading 的强化学习简单实例

近年来强化学习(RL)在算法交易领域受到了极大的关注。强化学习算法从经验中学习并基于奖励优化行动使其非常适合交易机器人。在这篇文章,我们将简单介绍如何使用Gym Anytrading环境和GME (GameStop Corp.)交易数据集构建一个基于强化学习的交易机器人。 强化学习是…

【Java从0到1学习】05 Java 数组

1. 数组概述 需求:现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作,这样…

MySQL一些知识

六、MySQL命令参数 七、远程登录 use mysql 八、SQL语句和常见的SQL操作 九、数据库和表的创建及插入 指定字段名称,按照表的字段名称顺序写: 指定字段名称: 字段名称可以不全部指定:

SpringBoot(三)

文章目录 前言一.日志的作用二.日志的使用2.1 自定义日志打印三.日志的级别3.1 日志级别的作用3.2 日志级别的分类和使用 四.⽇志持久化 前言 日志在应用程序中扮演着至关重要的角色,它是软件开发、运维和故障排查中不可或缺的工具。无论是大型企业级应用还是小型个…

node插件的安装、HTTP协议

接口测试与UI测试(功能测试,UI的自动化测试)有什么区别? 1、接口测试更多测试的是客户端与后端之间的交互 2、接口测试也是可以完全的测试产品功能测试场景 UI测试: 1、页面的交互 2、页面的各种提示信息的验证 …

C#栈、List结构的简单搭建

1、栈是一种先进后出的结构&#xff0c;如图&#xff1a; 我们用代码&#xff0c;简单实现一下&#xff1a; public class StackTest<T>{private T[] stack { get; set; }public int length { get; set; }public StackTest(){length 0;stack new T[length];}public vo…

[JVM]String str1 = new String(“yhz“)和 String str2 = “yhz“ 的区别

文章目录 0、前情1、相同之处2、不同之处3、解释前情 0、前情 为什么str1 str2 就返回true&#xff0c;而str1str3 就返回false&#xff1f;先看内存图解释 1、相同之处 String str1new String(“yhz”)和String str2“yhz”&#xff0c;都会先去字符串常量池中查看是否已经存…

Helm KinD kubectl krew Istio急速安装

本篇更新网上许多安装失效的工具&#xff0c;如krew和KinD。 本篇测试使用时间为2023/7/20&#xff0c;基本都为最新版本或最新稳定版本。 前置 Helm 是 Kubernetes 的一个包管理工具&#xff0c;用于简化 Kubernetes 应用的部署和管理。Helm 使用名为 "chart" 的打…

QDialog的两种显示方式

QDialog的两种显示方式 模态显示非模态显示 QDialog不能嵌入到其他窗口中显示&#xff08;无论继承与否&#xff09; 模态显示 d->exec(); 阻塞程序的执行 非模态显示 d->show(); 不阻塞程序

A--玉米大炮--2022河南萌新联赛第(三)场:河南大学

输入 3 3 1 1 2 2 3 3 输出 0 说明 开始时,小蓝控制所有大炮立即发射炮弹,僵王博士受到 666 点伤害,直接被击溃。 示例2 输入 2 20 5 1 5 3 输出 2 说明 开始时,小蓝控制所有大炮立即发射炮弹,僵王博士受到 101010 点伤害, 一秒后一号大炮装填完毕,小蓝控制其攻击僵王…

力扣 -- 152. 乘积最大子数组

一、题目&#xff1a; 题目链接&#xff1a;152. 乘积最大子数组 - 力扣&#xff08;LeetCode&#xff09; 二、解题步骤 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 三、参考代码&#xff1a; class Solut…