日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Transformer 是第一個完全依賴于自注意力機制來計算其輸入和輸出的表示的轉換模型。

主流的序列到序列模型是基于編碼器-解碼器的循環或卷積神經網絡,注意力機制的提出,優化了編解碼器的性能,從而使得網絡性能達到最優。利用注意力機制構建出新的網絡架構Transformer, 完勝了循環或卷積神經網絡。Transformer 是第一個完全依賴于自注意力機制來計算其輸入和輸出的表示的轉換模型。Transformer可以并行訓練,訓練時間更短。

 

1 Transformer的模型架構

 

序列到序列模型采用的是編碼器-解碼器結構,編碼器將輸入序列(,,……,映射成符號表示z=(,,……,,根據給定的Z ,解碼器生成輸出序列(,,……,,在每一個步長里,模型利用前一個步長中生成的向量和該步長的輸入,生成輸出符號。

 

Transformer模型架構如圖1-1所示,編碼器-解碼器結構采用堆疊的多頭注意力機制加全連接層,圖中左邊的是編碼器結構,右邊的是解碼器結構:

原創 | 一文讀懂Transformer

 

圖 1-1 堆疊的編碼器-解碼器結構(來源:網絡)

 

編碼器:編碼器由6個相同的塊結構堆疊而成 N=6,每個塊結構進一步分成兩個子層:即一個多頭的自注意力機制和一個前饋網絡全連接層,在塊中的每一個子層之后,增加一個歸一化層(Add&Norm),每個子層的輸出均為歸一化的LayerNorm(x + Sublayer(x)),包括詞嵌入層,模塊中所有子層的輸出的維數均為512,即 = 512。

 

解碼器:同理,解碼器也由6個相同的塊結構堆疊而成 N=6,每個塊結構在編碼器兩個子層的基礎之上,增加了第三個子層,即增加了一個多頭自注意力子層。與編碼器類似,在塊中的每一個子層之后,增加一個歸一化層(Add&Norm)。在解碼器端,對解碼器堆棧中的自注意力子層進行了修改,以防止位置編碼和后續位置編碼相關,通過這種掩蔽,確保了對位置i的預測只能依賴于小于i的位置的已知輸出。

 

2 Self-attention 自注意力機制

 

Attention 函數將三元組Q(Query)、K(Key)、V(Value) 映射成輸出,其中三元組Q(Query)、K(Key)、V(Value)和輸出均為向量,輸出是V(Value)的加權和,其中的權重是Q(Query)和K(Key)對應的組合計算出來的數值。

 

1)帶縮放的點積注意力機制Scaled dot-product attention

 

帶縮放的點積注意力機制(Scaled dot-product attention )的公式如下:

原創 | 一文讀懂Transformer

 

在上面公式中Q和K中的向量維度都是,V的向量維度是

原創 | 一文讀懂Transformer

 

,計算所有K向量和Q向量的點積,分別除以

原創 | 一文讀懂Transformer

 

,并應用一個Softmax函數來獲得這些值的權重。實際上在self-Attention中,

原創 | 一文讀懂Transformer

 

,為了方便將Attention的計算轉化為矩陣運算,論文中采用了點積的形式求相似度。常見的計算方法除了點積還有MLP網絡,但是點積能轉化為矩陣運算,計算速度更快。

 

兩個最常用的注意力函數是:加注意力函數(Additive Attention)和點積注意力函數(Dot-product Attention)。除了

原創 | 一文讀懂Transformer

 

的縮放因子外,帶縮放的點積注意力機制采用的是點積注意力函數,加注意力函數使用具有單個隱含層的前饋網絡來計算兼容性函數。雖然這兩者在理論復雜度上相似,但點積注意力函數更快,更節省空間,因為它可以使用高度優化的矩陣乘法碼來實現。而對于

原創 | 一文讀懂Transformer

 

較小的值,這兩種機制的性能相似,但在不加大更大

原創 | 一文讀懂Transformer

 

的值的情況下,加注意力函數優于點積注意力函數。對于較大的

原創 | 一文讀懂Transformer

 

值,點積相應變大,將Softmax函數推到梯度極小的區域。為了抵消這種影響,我們通過

原創 | 一文讀懂Transformer

 

來縮放點積。

 

Transformer模型在三處采用了多頭注意力機制:

 

  • 在編碼器-解碼器注意力層,Q值來自上一個解碼器層,K值和V值來自編碼器的輸出,從而使得解碼器的每一個位置信息均和輸入序列的位置信息相關,這種架構模仿了序列到序列模型編解碼器注意力機制。
  • 編碼器中包括自注意力層,在自注意力層中,Q 值、K值和V值均來自編碼器上一層的輸出,編碼器中的位置信息參與到前一層的位置編碼中去。
  • 同理,解碼器中的自注意力機制使得解碼器中的位置信息均參與到所有位置信息的解碼中去。

 

2)全連接前饋網絡

 

在Transfomer編碼器-解碼器架構的每一塊中,除了包含多頭注意力機制外,還包含一個全連接前饋網絡,全連接前饋網絡層包含兩次ReLU激活函數的線性變換。

原創 | 一文讀懂Transformer

 

不同層之間的全連接前饋網絡的參數各不相同,模型輸入輸出的維度是512 = 512, 層內部的維度是2048 ,即= 2048。

 

3)嵌入和Softmax

 

