李宏毅——transformer

導讀

什麼是transformer:
在這裏插入圖片描述
對於序列,常用的是RNN
RNN的問題,不容易並行處理。
所以有人提出了,用CNN來替代RNN。
圖中每一個三角形代表一個filter。
但是CNN只能考慮有限的信息,比如圖中只有三個,這種可以通過上層的疊加來考慮更多的信息。
這種的好處是可以並行化,但是缺點是要疊很多層,才能看到長期的諮詢。
在這裏插入圖片描述
所以的做法是self-attention
它也可以輸入是sequence,輸出是sequence,它可以看到整個輸入的序列,也可以同時計算。
在這裏插入圖片描述

self-attention

首先出現在attention is all you need
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
是如何做平行化的呢?
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

multi-head self-attention

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
mult-head的優點是不同的head可以關注不同的信息,每個head各司其職

順序問題

對self-attention來說,輸入的次序是不重要的
原paper中,使用人工設置的positional vector ei
也可以在xi上append一個one-hot的vector,但是實際的效果是一樣的。
在這裏插入圖片描述
Wp可以學習,但是實際上也是手工設置的
如下圖
在這裏插入圖片描述

seq2seq with attention

seq2seq由encoder和decoder組成
在這裏插入圖片描述
其中的RNN可以由self-attention取代
在這裏插入圖片描述
具體思想可參考動畫
在這裏插入圖片描述

transformer

網絡架構

在這裏插入圖片描述
在這裏插入圖片描述

attention visualization

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
下面的head只考慮臨近的關係,上面的考慮更多遠的關係

例子

基本上可以用seq2seq的都可以用transformer
比如從文章集合中生成wikipedia
在這裏插入圖片描述
universal transformer
在深度上做RNN,每一層都是一樣的transformer在這裏插入圖片描述
transformer最早用在文字上,現在也可以用在圖像上
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章