CNN-Attention

Attention Mechanism可以幫助模型對輸入的X每個部分賦予不同的權重,抽取出更加關鍵及重要的信息,使模型做出更加準確的判斷,同時不會對模型的計算和存儲帶來更大的開銷,這也是Attention Mechanism應用如此廣泛的原因。 
之前在做知識庫問答和閱讀理解問答的研究中都用到了attention機制,效果確實比較顯著(雖然減慢訓練速度的效果也比較顯著…)。在是谷歌發佈論文Attention Is All You Need後,attention更是成爲了一種普遍做法。後來發現在圖像領域attention也有應用,在CNN上加attention感覺比較神奇,因此做一個小的總結。等讀完這篇論文後,再來補充論文裏的思想。

RNN with Attention

在nlp領域,attention主要應用在Encoder + Decoder框架的基礎上。 
attention最早應該出現在2014年bengio的neural machine translation論文上面,在seq2seq問題上引入attention

CNN with Attention

主要分爲兩種,一種是spatial attention, 另外一種是channel attention。 
CNN每一層都會輸出一個C x H x W的特徵圖,C就是通道,代表卷積核的數量,亦爲特徵的數量,H 和W就是原始圖片經過壓縮後的圖,spatial attention就是對於所有的通道,在二維平面上,對H x W尺寸的圖學習到一個權重,對每個像素都會學習到一個權重。你可以想象成一個像素是C維的一個向量,深度是C,在C個維度上,權重都是一樣的,但是在平面上,權重不一樣。這方面的論文已經很多了,重點關注一下image/video caption。相反的,channel attention就是對每個C,在channel維度上,學習到不同的權重,平面維度上權重相同。spatial 和 channel attention可以理解爲關注圖片的不同區域和關注圖片的不同特徵。channel attention寫的最好的一篇論文個人感覺是SCA-CNN

網絡架構上,Squeeze and Excitation Network就是channel attention的典型代表,主要思想是卷積網絡的卷積核所代表的特徵之間存在冗餘,他們起了個名字叫feature recalibration,可以看作是在不影響性能的前提下減少卷積核數量是等效的。 
patial transformer networks (STN) 是之後將attention用於物體識別比較有名的一篇文章,在一些現實應用中仍被使用。再如residual attention network.

attention機制聽起來高達上,其實就是學出一個權重分佈,再拿這個權重分佈施加在原來的特徵之上,就可以叫做attention。簡單來說: 
(1)這個加權可以是保留所有分量均做加權(即soft attention);也可以是在分佈中以某種採樣策略選取部分分量(即hard attention)。

(3)這個加權可以作用在空間尺度上,給不同空間區域加權;也可以作用在channel尺度上,給不同通道特徵加權;甚至特徵圖上每個元素加權。 
(4)這個加權還可以作用在不同時刻歷史特徵上,如Machine Translation,以及我前段時間做的視頻相關的工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章