机器学习笔记: attention
1 回顧: 使用RNN的Seq2Seq
????????encoder最后的輸出,我們生成兩個向量,初始的decoder狀態s0和文本向量c。然后進行decoder操作?????????
? ? ? ? 但是問題在于,如果輸入的sequence很長的話,可能我們fixed的文本向量c不夠靈活。畢竟輸出不用看所有輸入,只需要看相關的輸入即可
2 seq2seq 使用RNN和attention模塊
于是我們在seq2seq模型中添加attention模塊
首先,對于encoder的輸出,我們將其與之前的隱狀態h一起送入MLP,得到對齊值e
?然后我們使用softmax模塊,將e歸一化為[0,1],且和為1的注意力權重a
?之后我們將h與相對應的權重a相乘,再求和,得到此時的文本向量c1
然后使用上一輪的s,本輪的c,以及本輪decoder的輸入y,生成本輪的狀態s‘
?下一輪,使用s1進行計算,然后得到c2.....以此類推
?2.1 舉例:RNN & attention 用于圖片注明
首先,圖片經過CNN得到一個矩陣,然后矩陣通過某些神經網絡,得到一個狀態s0
?
然后,用s0和h的每個條目, 分別計算一個e
?
?之后經過attention,得到權重值
h和對應的a乘積求和,得到c
?s0,c1,y0計算,得到s1
?再將s1送進去,以此循環:
?3 attention 層
這是我們上一小節的attention,我們對其做一個改動
| attention in Seq2seq | attention layer | |
| query | s | Query vector: q (Shape: ) |
| input | h矩陣 | Input vectors: X (Shape: ) |
| 相似度方法 (e的求法) | q和X的點積 | |
| 計算流程 |
?說一下這里除以根號D的原因:比較大的相似度會使得softmax層飽和,這會導致梯度消失,除以根號D的作用就是在一定程度上約束相似度,緩解梯度消失的問題。(q和x維度越大,內積的結果也應該越大,所以需要除以一個和維度正相關的參數。)
當然,我們也可以這么表示 attention layer
?
?這里的Q是外部的矩陣
?
?4 self-attention
像比于attention layer,self-attention layer 沒有外來的Q,Q得自己求得
?它可以代替bi-direction RNN,而且相比于RNN,self-attention layer可以并行
4.1 attention 步驟
->1,對于一個input xi,我們先經過一個embedding(乘以一個矩陣),使xi變成ai
->2,然后ai分別乘上三個不同的變化矩陣(transformation matrix),變成qi,ki,vi。
->3?得到Q,K,V之后,就和前面的一致了
->4?將上一部算出來的結果進行softmax(使得和為1,每個值都在0~1之間)
-> 5??將第4步算出來的權重,和v1進行加權求和,得到的就是x1經過self-attention后對應的embedding結果
-> 6 同理,我們有b2~b4
4.2??self-attention的優點
self-attention的好處是,每一個bi的輸出,不僅綜合考慮了所有input的情況;而且這個操作是可以并行運算的。
4.3 self-attention 可視化結果
4.4 self-attention 矩陣表述
4.4.1?計算query、key、value?
4.4.2 計算 a1i
為了簡化,我們把所有的除以根號d都省略了
4.4.3 計算整個的a
然后對每一列進行softmax操作
4.4.4 計算 b
4.4.5 總覽
?
4.5 multi-head self-attention
4.5.1?multi-head self-attention 原理
?大體思路和self-attention是一樣的。不同之處在于,我們得到q,k,v后,我們用不同的方法再生成一組q,k,v。
?進行self-attention的時候,每一種辦法生成的qki之和自己這種辦法生成的qki進行操作
然后這兩個bi再通過某種方式merge成一個b?
4.5.2 multi-head self-attention可視化
越粗表示之間的權重越大,關系越近。
我們可以發現,不同的head側重點是不一樣的:一個注重距離上的遠近,一個關注語義上的遠近
4.6 排列不變性與位置編碼
????????假設我們改變輸入X的排列順序,最終的輸出只是也改變了排列的順序,但是內容不會因為排列的變化而發生改變。我們稱這個為排列不變性
?
?倘若我們不需要排列不變性的話,我們可以對每一個輸入疊加一段位置編碼,這樣排列不變性就被破壞了
4.7 masked self-attention
中心思想就是,我們只考慮過去的內容對我的attention權重
?4.8 CNN+self-attention
?
總結
以上是生活随笔為你收集整理的机器学习笔记: attention的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习笔记:线性判别分析(Fisher
- 下一篇: mas714 笔记:undecidabi