Transformer


1. Transformer的整體結構

  如圖所示為transformer的模型框架,transformer是一個seq2seq的模型,分為Encoder和Decoder兩大部分。

2. Transformer Encoder部分

2.1 Encoding輸入部分

  首先將輸入的文字進行Embedding,每一個字(詞)使用一個向量表示,稱為字向量,一個句子就可以用一個矩陣來表示。再將每個字向量加上對應的位置信息進行Positional Encoding得到輸入矩陣。位置信息通過如下公式進行計算

    i為偶數

 

 

   i為奇數     

 

 

  RNN的輸入是按照句子的順序,一個字一個字進行輸入,每個字的位置關系自然包含其中,而對於transformer來說,一個句子中的每一個詞是並行計算的,所以在輸入的時候需要提前引入位置信息。在ViT中,對圖片進行處理時,也加入了位置信息,但對整體的提升不是特別明顯,原因是自然界的圖像本身就帶有一定的位置關系,模型在學習的時候,自己學習到了這些位置特征。

          

 

 

 2.2 注意力機制

  注意力機制的思想可以簡單概括為計算source當前輸入與target中各部分的關聯程度,然后將target中各部分乘以對應的關聯權重,求和作為輸出。transformer中采用的是多頭注意力機制,其中編碼器和解碼器中各有一個多頭自注意力機制。

  所謂自注意力機制,是注意力機制的輸入q、k、v相同,目的是找到句子本身內部的關系,而以往的注意力關注的是source和target之間的關聯,忽略了句子內部元素的關系。多頭的本質是多個獨立的attention計算,作為一個集成的作用,防止過擬合;從attention is all your need論文中輸入序列是完全一樣的;相同的Q,K,V,通過線性轉換,每個注意力機制函數只負責最終輸出序列中一個子空間,即1/8,而且互相獨立。

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM