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

Transformer基础2:位置编码、attention、normalization、residule block

位置编码

为什么要位置编码:因为self-attention是无向的。而实际上模型需要知道token之间的距离信息。

位置编码的要求:
(1)能够表示token的绝对位置
(2)序列长度不同时,不同序列中token的相对距离要保持一致
(3)预测阶段,可以表示模型在训练阶段没有见过的句子长度

位置编码的迭代经验、找到一个函数符合以下条件:
(1)有界
(2)连续、且不同
(3)不同位置的向量可以通过线性变换得到

最终Transformer的位置编码的性质:
(1)两个位置编码的点积(dot product)仅取决于偏移量 ,也即两个位置编码的点积可以反应出两个位置编码间的距离。
(2)位置编码的点积是无向的

位置编码的学习笔记来源

attention

除以根号dk的原因:
在这里插入图片描述

self attention的学习来源

Normalization

常用的标准化方法有Batch Normalization,Layer Normalization,Group Normalization,Instance Normalization等

ICS(Internal Covariate Shift):前一层的数据分布变化 加大后一层的训练难度。

在BN提出之前,有几种用于解决ICS的常规办法:

(1)采用非饱和激活函数

(2)更小的学习速率

(3)更细致的参数初始化办法

(4)数据白化(whitening):在每一层输入时增加线性变化,使得输入的特征具有相同的均值和方差,从而去掉特征的相关性。

更优雅的解决方案:BN

训练

在这里插入图片描述

BN的缺点无法很好地处理文本数据长度不一的问题。 可能不止是“长短不一”这一个,也可能和数据本身在某一维度分布上的差异性有关(想一下,对不同句子之间的第一个词做BN,求出来的mean和variance几乎是没有意义的)

在图像问题中,LN是指对一整张图片进行标准化处理,即在一张图片所有channel的pixel范围内计算均值和方差。

而在NLP的问题中,LN是指在一个句子的一个token的范围内进行标准化。即 层归一化(Layer Normalization)的对象是同一个样本中一个token的所有维度。

Pre-LN

在残差连接和MHA计算之前进行LN操作。

好处:能和Post-LN达到相同甚至更好的训练结果,同时规避了在训练Post-LN中产生的种种问题
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
学习来源

残差网络

normal的引入 解决了 因为 导数的阶乘导致梯度消失或者梯度爆炸。

因为希望通过增加网络深度,来提高非线性拟合能力、使得每一层学到不同的模式。

而网络深度的增加,产生了网络退化的问题。

所以用残差模块来解决。这么设计的 原因是 尽可能让 深层次的网络不比浅层网络表现弱(保证了更多层的神经网络至少能取到更浅的神经网络的最优解)。 类似牵引绳或者KL散度的意思。

恒等映射:深层网络的结果既能学习到极端情况、又能逼近输入。

在这里插入图片描述

学习来源

相关文章:

  • go语言同一包中的同一变量实现不同平台设置不同的默认值 //go:build 编译语法使用示例
  • taskENTER_CRITICAL()分析
  • 数据可视化:解析其在现代生活中的日益重要地位
  • 6个PPT素材模板网站,免费!
  • wine的使用 ubuntu入门之二十三
  • linux 查看 线程名, 线程数
  • 【C++】开源:RabbitMQ安装与配置使用(SimpleAmqpClient)
  • Python库之Scrapy-Redis的高级用法深度解析
  • 2023职称继续教育--新时代如何培养和造就未来科技创新领军人才
  • linux下can-utils的使用以及can接口的配置(以ubuntu20.04为例)
  • 为啥装了erlang,还报错erl: command not found?
  • STM32 HAL库USART的接收数据方法实现(STM32Cube_FW_F1_V1.8.5)
  • 使用last查看系统登录情况
  • 开源与闭源 AI 模型:发展路径的比较与前瞻
  • 【SAP HANA 33】前端参数多选情况下HANA如何使用IN来匹配?
  • extjs4学习之配置
  • hadoop集群管理系统搭建规划说明
  • JavaScript学习总结——原型
  • Netty源码解析1-Buffer
  • PHP 7 修改了什么呢 -- 2
  • Python_OOP
  • 区块链共识机制优缺点对比都是什么
  • 使用common-codec进行md5加密
  • 一道闭包题引发的思考
  • 一份游戏开发学习路线
  • C# - 为值类型重定义相等性
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #100天计划# 2013年9月29日
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (11)iptables-仅开放指定ip访问指定端口
  • (11)MSP430F5529 定时器B
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (全注解开发)学习Spring-MVC的第三天
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (自适应手机端)行业协会机构网站模板
  • .DFS.
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net经典笔试题
  • .NET连接数据库方式
  • .sh 的运行
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [ C++ ] STL---string类的使用指南
  • [012-1].第12节:Mysql的配置文件的使用
  • [1]-基于图搜索的路径规划基础
  • [100天算法】-二叉树剪枝(day 48)
  • [20180224]expdp query 写法问题.txt
  • [BROADCASTING]tensor的扩散机制
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [BZOJ2208][Jsoi2010]连通数
  • [cb]UIGrid+UIStretch的自适应