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

展览馆网站建设信息化系统的应用场景

展览馆网站建设,信息化系统的应用场景,海关申报网站怎么做,一站式服务包括哪些内容学习的博客#xff08;在此致谢#xff09;#xff1a; 初识CV - Transformer模型详解#xff08;图解最完整版#xff09; 1 整体结构 Transformer由Encoder和Decoder组成#xff0c;分别包含6个block。 Transformer的工作流程大体如下#xff1a; 获取每个单词的em…学习的博客在此致谢 初识CV - Transformer模型详解图解最完整版 1 整体结构 Transformer由Encoder和Decoder组成分别包含6个block。 Transformer的工作流程大体如下 获取每个单词的embedding vector X X X X X X由词嵌入(word embedding)和位置编码(Positional Encoding)得到。将得到的单词 X X X传入Encoder中经过6个Encoder block后可以得到句子所有单词的编码信息矩阵 C C C。单词向量矩阵可以用 X n × d X_{n\times d} Xn×d​表示其中 n n n为单词数 d d d为向量维度(论文中为512)。每个Encoder block输出的矩阵维度与输入完全一致。将 C C C传递到Decoder中Decoder会根据翻译过的单词 1 , ⋯ , i 1,\cdots,i 1,⋯,i翻译单词 i 1 i1 i1。翻译 i 1 i1 i1时需要用mask盖住 i 2 , ⋯ , n i2,\cdots,n i2,⋯,n。 2 Transformer的输入 X X X由词嵌入(word embedding)和位置编码(Positional Encoding)得到。 2.1 词嵌入 输入的是一句话比如“我 爱 自然语言处理”每个词会被映射成一个向量叫词嵌入(word embedding)。 “我” → [0.2, 0.5, ..., -0.1] (一个 d_model 维的向量) “爱” → [...] “自然语言处理” → [...]2.2 位置编码 Transformer除了词嵌入还需要位置编码(Positional Encoding, PE) 来表示单词在句子中出现的位置。由于Transformer不采用RNN结构而是使用全局信息不能利用单词的顺序信息而这部分信息对于NLP来说非常重要。 所以Transformer中使用位置编码来保存单词在序列中的相对/绝对位置。 Transformer中计算PE的公式如下 PE ( pos , 2 i ) sin ⁡ ( pos / 10000 2 i / d ) \text{PE}_{(\text{pos},2i)}\sin(\text{pos}/10000^{2i/d}) PE(pos,2i)​sin(pos/100002i/d) PE ( pos , 2 i 1 ) cos ⁡ ( pos / 10000 2 i / d ) \text{PE}_{(\text{pos},2i1)}\cos(\text{pos}/10000^{2i/d}) PE(pos,2i1)​cos(pos/100002i/d) 其中 pos \text{pos} pos表示单词在句子中的位置 d d d表示PE的维度(与词嵌入的维度相同)。 对于每个位置 pos \text{pos} pos我们计算 d d d维向量其中一半维度是 sin ⁡ \sin sin另一半是 cos ⁡ \cos cos。所以每个位置的PE也是长度为 d d d的向量。 2.3 Transformer的输入 有了词嵌入 input_embedding \text{input\_embedding} input_embedding和位置编码 positional_encoding \text{positional\_encoding} positional_encoding即 PE \text{PE} PE我们有 X input_embedding positional_encoding X\text{input\_embedding}\text{positional\_encoding} Xinput_embeddingpositional_encoding 为什么是相加而不是连接(concat) 加法不增加维度后面的模型结构无需改动。PE被视为微调词语的表示可以看作是在词向量的基础上“注入一点位置感知”。比如“I saw a cat.” 中的 “cat” 在句首或句尾含义不同但你不需要让两个“cat”产生完全不同的表示只需加一点“位置信息”做微调。Attention中的缩放点积更适合加法式表示。原论文实验验证加法的效果已经很好因此选择加法方案。 3 Self-Attention 自注意力机制 上图为论文中Transformer的内部结构图左侧为Encoder block右侧为Decoder block。红色圈中的部分为Multi-Head Attention由多个Self-Attention组成。 还可以发现Encoder block包含一个Multi-Head Attention而Decoder block包含两个其中一个用到了mask。 还可以发现Multi-Head Attention上方还包括一个Add Norm层Add表示残差链接(Redidual Connection)用于防止网络退化Norm表示Layer Normalization用于对每一层的激活值进行归一化。 3.1 Self-Attention结构 上图为Self-Attention结构计算时需要用到矩阵Q(Query, 查询), K(Key, 键值), V(Value, 值)。Self-Attention接收的是输入(第2章中的矩阵 X X X) 或者上一个Encoder block的输出。 而Q,K,V正是通过Self-Attention的输入进行线性变换得到的。 3.2 Q, K, V 已知 X ∈ R n × d X\in\mathbb{R}^{n\times d} X∈Rn×d。定义三个参数矩阵 W Q ∈ R d × d Q W_Q\in\mathbb{R}^{d\times d_Q} WQ​∈Rd×dQ​ W K ∈ R d × d K W_K\in\mathbb{R}^{d\times d_K} WK​∈Rd×dK​ W V ∈ R d × d V W_V\in\mathbb{R}^{d\times d_V} WV​∈Rd×dV​。对于每个输入 X X X Q X W Q , K X W K , V X W V QXW_Q,\ KXW_K,\ VXW_V QXWQ​, KXWK​, VXWV​ 得到的矩阵 Q ∈ R n × d Q Q\in\mathbb{R}^{n\times d_Q} Q∈Rn×dQ​ K ∈ R n × d K K\in\mathbb{R}^{n\times d_K} K∈Rn×dK​ V ∈ R n × d V V\in\mathbb{R}^{n\times d_V} V∈Rn×dV​。通常 d Q , d K , d V d_Q,d_K,d_V dQ​,dK​,dV​是相同的。 在注意力机制中每个词会 用 Q Q Q询问别的词的 K K K来判断该关注谁用 V V V提供实际信息如果我关注你要拿到你的什么内容。 注意力公式如下 Attention ( Q , K , V ) softmax ( Q K ⊤ d K ) V \text{Attention}(Q,K,V)\text{softmax}(\frac{QK^\top}{\sqrt{d_K}})V Attention(Q,K,V)softmax(dK​ ​QK⊤​)V 最后输出的矩阵 Z ∈ R n × d V Z\in\mathbb{R}^{n\times d_V} Z∈Rn×dV​。 3.3 Multi-head Attention 假设 X X X经过QKV计算后得到 Z Z Z。上图可以看出Multi-head Attention包含多个Self-Attention层。首先将输入 X X X分别传递到 h h h个不同的Self-Attention中计算得到 h h h个输出矩阵 Z [ Z 1 , ⋯ , Z h ] Z[Z_1,\cdots,Z_h] Z[Z1​,⋯,Zh​]。Multi-head Attention将其连接(concat)起来得到 Z ′ ∈ R n × ( h ⋅ d K ) Z\in\mathbb{R}^{n\times (h\cdot d_K)} Z′∈Rn×(h⋅dK​)。 最后再经过一层 R ( h ⋅ d K ) × d \mathbb{R}^{(h\cdot d_K)\times d} R(h⋅dK​)×d的线性层得到最终的输出 Z ∈ R n × d Z\in\mathbb{R}^{n\times d} Z∈Rn×d和输入 X X X的维度相同。 4 Encoder 上图红色部分是Transformer的Encoder block结构可以看到是由Multi-Head Attention, Add Norm, Feed Forward, Add Norm组成的。刚刚已经了解了Multi-Head Attention的计算过程现在了解一下Add Norm和Feed Forward部分。 4.1 Add Norm Add Norm层由Add和Norm两部分组成其计算公式如下 LayerNorm ( X MultiHeadAttention ( X ) ) \text{LayerNorm}(X\text{MultiHeadAttention}(X)) LayerNorm(XMultiHeadAttention(X)) LayerNorm ( X FeedForward ( X ) ) \text{LayerNorm}(X\text{FeedForward}(X)) LayerNorm(XFeedForward(X)) 其中 X X X表示Multi-Head Attention或者Feed Forward的输入MultiHeadAttention(X)和 FeedForward(X) 表示输出(输出与输入X维度是一样的所以可以相加)。 Add指XMultiHeadAttention(X)是一种残差连接通常用于解决多层网络训练的问题可以让网络只关注当前差异的部分在 ResNet 中经常用到 Norm指Layer Normalization通常用于RNN结构Layer Normalization会将每一层神经元的输入都转成均值方差都一样的这样可以加快收敛。 4.2 Feed Forward Feed Forward层比较简单是一个两层的全连接层第一层的激活函数为Relu第二层不使用激活函数 max ⁡ ( 0 , X W 1 b 1 ) W 2 b 2 \max(0,XW_1b_1)W_2b_2 max(0,XW1​b1​)W2​b2​ X是输入Feed Forward最终得到的输出矩阵的维度与X一致。 最后 X X X经过一连串Encoder得到编码信息矩阵 C C C。 5 Decoder 上图红色部分为Transformer的Decoder block结构与Encoder block相似但是存在一些区别 包含两个Multi-Head Attention层。第一个Multi-Head Attention层采用了Masked操作。第二个Multi-Head Attention层的K, V矩阵使用Encoder的编码信息矩阵 C C C进行计算而Q使用上一个Decoder block的输出计算。最后有一个Softmax层计算下一个翻译单词的概率。 5.1 Masked Multi-Head Attention (1st) Decoder block 的第一个Multi-Head Attention采用了Masked操作因为在翻译的过程中是顺序翻译的即翻译完第 i 个单词才可以翻译第i1个单词。通过Masked操作可以防止第i个单词知道i1个单词之后的信息。 下面的描述中使用了类似Teacher Forcing的概念。在 Decoder 的时候是需要根据之前的翻译求解当前最有可能的翻译如下图所示。首先根据输入Begin预测出第一个单词为 “I”然后根据输入Begin I预测下一个单词 “have”。 **第一步**是 Decoder 的输入矩阵和 Mask 矩阵输入矩阵包含 “(begin) I have a cat” (0, 1, 2, 3, 4) 五个单词的表示向量Mask 是一个 5×5 的矩阵。在 Mask 可以发现单词 0 只能使用单词 0 的信息而单词 1 可以使用单词 0, 1 的信息即只能使用之前的信息。 第二步接下来的操作和之前的 Self-Attention 一样通过输入矩阵 X X X计算得到 Q , K , V Q,K,V Q,K,V矩阵。然后计算 Q Q Q和 K ⊤ K^\top K⊤的乘积 Q K ⊤ QK^\top QK⊤。 第三步在得到 Q K ⊤ QK^\top QK⊤之后需要进行 Softmax计算 attention score我们在 Softmax 之前需要使用Mask矩阵遮挡住每一个单词之后的信息遮挡操作如下 得到Mask Q K ⊤ QK^\top QK⊤之后在Mask Q K ⊤ QK^\top QK⊤上进行Softmax每一行的和都是1但是单词0在单词1,2,3,4上的attention score都为0。 第四步使用Mask Q K ⊤ QK^\top QK⊤与矩阵 V V V相乘得到 Z Z Z则单词1的输出向量 Z 1 Z_1 Z1​是只包含单词1的信息的。 第五步通过上述步骤就可以得到一个Masked Self-Attention的输出矩阵 Z i Z_i Zi​然后和Encoder类似通过Multi-Head Attention拼接多个输出 Z i Z_i Zi​然后计算得到第一个Multi-Head Attention的输出 Z Z Z Z Z Z与输入 X X X的维度相同。 5.2 Multi-Head Attention (2nd) Decoder block 第二个 Multi-Head Attention 变化不大 主要的区别在于其中 Self-Attention 的 K, V矩阵不是使用 上一个Decoder block的输出计算的而是使用Encoder 的编码信息矩阵C计算的。 根据Encoder的输出 C C C计算得到 K , V K, V K,V根据上一个Decoder block的输出 Z Z Z计算 Q Q Q (如果是第一个Decoder block则使用输入矩阵 X 进行计算)后续的计算方法与之前描述的一致。 这样做的好处是在Decoder的时候每一位单词都可以利用到Encoder所有单词的信息 (这些信息无需Mask)。 5.3 Softmax预测输出单词 Decoder block 最后的部分是利用 Softmax 预测下一个单词在之前的网络层我们可以得到一个最终的输出 Z Z Z因为 Mask 的存在使得单词0的输出 Z 0 Z_0 Z0​ 只包含单词0的信息如下 Softmax 根据输出矩阵的每一行预测下一个单词 这就是Decoder block的定义与Encoder一样Decoder是由多个Decoder block组合而成。
http://www.pierceye.com/news/352380/

