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

租门面做网站如何搭建网站教程

租门面做网站,如何搭建网站教程,wordpress与thinkphp,汉中建设工程目录 1 为什么使用 Transformer#xff1f;2 Attention 注意力机制2.1 什么是 Q、K、V 矩阵#xff1f;2.2 Attention Value 计算流程2.3 Self-Attention 自注意力机制2.3 Multi-Head Attention 多头注意力机制 3 Transformer 模型架构3.1 Positional Encoding 位置编… 目录 1 为什么使用 Transformer2 Attention 注意力机制2.1 什么是 Q、K、V 矩阵2.2 Attention Value 计算流程2.3 Self-Attention 自注意力机制2.3 Multi-Head Attention 多头注意力机制 3 Transformer 模型架构3.1 Positional Encoding 位置编码3.2 模型训练过程3.3 Masked 因果遮罩 4 Transformer 的细节Add Norm 前言 本博客仅为初学者提供一个学习思路如有错误请大佬指出进实验室后的第一次学习汇报就是 Transformer后来研究方向变了就渐渐忘了。不巧最近夏令营面试又被面到了看来得好好复习一下。 参考博客 史上最小白之 Transformer 详解Attention 注意力机制 | 鲁老师 1 为什么使用 Transformer Transformer 可以克服 RNN 存在的问题 并行化差 h t h_t ht​ 依赖 h t − 1 h_{t-1} ht−1​长距离依赖问题梯度消失、梯度爆炸如 d L d W d L d y ∗ d y d W \frac{\mathrm{d} L}{\mathrm{d} W} \frac{\mathrm{d} L}{\mathrm{d} y} * \frac{\mathrm{d} y}{\mathrm{d} W} dWdL​dydL​∗dWdy​无法处理变长的输入序列 面试官既然有了 RNN为什么还需要 LSTM既然有了 RNN为什么还需要 Transformer 2 Attention 注意力机制 在介绍 Transformer 的整体架构如下图所示之前我们先来介绍它所采用的 Attention 注意力机制后文简称 Attention 机制。要知道原论文的标题就是《Attention Is All You Need》可见 Attention 机制的地位之高。 Transformer 对 Attention 机制的描述如下图所示 你可能会好奇上图中的 Q , K , V Q, K, V Q,K,V 矩阵都是什么为什么要用 Q , K , V Q, K, V Q,K,V 去命名接下来我们将进行介绍。 对 Attention 机制的介绍会比较长但个人感觉其中的原理还蛮有意思的。 2.1 什么是 Q、K、V 矩阵 Q , K , V Q, K, V Q,K,V 矩阵的全称 Q —— Query 查询K —— Key 键V —— Value 值 是不是一股子查字典的味道扑鼻而来我们可以通过一个搜索引擎的例子来加深理解 假设我们想要在 Google 学术中搜索所有 Attention 相关的论文那么我们的 q u e r y \mathrm{query} query 就应该是 “attention”。搜索引擎会立即根据标题和查询的相似度来给出搜索结果这里的标题可以理解为关键字 k e y 1 , k e y 2 , k e y 3 \mathrm{key_1, key_2, key_3} key1​,key2​,key3​。也就是说搜索引擎根据 q u e r y \mathrm{query} query 与各个 k e y \mathrm{key} key 的相似度的高低按序给出若干搜索结果 v a l u e 1 , v a l u e 2 , v a l u e 3 \mathrm{value_1, value_2, value_3} value1​,value2​,value3​。最终的搜索结果可以看作 v a l u e 1 , v a l u e 2 , v a l u e 3 \mathrm{value_1, value_2, value_3} value1​,value2​,value3​ 的按权求和其中的权重就是 q u e r y \mathrm{query} query 与各个 k e y \mathrm{key} key 的相似程度即按不同的比例从各个论文中都吸取了一些内容。 2.2 Attention Value 计算流程 在上一节中我们已经用搜索引擎的例子讲解了 Q , K , V Q, K, V Q,K,V 矩阵的含义。在本节中我们将继续介绍 Attention 机制中的 Q , K , V Q, K, V Q,K,V 矩阵是如何被使用的。详细的计算流程如下图所示 阶段 1通过 F ( Q , K ) F(Q,K) F(Q,K) 公式来计算 Q Q Q 和各个 K e y Key Key 的相似度得到分数 s 1 , s 2 , s 3 , s 4 s_1,s_2,s_3,s_4 s1​,s2​,s3​,s4​。针对 F ( Q , K ) F(Q,K) F(Q,K) 的具体形式一般采用的是向量点乘的方式。这是源于向量点乘的几何意义即向量点乘的结果越大表明两个向量越相似。 阶段 2使用类 S o f t M a x ( ) \mathrm{SoftMax()} SoftMax() 函数对分数 s 1 , s 2 , s 3 , s 4 s_1,s_2,s_3,s_4 s1​,s2​,s3​,s4​ 进行归一化 a i S o f t M a x ( s i ) e a i ∑ j 1 n e a j a_iSoftMax(s_i)\frac{e^{a_i}}{\textstyle \sum_{j1}^{n}e^{a_j}} ai​SoftMax(si​)∑j1n​eaj​eai​​ 得到注意力分数 a 1 , a 2 , a 3 , a 4 a_1,a_2,a_3,a_4 a1​,a2​,a3​,a4​。个人理解就是把分数 s s s 的值缩放到 [ 0 , 1 ] [0, 1] [0,1] 区间内并使得 ∑ i a i 1 \textstyle \sum_{i}^{} a_i1 ∑i​ai​1。 阶段 3令注意力分数 a 1 , a 2 , a 3 , a 4 a_1,a_2,a_3,a_4 a1​,a2​,a3​,a4​ 为权重对各个 V a l u e Value Value 进行加权求和得到最终的 Attention Value。 图中的 s 代表 scorea 代表 attention score类 S o f t M a x ( ) \mathrm{SoftMax()} SoftMax() 是因为 Transformer 并不是直接使用的原始 S o f t M a x ( ) \mathrm{SoftMax()} SoftMax() 函数后文会介绍这图的配色是真丑啊我无能为力 2.3 Self-Attention 自注意力机制 实际上在 Transformer 的编码器中采用的是 Self-Attention 自注意力机制后文简称 Self-Attention 机制。 区别于上一节介绍的 Attention 机制Self-Attention 机制进一步要求 Q K V QKV QKV。也就是说针对一个矩阵让它计算自己与自己的相似度并且对自己的值进行加权求和。这就是 “自注意力” 一词的由来。 假设我们需要处理 “never give up” 这个短语那么先要通过词嵌入将字符串转换为词向量矩阵 X X X否则计算机无法处理然后再令 Q K V X QKVX QKVX 即可。之后按照上一节介绍的计算流程进行处理如下图所示 由于 Transformer 最开始做的是机器翻译属于 NLP 领域所以本文举的例子都是字符串。 现在让我们回过头来看 Transformer 原文中的图 其中 Q , K , V Q,K,V Q,K,V 矩阵的含义已知 M a t M u l \mathrm{MatMul} MatMul 无非就是矩阵乘法 S o f t M a x \mathrm{SoftMax} SoftMax 的含义已知。 注意一 实际操作中 Q , K , V Q,K,V Q,K,V 并不直接等于 X X X而是 Q X W Q , K X W K , V X W V QXW^Q, KXW^K, VXW^V QXWQ,KXWK,VXWV 其中 W Q , W K , W V W^Q, W^K, W^V WQ,WK,WV 是可以训练的参数矩阵。Transformer 之所以不直接使用 X X X而是使用通过矩阵乘法生成的三个矩阵是因为使用三个可训练的参数矩阵可以增强模型的拟合能力。 上图中没有画出也没有使用该操作后文的 Multi-Head Attention 多头注意力机制才画了并使用了该操作。 注意二 上图中的 S c a l e \mathrm{Scale} Scale 缩放操作是指 S o f t M a x ( Q K T d k ) V SoftMax(\frac{QK^T}{\sqrt{d_k}})V SoftMax(dk​ ​QKT​)V 其中 d k d_k dk​ 是指 K K K 矩阵的维度。由于 d k d_k dk​ 越大 Q K T QK^T QKT 运算结果的方差越大因此通过 S c a l e \mathrm{Scale} Scale 缩放操作让方差变小从而使训练时的梯度更新更稳定。 上图中的 M a s k ( o p t . ) \mathrm{Mask(opt.)} Mask(opt.) 操作是指因果遮罩我们后面再讲。标明 ( o p t . ) \mathrm{(opt.)} (opt.) 是因为在编码器中不使用该操作在解码器中要使用该操作所以这个操作是可选的而非必须的。 2.3 Multi-Head Attention 多头注意力机制 根据前文的介绍我们已经一步步地从 Attention 机制走到了 Self-Attention 机制但这还不是 Transformer 实际采用的注意力机制。Transformer 在 Self-Attention 机制的基础上进一步得到了 Multi-Head Attention 多头注意力机制后文简称 Multi-Head Attention 机制。如下图所示 其实这个图一点也不复杂紫色部分的 Scaled Dot-Product Attention 就是我们上一节讲的 Self-Attention 机制而灰色部分的 Linear 就是我们上一节讲的注意一即为 Q , K , V Q,K,V Q,K,V 各自乘上一个参数矩阵。区别在于在 Multi-Head Attention 机制中 Q , K , V Q,K,V Q,K,V 各自将乘上多个参数矩阵。我们接下来将介绍这样做的好处。 多头是什么 我们假设 head 为 2 即 h 2 h2 h2也就是把原来一个参数矩阵 W W W劈开为两个参数矩阵 W 1 , W 2 W_1, W_2 W1​,W2​如下图所示 其中词向量矩阵的维度为 3 × d m o d e l 3\times d_{model} 3×dmodel​两个参数矩阵合起来的维度为 d m o d e l × d m o d e l d_{model}\times d_{model} dmodel​×dmodel​单个参数矩阵的维度为 d m o d e l × d q d_{model}\times d_{q} dmodel​×dq​其中 h × d q d m o d e l h\times d_{q} d_{model} h×dq​dmodel​如右上角虚线框所示注意由于我这里拿的是 W Q W^Q WQ 举例因此维度写的是 d q d_{q} dq​。可以看出Multi-Head Attention 机制就是把 1 1 1 个大小为 d m o d e l × d m o d e l d_{model}\times d_{model} dmodel​×dmodel​ 的参数矩阵劈开为了 h h h 个大小为 d m o d e l × d q d_{model}\times d_{q} dmodel​×dq​ 的参数矩阵。 针对 X X X 和 W 1 , W 2 W_1,W_2 W1​,W2​ 之间的矩阵乘法根据矩阵乘法的原理可知 X X X 分别和 W 1 , W 2 W_1,W_2 W1​,W2​ 相乘与 X X X 和 W 1 W 2 W_1W_2 W1​W2​ 相乘的结果是一样的。因此为了简化操作我们可以先不将 W 1 W_1 W1​ 和 W 2 W_2 W2​ 劈开上图也体现了这一点。 下图展示了上图中 S o f t M a x \mathrm{SoftMax} SoftMax 的具体过程 在 S o f t M a x \mathrm{SoftMax} SoftMax 这一步我们必须将 Q 1 Q 2 Q_1Q_2 Q1​Q2​、 K 1 K 2 K_1K_2 K1​K2​ 劈开然后让 Q 1 Q_1 Q1​ 去乘 K 1 T K^T_1 K1T​让 Q 2 Q_2 Q2​ 去乘 K 2 T K^T_2 K2T​。相应地得到 h 2 h2 h2 个权值矩阵。最后再拿 h 2 h2 h2 个权值矩阵分别去乘 V 1 V_1 V1​ 和 V 2 V_2 V2​ 矩阵得到最终的 Z 1 Z_1 Z1​ 和 Z 2 Z_2 Z2​ 矩阵。 个人思考只让 Q 1 Q_1 Q1​ 去乘 K 1 T K^T_1 K1T​只让 Q 2 Q_2 Q2​ 去乘 K 2 T K^T_2 K2T​是否属于一种局域而非全局的自注意力 为什么使用多头 如果 h 1 h 1 h1那么最终可能得到的就是一个各个位置只集中于自身位置的注意力权 矩阵如果 h 2 h 2 h2那么就还可能得到另外一个注意力权重稍微分配合理的权值矩阵 h 3 h 3 h3 同理。因此作者提出多头这一做法用于克服「模型在对当前位置的信息进行编码时过度将注意力集中于自身的位置」的问题。 至此关于注意力机制的介绍结束 3 Transformer 模型架构 我们在前文已经介绍完了 Transformer 的重头戏部分下面我们从左到右、从下到上来介绍 Transformer 的整体架构 3.1 Positional Encoding 位置编码 为什么使用位置编码 ① 对于任何一门语言单词在句子中的位置以及排列顺序是非常重要的它们不仅是一个句子的语法结构的组成部分更是表达语义的重要概念。一个单词在句子中的位置或者排列顺序不同可能会导致整个句子的意思发生偏差。② Transformer 抛弃了 RNN、CNN 作为序列学习的基本模型而是完全采用 Attention 机制取而代之从而导致词序信息丢失模型没有办法知道每个单词在句子中的相对位置信息和绝对位置信息。 RNN 自带循环结构因此天然能够捕捉词序信息。 如何进行位置编码 其实就是让词向量 位置编码位置编码的计算公式如下 P E ( p o s , 2 i ) sin ⁡ ( p o s 1000 0 2 i / d m o d e l ) P E ( p o s , 2 i 1 ) cos ⁡ ( p o s 1000 0 2 i / d m o d e l ) \begin{alignat}{2} PE(pos,2i) \sin (\frac{pos}{10000^{2i/d_{model}}}) \\ PE(pos,2i1) \cos (\frac{pos}{10000^{2i/d_{model}}}) \end{alignat} PE(pos,2i)PE(pos,2i1)​sin(100002i/dmodel​pos​)cos(100002i/dmodel​pos​)​​ 其中 p o s pos pos 表示单词在句子中的绝对位置比如“有” 在 “我有一只猫” 中的 p o s pos pos 为 1 1 1假设从 0 0 0 开始计数。 d m o d e l d_{model} dmodel​ 表示每个词向量的维度 i i i 表示一个词向量中的第 i i i 维而 2 i 2i 2i 表示这是一个偶数维度 2 i 1 2i1 2i1 表示这是一个奇数维度。也就是说偶数维度根据公式 (1) 来计算位置编码奇数维度根据公式 (2) 来计算位置编码。 Q为什么是让位置编码和词向量相加而不是拼接 A相加或拼接都是可以的。只是因为词向量本身已经有 512 512 512 维了如果再拼接一个 512 512 512 维的位置向量变为 1024 1024 1024 维会导致训练速度下降。 3.2 模型训练过程 Transformer 的训练过程如下图所示 对于 “我” 字由于上一轮没有预测结果因此模型纯靠输出的编码矩阵去预测 “我” 字的翻译结果 “I”对于 “有” 字由于上一轮的预测结果是 “I”因此模型依靠输出的编码矩阵和 “I” 去预测 “有” 字的翻译结果 “have”以此类推。 但在实际的训练过程中通常采用了一种名为 t e a c h e r - f o r c i n g \mathrm{teacher\text{-}forcing} teacher-forcing 的训练方式。具体是指不使用上一次的输出作为下一次的输入而是直接使用上一次输出对应的标准答案ground truth作为下一次的输入如下图所示 这又引出了一个新问题当我们翻译到 “有” 的时候我们应该只能知道上一轮的翻译结果 “I”而不应该知道后面的翻译结果 “have a cat”。因此 Transformer 采用了因果遮罩机制对解码器的输入矩阵进行了处理。 个人理解你可以把这个翻译过程理解为同声传译只要讲话人不说出下一个字我们就不知道该如何翻译。 3.3 Masked 因果遮罩 解码器中的 Masked Multi-Head Attention 用的就是因果遮罩。 这是为了让前面位置的信息无法关注到后面位置的信息比如翻译 “我” 的时候无法关注到 “有一只猫” 的翻译结果 “have a cat”但是它能看到自己的翻译结果 “I”翻译 “有” 的时候无法关注到 “一只猫” 的翻译结果 “a cat”但是它能看到前面的翻译结果以及自己的翻译结果 “I have”。具体操作如下图所示 其中让 Q K T QK^T QKT 右上角的元素为 − ∞ -\infty −∞经过 S o f t M a x \mathrm{SoftMax} SoftMax 后变为 0 0 0即权重为 0 0 0从而不会被关注到。 4 Transformer 的细节 Add Norm 两次面试都有被问到这个问题。 什么是 Add? 下图中蓝色虚线指向的就是 A d d \mathrm{Add} Add 操作 也就是在 Multi-Head Attention 的输出 Z Z Z 的基础上加上原始输入 X X X X Z X M u l t i - H e a d A t t e n t i o n ( X ) XZX\mathrm{Multi\text{-} Head\ Attention}(X) XZXMulti-Head Attention(X) 简单理解为了防止注意力机制让模型学得更烂了所以还是把原始输入也带上吧 为什么使用 Add 深度神经网络在训练过程中可能出现退化现象。退化指的是随着网络层数的增加损失函数的值先减小后增大导致网络性能不再提升甚至下降。这种现象发生的原因在于增加的层数并没有有效地增强网络的表达能力反而可能引入了不必要的复杂性。 考虑一个神经网络其实际最佳层数可能是 18 18 18 层。然而我们可能基于理论假设认为更深层的网络会更好因此可能会设计一个 32 32 32 层的网络。在这样的网络中后 14 14 14 层实际上并不增加任何有用的表达能力反而可能干扰到网络的性能。为了避免这种情况我们需要确保这额外的 14 14 14 层能够实现恒等映射 F ( X ) X F(X)X F(X)X 即其输出恰好等于输入。然而神经网络的参数是通过训练获得的而确保这些参数能够精确地实现 F ( X ) X F(X)X F(X)X 的恒等映射是极具挑战性的。为了解决这一问题大神们提出了残差神经网络 ResNet 以克服神经网络退化的挑战。 说来 ResNet 也是一个很经典的网络了但我居然还没有去学 什么是 Norm 神经网络训练前通常会对输入数据进行归一化处理这一步骤旨在实现两个目标 一是提升训练速度二是增强训练过程的稳定性。
http://www.tj-hxxt.cn/news/137323.html

