DL之self-attention:self-attention自注意力机制的简介、应用之详细攻略
DL之self-attention:self-attention自注意力機制的簡介、應用之詳細攻略
?
?
?
目錄
self-attention的簡介
1、self-attention的影響
2、self-attention模塊思路的8個步驟及其代碼實現
self-attention的應用領域
?
參考文章
一文讀懂自注意力機制:8大步驟圖解+代碼
?
相關文章
DL之Attention:Attention的簡介、應用領域之詳細攻略
DL之self-attention:self-attention的簡介、應用之詳細攻略
self-attention的簡介
? ? ? ?一個self-attention模塊接收n個輸入,然后返回n個輸出。這個模塊中發生了什么呢?用外行人的話說,self-attention機制允許輸入與輸入之間彼此交互(“self”),并找出它們應該更多關注的對象(“attention”)。輸出是這些交互和注意力得分的總和。
?
1、self-attention的影響
? ? ? ?BERT, RoBERTa, ALBERT, SpanBERT, DistilBERT, SesameBERT, SemBERT, MobileBERT, TinyBERT, CamemBERT……共同之處是BERT,但是最底層則是self-attention。
? ? ? ?“BERT”的架構,更準確地說是基于Transformer的架構。基于Transformer的架構主要用于建模語言理解任務,避免了神經網絡中的遞歸,而是完全依賴于self-attention機制來繪制輸入和輸出之間的全局依賴關系。
?
2、self-attention模塊思路的8個步驟及其代碼實現
DL之self-attention:self-attention模塊思路的8個步驟及其代碼實現
| 1、準備輸入 | |
| 2、初始化權重 | 每個輸入必須有三個表示(見下圖)。這些表示稱為鍵(key,橙色)、查詢(query,紅色)和值(value,紫色)。在本例中,我們假設這些表示的維數是3。因為每個輸入的維數都是4,這意味著每組權重必須是4×3。 注:在神經網絡設置中,這些權重通常是很小的數字,使用適當的隨機分布(例如高斯、Xavier和Kaiming分布)進行隨機初始化。 |
| 3、推導key,?query?和?value | 注:在實踐中,偏差向量(bias vector )可以添加到矩陣乘法的乘積。 |
| 4、計算輸入1的注意力得分 | 為了獲得注意力得分,我們首先在輸入1的查詢(紅色)和所有鍵(橙色)之間取一個點積。因為有3個鍵表示(因為有3個輸入),我們得到3個注意力得分(藍色)。 |
| 5、計算softmax | 在所有注意力得分中使用softmax(藍色)。 |
| 6、將分數與值相乘 | 每個輸入的softmaxed attention 分數(藍色)乘以相應的值(紫色)。結果得到3個對齊向量(黃色)。在本教程中,我們將它們稱為加權值。 由值(紫色)和分數(藍色)的相乘推導出加權值表示(黃色) |
| 7、將權重值相加,得到輸出1 | 將所有加權值(黃色)按元素指向求和,結果向量[2.0,7.0,1.5](深綠色)是輸出1,該輸出基于輸入1與所有其他鍵(包括它自己)進行交互的查詢表示。 |
| 8、對輸入2和輸入3重復步驟4-7 | 已經完成了輸出1,我們對輸出2和輸出3重復步驟4到7。 |
?
?
self-attention的應用領域
更新……
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的DL之self-attention:self-attention自注意力机制的简介、应用之详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决ModuleNotFoundEr
- 下一篇: 成功解决ModuleNotFoundEr