和其它序列到序列的模型相類似,Transformer模型利用詞嵌入技術將輸入標記和輸出標記轉化為維度為的向量,采用可訓練的線性變換和Softmax函數,將解碼器的輸出變換成待預測的下一個標記的概率。在Transformer模型中,兩個嵌入層和Softmax層之間共享權重矩陣。

 

3 位置編碼Positional Encoding

 

由于Transformer模型中既沒有遞歸,也沒有卷積,需要獲得輸入序列精準的位置信息的話,必須插入位置編碼。位置編碼精準地描述了輸入序列中各個單詞的絕對和相對位置信息,即在編碼器-解碼器的底部輸入嵌入中注入“位置編碼”,位置編碼和輸入嵌入有相同的維度,所以二者可以實現相加運算,位置編碼方式可以有多種,在Transformer模型中采用的是頻率不同的三角函數:

原創 | 一文讀懂Transformer

 

其中pos 是位置,i是維數,也就是說,位置編碼的每個維數都對應于一個正弦曲線。波長從2π到10000·2π的幾何變化。之所以選擇這個函數是因為假設它使得模型很容易地學習相對位置,對于任何固定偏移量k,

原創 | 一文讀懂Transformer

 

可以表示為

原創 | 一文讀懂Transformer

 

的線性函數。

 

首先,將自注意力機制和循環卷積網絡(RNN )和卷積神經網絡(CNN)進行對比,比較它們在變長序列

原創 | 一文讀懂Transformer

 

從三個因素來考量采用自注意力機制:首先是每一層計算的復雜程度;其次,是可以并行計算的計算量,用對序列操作的最小數目表示;第三,是網絡中最長相關路徑的長度。在序列學習任務中,對長序列相關性的學習是關鍵性的難點問題,前向和后向信號路徑的長度往往是影響學習效率的關鍵因素,輸入和輸出序列之間的位置越短,前向和后向信號路徑則越短,更容易學習到長序列的依賴關系,通過對比網絡中輸入輸出序列位置的最長通路路徑,來回答為什么采用自注意力機制來搭建Transformer模型。

原創 | 一文讀懂Transformer

 

表 3-1 不同層序列操作的的最大路徑長度、每層的復雜性和最小操作數

 

如表3-1所示 :不同層序列操作的的最大路徑長度、每層的復雜性和最小操作數。n是序列長度,d是表示維數,k是卷積的核大小,r是受限自注意力中的鄰域的大小。在表3-1中,自注意力機制通過

原創 | 一文讀懂Transformer

 

操作將序列的位置信息關聯起來,而RNN則需要對序列進行

原創 | 一文讀懂Transformer

 

次操作。從計算的復雜程度來看,當序列長度n小于表示向量的維度d 時,在機器翻譯任務中性能能達到最優。為了提高超長輸入序列的計算性能,限制自注意力中的鄰域r的大小,從而會使得最長相關路徑的長度變為

原創 | 一文讀懂Transformer

 

 

卷積核維度為k 的單卷積層無法實現所有輸入和輸出位置信息的連接,所以要求有

原創 | 一文讀懂Transformer

 

層卷積層堆疊,使得最長相關路徑的長度變長。通常,CNN的訓練成本比RNN的訓練成本要高。

 

