注意力機制的理解(借鑑)

2021-10-10 05:11:08 字數 2086 閱讀 8456

如圖是在文字處理領域的encoder-decoder框架。

encoder:對輸入句子進行編碼,通過非線性比變換轉化為中間語義表示c

decoder:根據中間語義c和之前的歷史資訊,生成輸出語句

每個yi都是依次產生的。

上圖中展示的encoder-decoder框架是沒有體現出"注意力模型"的,可以看作是注意力不集中的分心模型。

從單詞生成的過程中,可以發現無論生成哪個單詞,都用到c,沒有區別。而語義編碼c是原句子經過編碼產生的,也就是原句子中的任何詞對生成的yi的影響力都是相同的。因此沒有體現出"注意力"。

而引入注意力模型,就是給原句子的詞新增注意力分配概率。那麼原先的中間語義編碼c會被替換成根據當前生成單詞而不斷變化的ci。

目標句子單詞的生成過程:

求c1、c2、c3的過程,是乙個加權求和的過程。

lx​是原句子長度,aij

_jai

​j​是目標句子輸出第i個單詞時原句子第j個單詞的注意力分配係數(也就是權重隨著輸出單詞而變化的),h

jh_j

hj​是原句子第j個單詞的語義編碼

soft attention是目標句子和原句子之間的attention機制,而self attention是原句子內部之間或目標句子內部之間的attention機制

q、k、v都是來自同一輸入,先計算q和k的點乘,再除以乙個尺度標度√dk, 其中dk是q和k向量的維度;再利用softmax操作將結果歸一化,再乘上v得到結果。

要翻譯乙個片語thinking machines,其中thinking的輸入的embedding vector用x

1x_1

x1​表示,machines的embedding vector用 x

2x_2

x2​表示。

當我們處理thinking這個詞時,我們需要計算句子中所有詞與它的attention score,這就像將當前詞作為搜尋的query,去和句子中所有詞(包含該詞本身)的key去匹配,看看相關度有多高。

計算thinking的attention score的時候我們需要計算 q

1q_1

q1​與 k

1k_1

k1​、k

2k_2

k2​的點乘。然後進行尺度縮放和softmax歸一化。

顯然,當前單詞與其自身的attention score一般最大,其他單詞根據與當前單詞重要程度有相應的score。

最後用這些attention score與value vector相乘,得到加權的向量。

下面是矩陣形式:

這就得到了句子內部之間的注意力分配係數。

注意力機制

從網路結構本身的角度出發,可以從以下四個維度來提公升卷積神經網路的效能,分別是 深度 resnet 寬度 wideresnet 基數 resnext 和注意力 senet 一般來說,網路越深,所提取到的特徵就越抽象 網路越寬,其特徵就越豐富 基數越大,越能發揮每個卷積核獨特的作用 而注意力則是一種能...

注意力機制

深度學習中的attention,源自於人腦的注意力機制,當人的大腦接受到外部資訊,如視覺資訊 聽覺資訊時,往往不會對全部資訊進行處理和理解,而只會將注意力集中在部分顯著或者感興趣的資訊上,這樣有助於濾除不重要的資訊,而提最早將attention利用在影象處理上的出發點是,希望通過乙個類似於人腦注意力...

注意力機制筆記

本文是對深度學習中的注意力機制做的筆記,並附上注意力機制應用的部分例子。首先,從其功能感受下注意力機制的作用。來自這裡 上圖展示了引入attention後框架的變化 由固定的語義編碼c變為根據輸出不斷變化的 公式中 抽象為更一般的模型如下 相似度計算 階段1 相似度的歸一化 階段2 計算attent...