日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习笔记: attention

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习笔记: 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 Seq2seqattention layer
querys Query vector: q (Shape: )
inputh矩陣 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。