深度学习升级打怪之self attention笔记
self attention
在聽了李宏毅老師關于self attention的講解后我覺得講的非常好😉,下面是我在聽完課之后做的一些學習記錄,主要的參考是李宏毅老師的網課和課件(文末給出)。
self attention在NLP和很多其它領域都有著廣泛的應用,以詞性標注為例。
I saw a saw
這里的第一個"saw"是動詞,第二個“saw”是名詞(鋸子),對于詞性標注而言,模型的輸入和輸出的數量是相同的
我們先考慮最簡單的情況
假設我們將這些詞單獨輸入到一個全連接層,再輸出,那么明顯我們沒有考慮到詞與詞之間的關系,訓練出來的模型效果不會很好。一個比較自然的想法是在對每一個詞進行詞性標注的時候都要考慮其它詞的影響。那么怎樣判斷其它的詞的重要性呢?這個問題就可以使用self attention機制來解決。
我們需要找出和當前詞匯相關的向量,同時我們需要衡量向量之間的相關度,在這里我們用α\alphaα(attention score)來衡量向量之間的相關度,相關度的計算方法有很多種,比較常見的有dot production 和additive.
假設原本的向量為aia_iai?那么qiq_iqi? 和kik_iki?則是由qi=Wqaiq_i = W^q a_iqi?=Wqai?和ki=Wkaik_i = W^k a_iki?=Wkai?這兩個公式計算得來。得到了attention score之后我們往往會讓其經過一個softmax層(也可以是別的激活函數)得到α′\alpha^{'}α′,經過了softmax之后的attention score總和為1。有了相關度之后我們需要根據相關度計算信息,可以由下面的公式得到bib^ibi。
圖片中是以第一個向量為例,后面的向量也和第一個向量的計算方式類似。更近一步,我們可以將這樣的操作寫成矩陣運算的形式。
如上圖所示,我們最終可以得到output。
參考資料:
https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/self_v7.pdf
總結
以上是生活随笔為你收集整理的深度学习升级打怪之self attention笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用计算机处理图片,使用附带软件编辑照
- 下一篇: html插入flash时钟,PPT怎么插