当前位置:网站首页>变形金刚Transformer详解
变形金刚Transformer详解
2022-06-29 07:03:00 【思艺妄为】
写了上一篇,就必有这一篇~
1. TRM在做啥?
我们输入一个I love you,输出我爱你,输入一段声音,输出得到你真美。输入长度跟输出长度没有决定性的关系,由机器决定输出的是什么。
2. TRM原理
2.1 TRM模型结构

2.2 Encoder
encoder是由6层独立的layers构成。每层由两个子层,就是上图左边的两个。第一个是一个多头 self-attention结构。第二个是一个简单的基于点的全连接前向网络。
输入b经过self-attention后得到a,借鉴了残差网络的思想使输入跟self-attention的输出相加得到结果在输入至 layar Normalization,得到的输出才是全连接网络层的输入,在经过一个残差连接来连接输出和输入。并且对输出的结构层上做了LayerNorm,得到的输出才是一个block的输出。这个block会重复n次。

2.2.1 Layer Norm
Norm的意思就是在后面跟了一个归一化层。
为什么要使用层归一化:
一是解决梯度消失的问题,二是解决权重矩阵的退化问题,可以更好的解决梯度爆炸,梯度消失在深层网络中的问题,因为逐层进行了归一化,可以使得梯度传导的更稳定。残差路径上传来的向量和Self-Attention计算得到的向量相加后进行Layer-Normalization,即层标准化。Layer Norm对同一个样本同一层的所有神经元进行标准化,使它们满足标准正态分布。LayerNorm的主要思想是:是在每一个样本(一个样本里的不同通道)上计算均值和方差,而不是 BN 那种在批方向计算均值和方差。
2.2.2 BatchNorm
主要思想:在每一层的每一批数据(一个batch里的同一通道)上进行归一化 。Batch Norm则是对Batch内不同样本的同一个神经元所有值进行标准化。
2.2.3 LN和BN的区别
理解下来就是,比如说两个sequence,你是天边最美的云彩和让我把你留下来哈哈,LN是在自己的句子里计算均值和方差,而BN是你和让做均值和方差,所以BN不可,LN更好。
2.2.4 小总结
输入inputs,得到input embedding,然后碰到位置嵌入,相加作为整体的输入,遇到一个多头注意力机制,计算之后,与输入一起经过残差得到一个结果,在经过一个LN得到输出结果,再碰到了一个两层的全连接层,在经过残差,输出结果。
2.3 Decoder
Decoder也是由6层的独立层组成,用了三个子层。用于对encoder的输出做multi-head self attention。具体结构都一样,也是在子层上应用了残差连接,再在子层输出加上一个LayerNorm。但是论文在decoder中的multi-head self attention 做了一个mask修改。目的是为了防止序列之后的位置被用于预测前面的位置信息,造成对模型的信息泄漏。
2.3.1 Autoregressive
Decoder的input从begin开始,得到输出,再由这个输出进行输入得到下一个输入,即每一个输出都是下一次的输入,所以当decoder在产生一个句子的时候,有可能是错误的,因为他看到的是自己的输出。为了停止需要一个END。

2.3.2 masked Self-attention:
之前我们经过Self-attention输出的每一个b是都考虑了整个句子的咨询,但masked Self-attention的b1只能考虑a1的咨询,产生b2考虑了a1,a2的咨询,产生b3的时候考虑了a1,a2,a3的咨询,产生b4可以考虑整个句子的咨询。


2.3.3 Non-autoregressive
一次性输出句子,即输入一整排的begin,输出一整排句子
2.4 Encoder与Decoder之间如何传播

实际运作过程:decoder凭借产生一个q,去encoder抽取咨询做接下来decoder中全连接层的input,然后接下来在产生第二个输入机。

scheduled Sampling:测试的时候给decoder输入一些错误的东西,训练的时候decoder才会输出正确的,才会训练的更好。
2.5 输出
首先经过一次线性变换,然后Softmax得到输出的概率分布,然后通过词典,输出概率最大的对应的单词作为我们的预测输出。

边栏推荐
- PostgreSQL installation: the database cluster initialization failed, stack hbuilder installation
- After crossing, she said that the multiverse really exists
- 马赛克笔记
- Common MySQL errors and solutions summarized painstakingly (I)
- AI deep dive of Huawei cloud
- Stm32 usart+dma usage based on Hal Library
- VSLAM特征之线特征&面特征
- laravel 中 distinct() 的使用方法与去重
- SQL SERVER 2008 发布订阅到SQL Server 2017避坑指南
- Django - installing mysqlclient error: mysqlclient 1.4.0 or newer is required; you have 0.9.3
猜你喜欢

Electric check code configuration

solidity部署和验证代理合约

《动手学深度学习》(一)-- 线性神经网络

SizeBalanceTree

華為雲的AI深潜之旅

MySQL中有哪些约束?(实例验证)

Thread pool operations in cartographer

1284_ Implementation analysis of FreeRTOS task priority acquisition

Soliciting articles and contributions - building a blog environment with a lightweight application server

Mongodb- connect to the database using the mongo/mongosh command line
随机推荐
笔记本电脑快速连接手机热点的方法
阿里的211是指什么?
Hands on deep learning (I) -- linear neural network
MySQL system keyword summary (official website)
About the many to many cascading insertion of sqlsugar (the ID of the collection attribute cannot be obtained, so the intermediate table cannot be maintained)
服装产业发展趋势|供应链|智能制造
C#Mqtt订阅消息
ROS2中的行为树 BehaviorTree
Robotframework learning notes: introduction to robot framework and browserlibrary (playwright)
js实现图片懒加载的一个详细方案(引入即可使用)
Program debugging - debug/release version
基础语法 - 位运算
C#导入csv到mysql数据库中
MySQL系统关键字汇总(官网)
Flutter 文件读写-path_provider
SQL Server enable CDC
Why are two SQL statements that execute very fast, especially after the Union
Hook introduction
華為雲的AI深潜之旅
【kerberos】kerberos 认证浅析