李宏毅深度學習筆記07---Transformer


1.Transformer的入門簡介

transformer是一種帶有self-attention的seq2seq 的模型

處理seq2seq的問題最常用的架構是RNN

下圖,左邊的結構是RNN,右邊的結構是self-attention layer,bi可以基於整個輸入序列而得到的。b1,b2,b3,b4是並行計算的。

self-attention layer 可以取代RNN 

2.Self-attention的原理

 

(1)拿每個query q去對每個key k做attention

(2)進行soft-max處理

softmax用於多分類過程中,它將多個神經元的輸出,映射到(0,1)區間內,可以看成概率來理解,從而來進行多分類!

假設我們有一個數組,V,Vi表示V中的第i個元素,那么這個元素的softmax值就是

更加形象的描述是:

理解完softmax,就容易理解下圖了。

 

 

(3)得到輸出結果b1

其中,代表乘法的意思。

同理,可以得到b2,b3,b4的值。

(4)利用矩陣的思想理解self-attention的第1,2,3步的執行過程

<1>q,v,k的矩陣化表示

<2>α1,11,21,31,4計算過程矩陣化表示

<3>計算得到b

(4)self-attention計算過程回顧

3.self-attention 未考慮位置信息

self-attention模型中是沒有位置信息的,原始論文中有一個獨特的位置變量ei,這個ei不是從數據中學出來的,而是人為設定的

可以這樣理解,將每個詞的位置信息理解為one-hot的詞向量pi,將pi與xi做拼接。W也可以看做由兩部分WI,WP組成。

 

4.Transformer非常經典的結構圖

 

(1)attention的可視化

從下圖中可知,第一個句子,it通過attention知道對應animal,第2個句子通過修改第一個句子的部分內容,可知it對應street

 

5.Transformer的應用

總結一句話:凡是可以用seq2seq的地方,都可以用transformer

 


免責聲明!

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



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