相关文章:

  • 湛江网站建设的软件如何设置网站的默认页
  • qq 互联网站开发代码吃什么补肾最快最好
  • 长沙官网seo技术厂家seo网络培训学校
  • 查询域名的网站做网站销售会问哪些问题
  • 昆山网站建设哪家好网站开发验收单
  • 沈阳个人做网站山东济南市网站建设
  • win7系统可以做网站吗收录优美图片手机版
  • 阿里自助建站平台软件app开发公司哪个好
  • 做网站用什么主题网络构建是什么
  • 美容院网站制作企业做网站的多吗
  • 网站开发出来有后台么提高分辨率网站
  • 佛山企业网站建设教程平面设计包括哪些内容
  • 大连网站建设设计公司做a图片视频在线观看网站
  • 如何免费创建网站平台汕头市网站建设
  • 免费制作微网站镇江市城市建设投资公司官方网站
  • 自助网站建设哪家好删除百度收录的网站
  • 苏州电商网站开发asp.net 网站 相册
  • 网站开发完以后交付源代码建网站的好处
  • 大型网站的设计权威的锦州网站建设
  • 网站系统制作教程小程序做网站
  • 大麦网网站建设的功能定位网页美工设计网课
  • 公司网站现状win10 iis wordpress
  • 网站建设期末论文苏州做网站怎么样
  • 网站无搜索结果页面怎么做中国建设工程造价协会网站
  • 怎么做个手机版的网站网页怎么做才美观
  • 长春网络建站企业网站 源码 开源
  • 化妆品网站后台泰安外贸网站建设公司
  • 浙江网站建设有哪些seo发帖软件
  • 有个网站叫设计什么网站建设过程中要怎么打开速度
  • 国内工业设计网站台州网站开发