目錄
1. 注意力機制由來
2. Nadaraya-Watson核回歸
3. 多頭注意力與自注意力
4. Transformer模型
Reference
隨著Transformer模型在NLP,CV甚至CG領(lǐng)域的流行,注意力機制(Attention Mechanism)被越來越多的學者所注意,將其引入各種深度學習任務中,以提升性能。清華大學胡世民教授團隊近期發(fā)表在CVM上的Attention綜述 [1],詳細介紹了該領(lǐng)域相關(guān)研究的進展。對于點云應用,引入注意力機制,設(shè)計新的深度學習模型,自然是一個研究熱點。本文以注意力機制為對象,概述其發(fā)展脈絡(luò),以及在點云應用領(lǐng)域的成功應用,為期望在該研究方向有所突破的同學,提供一點參考。
1. 注意力機制由來
參考李沐老師深度學習教材 [2] 關(guān)于注意力機制部分的介紹,這里對注意力機制給出一個簡單的解釋。注意力機制即模擬人類視覺感知下,選擇性地篩選信息進行接收和處理的機制。在信息篩選時,如果不提供任何自主性提示,即人在不做任何思考的情況下,閱讀一段文本,觀察一個場景,或聽一段音頻時,注意力機制偏重于異常信息,如一個黑白場景下穿紅色衣服的女孩,或一段文字中的一個感嘆號等。當引入自主性提示時,比如希望閱讀和某個名詞有關(guān)的語句,或有各對象關(guān)聯(lián)的場景時,注意力機制引入這種提示,并且在信息篩選時,提高對這種信息的敏感度。為了對上述過程進行數(shù)學建模,注意力機制引入三個基本元素,即查詢(Query),鍵(Key)和值(Value)。這三個元素共同構(gòu)成了Attention Module的基本處理單元。鍵(Key)和值(Value)對應信息的輸入和輸出,查詢(Query)對應的自主性提示。Attention Module基本處理單元如下圖所示。
注意力機制通過注意力匯集,將查詢和鍵結(jié)合在一起,實現(xiàn)對值的選擇傾向。鍵和值是成對的,就像訓練任務中的輸入輸出,是已知的數(shù)據(jù)分布,或者類別對應。注意力機制通過在注意力匯聚中輸入查詢,建立查詢到每一個鍵的權(quán)重編碼,得到查詢與鍵的關(guān)系,進而指導對應值的輸出。簡而言之,就是當查詢越接近某個鍵時,查詢的輸出結(jié)果就越接近鍵對應的值。該過程將注意力引入了更接近查詢的鍵值對應關(guān)系,以指導符合注意力的輸出。如果將查詢與鍵對應建立一個二維的關(guān)系矩陣,當值相同時為1,不同時為0,其可視化結(jié)果可表示為:
2. Nadaraya-Watson核回歸
這里介紹一個經(jīng)典的注意力機制模型,即Nadaraya-Watson核回歸 [3][4],用以理解注意力機制的基本運行邏輯。假設(shè)我們我們有一個受函數(shù)f控制的鍵值對應關(guān)系數(shù)據(jù)集{(x1,y1),(x2,y2),...(xi,yi)},學習任務是建立f,并指導對新的x鍵的求值。在這個任務中,(xi,yi)對應的就是鍵和值,輸入的x表示查詢,目標是獲得其對應的值。按照注意力機制,需要通過考察x與鍵值對應關(guān)系數(shù)據(jù)集中每一個鍵值的相似關(guān)系,建立對其值的預測。當輸入的x越接近某個xi鍵時,那么輸出的值就越接近yi。這里對鍵值最簡單的估計器是求平均:
顯然,這不是一個好主意。因為平均匯聚忽略了樣本在鍵值分布上的偏離差異。如果將鍵值的差異引入到求值的過程,那么結(jié)果自然會變好。Nadaraya-Watson核回歸即使用了這樣的思路,提出了基于加權(quán)的求值方法:
K被認為是核,即被理解為衡量偏離差異的權(quán)重。如果將上面公式按照輸入與鍵的差異權(quán)重,重寫其自身公式,則可得到:
如果把上述權(quán)重替換為一個高斯核驅(qū)動的高斯權(quán)重,那么函數(shù)f即可表示為?:
這里給出一個示意圖,以對比平均匯聚(左圖)和基于高斯核驅(qū)動的注意力匯聚(右圖)推導出的不同f對于樣本鍵值對的擬合情況。可以看到,后者的擬合性能會好很多。
上述模型是一個無參模型,對于帶可學習參數(shù)的情況,建議閱讀 [2] 注意力機制章節(jié)。這里所使用的高斯核及其對應的高斯權(quán)重,用來描述查詢與鍵的關(guān)系。在注意力機制中,這種關(guān)系的量化表示,即為注意力評分。上述對查詢值建立預測的過程,可以表示為對查詢建立基于鍵值對的評分,通過對評分賦權(quán),以獲得查詢值,表示為:
其中α表示權(quán)重,q表示查詢,kv表示鍵值對。在教材?[2] 中還介紹了如何處理查詢和鍵長度不匹配時間的加性注意力處理方法以及縮放點積注意力,用于定義注意力評分,這里不再詳述。
3. 多頭注意力與自注意力
1)多頭注意力
多頭注意力用來組合使用查詢、鍵值不同的子空間表示,基于注意力機制實現(xiàn)對不同行為的組織,來學習結(jié)構(gòu)化的知識以及數(shù)據(jù)依賴關(guān)系。通過獨立學習得到不同的線性投影,來變換查詢、鍵和值。然后,將變換后的查詢、鍵值并行地送到注意力匯聚中,然后將多個注意力匯聚的輸出拼接在一起,并且通過另一個可以學習的線性投影進行變換,并產(chǎn)生最終輸出。這種設(shè)計被稱為多頭注意力 [5]。下圖展示了一個可學習的多頭注意力模型:
這里給出每個注意力頭的數(shù)學定義,給定查詢q, 鍵k,值v,每個注意力頭h的計算方法為:
這里的f可以是加性注意力和縮放點積注意力。多頭注意力的輸出經(jīng)過另一個線性變換,以連接欸多個注意力機制輸出,進而模仿更復雜的函數(shù)。
2)自注意力與位置編碼
基于注意力機制,將NLP問題中的詞元序列輸入注意力匯聚,將一組詞元同時充當查詢、鍵值。每個查詢都會關(guān)注所有的鍵值對并生成一個注意力輸出。由于查詢、鍵值均來自同一組輸入,因此被稱為自注意力機制。這里將給出基于自注意力機制的編碼方法。
給定一個詞元輸入序列x1,x2,...,xn,對應的輸出為一個相同的序列y1,y2,...,yn。y表示為:
這個公式起初我不是很理解。不過結(jié)合文本翻譯的具體任務,就方便理解了。這里的意思是,一個詞元某個位置上的元素,對應了輸入和輸出。即鍵值都是這個元素本身。我們需要學習的函數(shù),即通過學習每個詞與詞元中的所有詞匯的權(quán)重,來建立對值的預測。
在處理詞元時,由于自注意力需要并行計算,而放棄了順序操作。為了使用序列的順序信息,可以在輸入表示中添加位置編碼來注入絕對的或相對的位置信息。通過對輸入矩陣添加一個相同形狀的位置嵌入矩陣,以實現(xiàn)絕對位置編碼,其行列對應的元素表示為:
這種基于三角函數(shù)方法表示的位置嵌入矩陣元素并不直觀。我們只知道編碼維度與三角函數(shù)驅(qū)動的曲線頻率存在一種關(guān)系。即每個詞元內(nèi)部不同維度的信息,其對應的三角函數(shù)曲線頻率是不同的,如圖表示:
似乎隨著每個詞元維度的升高,其間隔對應的頻率會隨之降低。為了搞清楚這種頻率變化與絕對位置的關(guān)系,這里使用一個例子來解釋。這里打印出0-7的二進制表示(右圖為頻率熱圖):
?
這里較高比特位的交替頻率低于較低位。通過使用位置編碼,實現(xiàn)詞源不同維度基于頻率變換的編碼,進而實現(xiàn)對位置信息的添加。相對位置編碼此處不再詳述。?
4. Transformer模型
終于到了激動人心的時候了!我們在理解了上述知識之后,就打好了學習Transformer的基礎(chǔ)。相比之前依然依賴循環(huán)神經(jīng)網(wǎng)絡(luò)實現(xiàn)輸入表示的自注意力模型,Transformer模型完全基于自注意力機制,沒有任何卷積層或循環(huán)神經(jīng)網(wǎng)絡(luò)層。
Transformer模型是一個編解碼架構(gòu),整體架構(gòu)圖如下所示:
Transformer是由編碼器和解碼器組成的,基于自注意力模塊構(gòu)建,源(輸入)序列和目標(輸出)序列嵌入表示將加上位置編碼,再分別輸入到編碼器和解碼器中。?編碼器是由多個相同的層疊疊加而成的,每個層都有兩個?層。第一個子層是多頭自注意力匯聚,第二個子層是基于位置的前饋網(wǎng)絡(luò)。編碼器層計算的查詢,鍵,值均來自于上一層的輸出。每個子層都使用了殘差連接。解碼器同編碼器類似,也是由多個相同的層疊加?成,且使用了殘差連接和層規(guī)范化。除了編碼器中描述的兩個子層外,解碼器還添加了一個中間子層,稱為編碼器-解碼器注意力層。該層中查詢來自前一個解碼器層的輸出,?鍵和值來?整個編碼器的輸出。在解碼器自注意力中,查詢,鍵和值都來自上一個解碼器層的輸出。解碼器中的每個位置只能考慮之前的所有位置。這種遮蔽注意力保留了自回歸屬性,確保預測僅依賴于已生成的輸出詞元。不同module的具體實現(xiàn)不再詳述。
注:以上關(guān)于注意力機制的名詞解釋,原理介紹以及公式,主要參考李沐老師的教材 [2]。
基于上述注意力機制原理,針對點云處理任務的注意力機制深度學習模型被提出。我們將在下篇博客詳細介紹相關(guān)工作,歡迎持續(xù)關(guān)注我的博客。
Reference
[1] MH. Guo, TX, Xu, JJ. Liu, et al. Attention mechanisms in computer vision: A survey[J]. Computational Visual Media, 2022, 8(3): 331-368.
[2] A. Zhang, ZC. Lipton, M.?Li, and AJ. Smola. 動手學深度學習(Dive into Deep Learning) [B]. https://zh-v2.d2l.ai/d2l-zh-pytorch.pdf.
[3] EA. Nadaraya. On estimating regression[J]. Theory of Probability & Its Applications, 1964, 9(1): 141-142.
[4] GS. Watson. Smooth regression analysis. Sankhyā: The Indian Journal of Statistics,?Series A, pp. 359?372.文章來源:http://www.zghlxwxcb.cn/news/detail-695752.html
[5] A. Vaswani, N. Shazeer, N. Parmar, et al. Attention is all you need. Advances in neural information?processing systems, 2017,5998?6008.文章來源地址http://www.zghlxwxcb.cn/news/detail-695752.html
到了這里,關(guān)于點云深度學習系列博客(五): 注意力機制原理概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!