transformers理论解释
B 站视频讲解
Transformer 是谷歌大脑在 2017 年底发表的论文 attention is all you need 中所提出的 seq2seq 模型。现在已经取得了大范围的应用和扩展,而 BERT 就是从 Transformer 中衍生出来的预训练语言模型
这篇文章分为以下几个部分
- Transformer 直观认识
- Positional Encoding
- Self Attention Mechanism
- 残差连接和 Layer Normalization
- Transformer Encoder 整体结构
- Transformer Decoder 整体结构
- 总结
- 参考文章
0. Transformer 直观认识
Transformer 和 LSTM 的最大区别,就是 LSTM 的训练是迭代的、串行的,必须要等当前字处理完,才可以处理下一个字。而 Transformer 的训练时并行的,即所有字是同时训练的,这样就大大增加了计算效率。Transformer 使用了位置嵌入 (Positional Encoding) 来理解语言的顺序,使用自注意力机制(Self Attention Mechanism)和全连接层进行计算,这些后面会讲到
Transformer 模型主要分为两大部分,分别是 Encoder 和 Decoder。Encoder 负责把输入(语言序列)隐射成隐藏层(下图中第 2 步用九宫格代表的部分),然后解码器再把隐藏层映射为自然语言序列。例如下图机器翻译的例子
本篇文章大部分内容在于解释 Encoder 部分,即把自然语言序列映射为隐藏层的数学表达的过程。理解了 Encoder 的结构,再理解 Decoder 就很简单了
上图为 Transformer Encoder Block 结构图,注意:下面的内容标题编号分别对应着图中 1,2,3,4 个方框的序号
1. Positional Encoding
由于 Transformer 模型没有循环神经网络的迭代操作, 所以我们必须提供每个字的位置信息给 Transformer,这样它才能识别出语言中的顺序关系
现在定义一个位置嵌入的概念,也就是 Positional Encoding,位置嵌入的维度为[max_sequence_length, embedding_dimension]
, 位置嵌入的维度与词向量的维度是相同的,都是embedding_dimension
。max_sequence_length
属于超参数,指的是限定每个句子最长由多少个词构成
注意,我们一般以字为单位训练 Transformer 模型。首先初始化字编码的大小为[vocab_size, embedding_dimension]
,vocab_size
为字库中所有字的数量,embedding_dimension
为字向量的维度,对应到 PyTorch 中,其实就是nn.Embedding(vocab_size, embedding_dimension)
论文中使用了 sin 和 cos 函数的线性变换来提供给模型位置信息:
PE(pos,2i)=sin(pos/100002i/dmodel)PE(pos,2i+1)=cos(pos/100002i/dmodel) 序号增大,位置嵌入函数的周期变化越来越平缓
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import math
相关文章:
- XLNET原理详解
- 只想安安静静的做个程序员
- python写入csv文件的几种方法
- Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch
- transforms预训练模型 (模块创始团队网址)
- Pytorch-基于Transformer的情感分类
- 从源码分析DEARGUI之添加字体
- add_table和 add_column
- add_combo
- matplotlib 中将图直接从buffer中变为PIL 再到numpy
- 魂力真的存在那么该如何提高魂力呢
- 安装librosa遇到LLVM问题原因是numba问题
- 为什么有人会觉得灵魂无处安放
- 今天且明白父母为什么生死度外的让孩子们读书
- 怎样高级文明的生活
- 从源码分析DEARGUI之add_drag_float和4
- 从源码分析DEARGUI之add_color_int和4
- 从源码分析DEARGUI之add_drawing
- 从源码分析DEARGUI之add_input_float和4
- 从源码分析DEARGUI之add_input_text
- 从源码分析DEARGUI之add_label_text
- 从源码分析DEARGUI之add_listbox
- 从源码分析DEARGUI之add_menu
- 从源码分析DEARGUI之add_menu_items
- 从源码分析DEARGUI之add_plot和add_line_series
- 从源码分析DEARGUI之add_progress_bar
- 从源码分析DEARGUI之add_radio_button
- 从源码分析DEARGUI之add_plot和add_scatter_series
- 从源码分析DEARGUI之add_selectable
- 17种transformers
transformers理论解释相关推荐
- 干货 | 顾险峰:对抗生成网络的几何理论解释(附视频PPT)
在近日举办的清华大数据"技术·前沿"系列讲座中,来自纽约州立大学计算机系终身教授,哈佛大学数学科学与应用中心兼职教授顾险峰老师做了主题为"对抗生成网络的几何理论解释&qu ...
- 深度学习 | GAN模式崩溃的理论解释
来源:老顾谈几何 本文约4040字,建议阅读7分钟. 本文与你讨论蒙日-安培方程正则性理论关于GAN模型中模式崩溃(Mode Collapse)的解释. 春节前夕,北美遭遇极端天气,在酷寒中笔者来到哈 ...
- 较真的来了!这篇【硬核论文】为何恺明新作MAE提供了一种理论解释和数学证明...
关注公众号,发现CV技术之美 昨天,arXiv上出现了一篇非常硬核的论文"How to Understand Masked Autoencoder".该论文为何恺明的最新一作论文& ...
- DAY-20 GAN模式崩溃的理论解释
DAY-20 GAN模式崩溃的理论解释 原文链接: https://bbs.cvmart.net/articles/283 模式崩溃(mode collapse) 给定数据集合,我们用编码映射将其映入 ...
- Pca,Kpca,TSNE降维非线性数据的效果展示与理论解释
Pca,Kpca,TSNE降维非线性数据的效果展示与理论解释 前言 一:几类降维技术的介绍 二:主要介绍Kpca的实现步骤 三:实验结果 四:总结 前言 本文主要介绍运用机器学习中常见的降维技术对数据 ...
- 直播 | 顾险峰教授讲座:对抗生成网络的几何理论解释
深度学习中的对抗生成网络GAN是复杂分布上无监督学习最具前景的方法之一.虽然在工程上对抗生成网络取得巨大成功,在理论上对于GAN的理解依然肤浅. 本期清华大数据"技术·前沿"系列讲 ...
- 报名 | 顾险峰教授讲座:对抗生成网络的几何理论解释
深度学习中的对抗生成网络GAN是复杂分布上无监督学习最具前景的方法之一.虽然在工程上对抗生成网络取得巨大成功,在理论上对于GAN的理解依然肤浅. 本期清华大数据"技术·前沿"系列讲 ...
- 排队理论解释TCP/IP网络拥塞是如何影响TCP的RTT的波动
部门团建,大家都去长隆了,也有去澳门广西的...我去了梦里...本来我也报了名的,想单独带着女儿独处两天,不光为了培养跟女儿的感情,也是想让老婆歇两天...只可惜女儿最近生病,去不了了,六一儿童节的表 ...
- 折射率的经典电磁学理论解释
光的吸收与色散等特征是在干涉.衍射.直线传播之后的又一重要光学现象.而这一切都起源于折射率这个熟悉又陌生的概念.对于折射率的起源,在这里,我们用经典的电磁学理论进行解释. 首先我们要明确的是, ...
最新文章
- JavaScript标准Selection操作
- 12306被喷谁受益?带着正能量重新设计12306防黄牛购票机制
- KillTimer析构函数
- Dijkstra算法优先队列实现与Bellman_Ford队列实现的理解
- 支付,造就金融科技生态契机——保险科技生态建设...
- 利用VS2010进行SQL Server服务器和本地的数据融合
- pymysql封装总结
- plsqlDev.exe启动时无监听问题
- python数据挖掘的基本流程有哪些?
- Topaz Mask AI for mac(人工智能AI抠图软件) 最新版
- 事业单位计算机类岗位考试试题,国家机关(事业单位)计算机岗位考试试题
- 微信小程序腾讯服务器地址要购买吗,微信小程序JavaScript SDK
- Axure 中继器表格背景颜色交替不成功
- 智能安全帽值得买的十大品牌,如何挑选才能不翻车?
- Linux 手动修改屏幕分辨率
- 技术科普丨4Cell1感光芯片的应用
- 大数据分析-第二章 大数据平台
- vue指令模式 添加埋点
- Android开发之漫漫长途 XII——Fragment详解
- react map循环生成的button_【第1945期】彻底搞懂React源码调度原理(Concurrent模式)...
热门文章
- java中的string函数_java中string.trim()函数的作用实例及源码
- sql移动加权计算利润_一文搞懂股票指数的4种加权方式
- php iis mysql windows2003,Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程 | 系统运维...
- xilinx sg dma 注意事项
- html5圣诞贺卡,2016圣诞节手工贺卡图片大全
- mysql 缓存怎么设置_mysql中缓存如何设置
- sftp进入指定目录_CentOS7服务搭建----搭建SFTP(安全文件传送协议)服务器
- matlab 句柄图像尝试
- vivado中ILA核的使用
- 【 Verilog HDL 】函数(function)与任务(task)简单介绍