相关文章:

  • wap手机网站建设刀模 东莞网站建设
  • 怎样做网站的外链做推广优化的网站有哪些内容
  • 永嘉规划建设局网站备案个人网站做淘宝客
  • 枣庄网站建设电话网站怎么做 凡科
  • 视频网站点击链接怎么做的宁波网站建设接单
  • 网站报价表怎么做wordpress 横向扩展
  • 溧阳网站建设哪家好网站建设的教程
  • 360怎么做网站做pop网站
  • 网站建设方案书2000字中国正国级名单
  • 企业网站的布局类型网站移动页面怎么做的
  • 人是用什么做的视频网站吗wordpress如何设水印图片
  • 蛋糕店的网站建设咋写深圳市宝安区邮政编码
  • 东莞横沥网站建设杭州网站制作排名
  • 百合怎么做网站网站开发语
  • 网站搭建哪里找最好天津市建设工程信息网站
  • 有免费注册网站吗做教育网站还挣钱吗
  • 网站做百度推广需要哪些条件店铺推广软文范例
  • 台州企业网站搭建特点迅美网站建设
  • 做营销网站推广官方网站建设方法
  • 网页设计精选网站网站查询功能怎么做
  • 重庆专业网站推广流程建立平台的步骤
  • 舟山市普陀区建设局网站net网站开发 兼职
  • 网站备案流程阿里云南宁网站建设官网
  • h5网站制作介绍简单的静态 新闻 asp 网站源码
  • 济南seo网站推广公司帮别人做彩票网站吗
  • 郑州市网站建设怎么样wordpress wp editor
  • 台州网站建设 推广公司网络营销课程总结范文
  • 网站 外包 版权杭州做官网的有哪些公司
  • 微信网站html5中山平面设计公司
  • 建站网站教程视频世界网站排名