RM新时代网站-首页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PyTorch教程11.4之Bahdanau注意力機制

PyTorch教程11.4之Bahdanau注意力機制

2023-06-05 | pdf | 0.38 MB | 次下載 | 免費

資料介紹

當我們在10.7 節(jié)遇到機器翻譯時,我們設計了一個基于兩個 RNN 的序列到序列 (seq2seq) 學習的編碼器-解碼器架構 ( Sutskever et al. , 2014 )具體來說,RNN 編碼器將可變長度序列轉(zhuǎn)換為固定形狀的上下文變量。然后,RNN 解碼器根據(jù)生成的標記和上下文變量逐個標記地生成輸出(目標)序列標記。

回想一下我們在下面重印的圖 10.7.2 (圖 11.4.1)以及一些額外的細節(jié)。通常,在 RNN 中,有關源序列的所有相關信息都由編碼器轉(zhuǎn)換為某種內(nèi)部固定維狀態(tài)表示。正是這種狀態(tài)被解碼器用作生成翻譯序列的完整和唯一的信息源。換句話說,seq2seq 機制將中間狀態(tài)視為可能作為輸入的任何字符串的充分統(tǒng)計。

https://file.elecfans.com/web2/M00/A9/C9/poYBAGR9N_qACEJlAAF4rEvQWMo465.svg

圖 11.4.1序列到序列模型。編碼器生成的狀態(tài)是編碼器和解碼器之間唯一共享的信息。

雖然這對于短序列來說是相當合理的,但很明顯這對于長序列來說是不可行的,比如一本書的章節(jié),甚至只是一個很長的句子。畢竟,一段時間后,中間表示中將根本沒有足夠的“空間”來存儲源序列中所有重要的內(nèi)容。因此,解碼器將無法翻譯又長又復雜的句子。第一個遇到的人是 格雷夫斯 ( 2013 )當他們試圖設計一個 RNN 來生成手寫文本時。由于源文本具有任意長度,他們設計了一個可區(qū)分的注意力模型來將文本字符與更長的筆跡對齊,其中對齊僅在一個方向上移動。這反過來又利用了語音識別中的解碼算法,例如隱馬爾可夫模型 Rabiner 和 Juang,1993 年。

受到學??習對齊的想法的啟發(fā), Bahdanau等人。( 2014 )提出了一種沒有單向?qū)R限制的可區(qū)分注意力模型。在預測標記時,如果并非所有輸入標記都相關,則模型僅對齊(或關注)輸入序列中被認為與當前預測相關的部分。然后,這用于在生成下一個令牌之前更新當前狀態(tài)。雖然在其描述中相當無傷大雅,但這種Bahdanau 注意力機制可以說已經(jīng)成為過去十年深度學習中最有影響力的想法之一,并催生了 Transformers Vaswani等人,2017 年以及許多相關的新架構。

import torch
from torch import nn
from d2l import torch as d2l
from mxnet import init, np, npx
from mxnet.gluon import nn, rnn
from d2l import mxnet as d2l

npx.set_np()
import jax
from flax import linen as nn
from jax import numpy as jnp
from d2l import jax as d2l
import tensorflow as tf
from d2l import tensorflow as d2l

11.4.1。模型

我們遵循第 10.7 節(jié)的 seq2seq 架構引入的符號 ,特別是(10.7.3)關鍵思想是,而不是保持狀態(tài),即上下文變量c將源句子總結(jié)為固定的,我們動態(tài)更新它,作為原始文本(編碼器隱藏狀態(tài))的函數(shù)ht) 和已經(jīng)生成的文本(解碼器隱藏狀態(tài)st′?1). 這產(chǎn)生 ct′, 在任何解碼時間步后更新 t′. 假設輸入序列的長度T. 在這種情況下,上下文變量是注意力池的輸出:

(11.4.1)ct′=∑t=1Tα(st′?1,ht)ht.

我們用了st′?1作為查詢,和 ht作為鍵和值。注意 ct′然后用于生成狀態(tài) st′并生成一個新令牌(參見 (10.7.3))。特別是注意力權重 α使用由 ( 11.3.7 )定義的附加注意評分函數(shù)按照 (11.3.3)計算。這種使用注意力的 RNN 編碼器-解碼器架構如圖 11.4.2所示。請注意,后來對該模型進行了修改,例如在解碼器中包含已經(jīng)生成的標記作為進一步的上下文(即,注意力總和確實停止在T而是它繼續(xù)進行t′?1). 例如,參見Chan等人。( 2015 )描述了這種應用于語音識別的策略。

https://file.elecfans.com/web2/M00/AA/44/pYYBAGR9N_2AIf3lAAG83XwjOJ8743.svg

圖 11.4.2具有 Bahdanau 注意機制的 RNN 編碼器-解碼器模型中的層。

11.4.2。用注意力定義解碼器

要實現(xiàn)帶有注意力的 RNN 編碼器-解碼器,我們只需要重新定義解碼器(從注意力函數(shù)中省略生成的符號可以簡化設計)。讓我們通過定義一個意料之中的命名類來開始具有注意力的解碼器的基本接口 AttentionDecoder。

class AttentionDecoder(d2l.Decoder): #@save
  """The base attention-based decoder interface."""
  def __init__(self):
    super().__init__()

  @property
  def attention_weights(self):
    raise NotImplementedError
class AttentionDecoder(d2l.Decoder): #@save
  """The base attention-based decoder interface."""
  def __init__(self):
    super().__init__()

  @property
  def attention_weights(self):
    raise NotImplementedError
class AttentionDecoder(d2l.Decoder): #@save
  """The base attention-based decoder interface."""
  def __init__(self):
    super().__init__()

  @property
  def attention_weights(self):
    raise NotImplementedError

我們需要在Seq2SeqAttentionDecoder 類中實現(xiàn) RNN 解碼器。解碼器的狀態(tài)初始化為(i)編碼器最后一層在所有時間步的隱藏狀態(tài),用作注意力的鍵和值;(ii) 編碼器在最后一步的所有層的隱藏狀態(tài)。這用于初始化解碼器的隱藏狀態(tài);(iii) 編碼器的有效長度,以排除注意力池中的填充標記。在每個解碼時間步,解碼器最后一層的隱藏狀態(tài),在前一個時間步獲得,用作注意機制的查詢。注意機制的輸出和輸入嵌入都被連接起來作為 RNN 解碼器的輸入。

class Seq2SeqAttentionDecoder(AttentionDecoder):
  def __init__(self, vocab_size, embed_size<

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
RM新时代网站-首页