Attention和Transformer


學習資料中關於Attention機制和Transformer的總結

一. 學習資料

深度學習中的注意力模型

BERT大火卻不懂Transformer?讀這一篇就夠了

李宏毅講解Transformer

完全圖解RNN、RNN變體、Seq2Seq、Attention機制

二. Transformer

Masked multi-head self-attention

Masked multi-head self-attention指的是只會attention已經輸出的值,不會attention還沒有輸出的值。

Norm

transformer里面的Norm指的是layer normalization。Batch normalization在batch size太小或者序列(大小不確定)問題中表現不好,因為BN是將一個batch里的同一通道做歸一化,LN是將一個樣本里的不同通道做歸一化。所以LN在序列問題中表現好,無關batch size大小。

transformer

三. Attention機制

attenton機制的主要思想其實就是吃兩個向量吐出一個分數,根據一系列分數決定attention。之前的attention主要用於encoder-decoder之間,在decoder時attention encoder的值。

四. self-attention

在處理squence-to-squence問題上,RNN可以處理長距離特征關系,但是並行計算能力差;CNN也可以處理但是需要多層。self-attention可以用一層處理長距離特征關系,而且並行計算能力強!

自注意力模型可以作為神經網絡中的一層來使用,既可以用來替換卷積層和 循環層,也可以和它們一起交替使用。 自注意力模型計算的權重𝛼𝑖𝑗只依賴於𝒒𝑖和𝒌𝑗的相關性, 而忽略了輸入信息的位置信息。因此在單獨使用時,自注意力模型一般需要加入位置編碼信息來進行修正。

自注意力的一種解釋就是在編碼某個單詞時,就是將所有單詞的表示(值向量)進行加權求和,而權重是通過該詞的表示(鍵向量)與被編碼詞表示(查詢向量)的點積並通過softmax得到。

  1. 先將one-hot轉化為embedding
  2. 把整個sequence乘三個參數矩陣得到Q、K、V
  3. \(A = K^TQ\)->\(\hat A=A\)
    每個token的q與所有k點積得到a,所有a經過softmax得到\(\hat a\)
  4. \(O=V\hat A\) 得到最終的輸出O

截屏2020-02-20下午5.20.28

self-attention里是一堆矩陣乘法,並行計算能力很強!而且輸出O里的每個值都attention了I中的每個值

五. Multi-head self-attention

多個self-attention的組合。並行地從輸入信息中選取多組信息. 每個注意力關注輸入信息的不同部分。

好處:多個attention可以關注不同的點,每個attention的作用不同。

將q、k、v分裂成k個(維度不變),然后每個a可以得到k個b,將k個b組合后再用矩陣乘法降維(取平均的過程)。最后得到的b就是經過多次attention得到的值,可以獲取到更多的特征!

截屏2020-02-20下午5.27.19

六. Positional Encoding

對於self-attention來說,所有的輸入都是相同的距離,沒有距離的概念。所以需要對輸入值提前加入位置信息。這個信息是不用學習的。


免責聲明!

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



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