從表3-1中的對比還可以看出,自注意力機制在復雜程度、并行計算的計算量和網絡中最長相關路徑的長度三方面均占有優勢。

 

4 Transformer 模型的訓練

 

4.1訓練數據和批次大小

 

在標準的WMT2014英語-德語數據集上進行訓練,這個數據集包括大約450萬個句子數據對。句子采用字節對編碼進行編碼,源-目標詞匯表中共享大約37000個標記。對于英語-法語,使用了更大的WMT2014英語-法語數據集,由3600萬個句子組成,并將標記分割為32000詞匯。句子對按近似的序列長度排列在一起。每個訓練批都包含一組句子對,其中包含大約25000個源標記和25000個目標標記。

 

4.2 硬件配置

 

使用8 NVIDIAP100 GPU上訓練了Transfomer模型,使用超參數的基本模型,每個訓練步長大約需要花費0.4秒的時間,對基本模型總共訓練了10萬步或12個小時。對于大模型,步長時間為1.0秒,大模型訓練了30萬步(3.5天)。

 

4.3 優化器

采用Adam 優化器,參數設置為h β1 = 0.9, β2 = 0.98,并依據下述公式調整學習率:

原創 | 一文讀懂Transformer

 

對應于第一個warmup_steps訓練步長,學習率線性增加,在后續步長中,學習率隨著步長的平方根成正比例下降,其中,warmup_steps =4000。

 

4.4 正則化

 

在訓練過程中采用了三種正則化方法:

 

殘差Dropout:在添加子層的輸入和歸一化之前,將Dropout機制應用于每個子層的輸出,同時在編碼器-解碼器堆疊的嵌入過程和位置編碼過程中加入Dropout機制,

原創 | 一文讀懂Transformer

 

= 0.1。

 

4.5 訓練結果

 

機器翻譯

 

在WMT2014英德翻譯任務中,Transformer (big)比之前報告的最佳模型(包括集成)高出2.0多個BLEU,獲得BLEU分數為28.4。該模型的配置列于表5-2的底部。在8個P100 GPU 上進行訓練需要3.5天。甚至基本模型也超過了所有之前發布的模型和集合,訓練成本也大幅度縮減。

 

在WMT2014年英法翻譯任務中Transformer (big)獲得了BLEU分值為 41.0分,優于之前發布的所有其它模型,訓練成本降低 1/4。

原創 | 一文讀懂Transformer

 

表4.5-1 在英德和英法翻譯任務中Transformer模型的BLUE 分值和其它模型BLUE 分值的對比(來源:網絡)

 

表4.5-1同時將翻譯質量和訓練成本與其他模型架構的翻譯質量和訓練成本進行了比較。通過比較訓練時間、所使用的GPU的數量以及對每個GPU5的持續單精度浮點容量的估計來估計用于訓練模型的浮點操作的數量。

 

為了評估Transformer模型是否可以推廣到其他任務,在英語選區解析上進行了實驗。這個任務提出了具體的挑戰:輸出受到強大的結構約束,且長度遠遠長于輸入。此外,RNN序列對序列模型還無法在小數據體系中獲得最為先進的結果。

 

通過在賓夕法尼亞州《華爾街日報》的數據集上訓練了大約40K句子,數據模型為

原創 | 一文讀懂Transformer

 

的4層Transformer。此外,還在半監督設置下訓練它,使用更大的高置信度和伯克利解析器語料庫,大約1700萬語句。對《華爾街日報》的設置使用了16K標記詞匯,對半監督的設置使用了32K標記詞匯。

 

結論:Transformer是采用自注意力機制的序列到序列模型,在編碼器-解碼器架構的神經網絡中,用多頭自注意力機制取代了RNN 層。對于翻譯任務,Transformer的訓練速度可以比基于循環層或卷積層的體系架構要快得多。關于2014WMT英德語和WMT2014英法翻譯任務,實現了不錯的性能。在前一項任務中,Transformer模型的性能甚至優于之前報告的所有其它模型。

 

作者簡介

陳之炎,北京交通大學通信與控制工程專業畢業,獲得工學碩士學位,歷任長城計算機軟件與系統公司工程師,大唐微電子公司工程師。目前從事智能化翻譯教學系統的運營和維護,在人工智能深度學習和自然語言處理(NLP)方面積累有一定的經驗。

分享到:
標簽:Transformer
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定