28組-Non-local Neural Networks

Motivation: 文章從BM3D去噪算法中的non-local means 和self-attention出發(fā)轻抱,在neural network中考慮不同空間和時(shí)間位置上的特征之間的關(guān)系鹊汛。NL-means去噪與常用的雙線性濾波爽雄、中值濾波等利用圖像局部信息來(lái)濾波不同的是,它利用了整幅圖像來(lái)進(jìn)行去噪灰蛙,以圖像塊為單位在圖像中尋找相似區(qū)域,再對(duì)這些區(qū)域求平均,能夠比較好地去掉圖像中存在的高斯噪聲巧还。non-local在一個(gè)位置的計(jì)算響應(yīng)是輸入特性圖中所有位置的特征的加權(quán)總和。一組位置可以在空間坊秸、時(shí)間或時(shí)空上麸祷,適用于圖像、序列和視頻問(wèn)題褒搔。

圖1 non-local

non-local主要是下面這個(gè)公式:


上式中阶牍,輸入是x(圖片,序列星瘾,視頻 features)走孽,輸出是y,i和j分別代表輸入的某個(gè)(空間琳状,時(shí)間磕瓷,時(shí)空)位置,x_i是一個(gè)向量,維數(shù)跟x的channel數(shù)一樣困食,f是一個(gè)計(jì)算任意兩點(diǎn)相似關(guān)系的函數(shù)边翁,輸出一個(gè)值作為權(quán)重,g函數(shù)計(jì)算j處這個(gè)點(diǎn)的特征陷舅。為了計(jì)算輸出層的一個(gè)點(diǎn)倒彰,需要將輸入的每個(gè)點(diǎn)都考慮一遍,而且考慮的方式很像attention莱睁,輸出的某個(gè)點(diǎn)在原圖上的attention待讳,而mask則是相似性給出。最后C(x)是歸一化項(xiàng)仰剿。

圖2 計(jì)算過(guò)程

以圖像為例创淡,為了簡(jiǎn)化問(wèn)題,作者簡(jiǎn)單地設(shè)置g函數(shù)實(shí)現(xiàn)時(shí)二維用1x1卷積南吮,三維用1x1x1卷積琳彩,w均為待學(xué)習(xí)的參數(shù)。相似性度量函數(shù)f的選擇有多種:


圖3 各種f函數(shù)

Embedded Gaussian的例子:


實(shí)現(xiàn)中可以用softmax歸一化部凑,non-local可以轉(zhuǎn)換為:


為了能讓non-local作為一個(gè)組件直接插入任意的神經(jīng)網(wǎng)絡(luò)中露乏,同時(shí)不破壞模型原有的操作。作者把non-local設(shè)計(jì)成residual block的形式涂邀,并且輸出跟原圖大小一致瘟仿。Wz為1x1的卷積,這里采用bottleneck形式降維一半比勉,最后利用1x1卷積升維至輸入維度:



具體實(shí)現(xiàn)

用for循環(huán)實(shí)現(xiàn)肯定是很慢的劳较。如果在尺寸很大的輸入上應(yīng)用non-local layer,也是計(jì)算量很大的浩聋。后者的解決方案是观蜗,只在高階語(yǔ)義層中引入non-local layer。還可以通過(guò)對(duì)embedding( )的結(jié)果加pooling層來(lái)進(jìn)一步地減少計(jì)算量衣洁。

對(duì)于前者墓捻,注意到f的計(jì)算可以化為矩陣運(yùn)算,我們實(shí)際上可以將整個(gè)non-local化為矩陣乘法運(yùn)算+卷積運(yùn)算坊夫。如下圖所示毙替,其中oc為output_channels,卷積操作的輸出filter數(shù)量践樱。f(.)的操作是每個(gè)點(diǎn)的特征向量(通道個(gè)數(shù)的維度)進(jìn)行內(nèi)積,時(shí)空信息保留了下來(lái)凸丸,輸出還是TxHxW大小拷邢。

圖4 non-local計(jì)算流程

圖中T,H,W代表輸入特征的維度。其中T是對(duì)于視頻幀數(shù)屎慢,特征圖尺寸為T(mén)×H×W×1024 也就是有 1024 個(gè)通道瞭稼。 f函數(shù)采用的是公式3中的Embedded Gaussian忽洛。藍(lán)色框表示1×1×1 的卷積操作,這種結(jié)構(gòu)為512通道的“瓶頸”(bottleneck)結(jié)構(gòu)环肘。對(duì)于分割或檢測(cè)任務(wù)欲虚,1x1的卷積壓縮通道數(shù),形成瓶頸結(jié)構(gòu)(bottleneck)悔雹「炊撸或者在f(.)對(duì)應(yīng)的1x1卷積之后使用pooling來(lái)減小H,W,即采樣一部分的j而不是所有的j進(jìn)行信息融合腌零。

與全連接層的關(guān)系:

non-local block利用兩個(gè)點(diǎn)的相似性對(duì)每個(gè)位置的特征做加權(quán)梯找,而全連接層則是利用位置相關(guān)的權(quán)重參數(shù)直接對(duì)每個(gè)位置加權(quán)。于是益涧,全連接層可以看成non-local block的一個(gè)特例:

1. 任意兩點(diǎn)的相似性?xún)H跟兩點(diǎn)的位置有關(guān)锈锤,而與兩點(diǎn)的具體feature無(wú)關(guān),即 f(xi,xj)=wij

2. g是identity函數(shù)闲询, g(x)=x

3. 歸一化系數(shù)為1久免。歸一化系數(shù)跟輸入無(wú)關(guān),全連接層不能處理任意尺寸的輸入扭弧。

Pytorch 復(fù)現(xiàn)代碼:

??????非局部神經(jīng)網(wǎng)絡(luò)在計(jì)算上也比三維卷積神經(jīng)網(wǎng)絡(luò)更加經(jīng)濟(jì)阎姥。作者在 Kinetics 和 Charades 數(shù)據(jù)集上做了全面的對(duì)比研究。僅使用 RGB 數(shù)據(jù)寄狼,不使用任何高級(jí)處理(例如光流丁寄、多尺度測(cè)試),就取得了與這兩個(gè)數(shù)據(jù)集上競(jìng)賽冠軍方法相當(dāng)乃至更好的結(jié)果泊愧。

??????為了證明非局部運(yùn)算的通用性伊磺,作者在 COCO 數(shù)據(jù)集上進(jìn)行了物體檢測(cè)、實(shí)例分割和人體姿態(tài)關(guān)鍵點(diǎn)檢測(cè)的實(shí)驗(yàn)删咱。他們將非局部運(yùn)算模塊與 Mask R-CNN 結(jié)合屑埋,新模型在計(jì)算成本稍有增加的情況下,在所有三個(gè)任務(wù)中都取得了最高的精度痰滋。由此表明非局部模塊可以作為一種通用的基本組件摘能,在設(shè)計(jì)深度神經(jīng)網(wǎng)絡(luò)時(shí)使用。


學(xué)到的不同幀不同特征點(diǎn)之間的強(qiáng)關(guān)聯(lián)

實(shí)驗(yàn):

對(duì)于視頻分類(lèi)任務(wù)整個(gè)視頻平均取10個(gè)clip敲街,計(jì)算softmax值后平均团搞。8卡,一卡8個(gè)clip多艇,minibatch為64逻恐,輸入clip為32幀。


Reference

Wang X, Girshick R, Gupta A, et al. Non-local Neural Networks[J].CVPR 2018.

Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]. NIPS 2017.

知乎:https://zhuanlan.zhihu.com/p/33345791

Pytorch:https://github.com/AlexHex7/Non-local_pytorch

引自知乎:

??????cnn一開(kāi)始是面向目標(biāo)實(shí)體識(shí)別的任務(wù)的。它就是要模擬人的認(rèn)知方式复隆,達(dá)到一個(gè)從局部到宏觀的層次化認(rèn)知流程拨匆。所以每一層的卷積核就沒(méi)有設(shè)計(jì)過(guò)大,底層的去捕捉輪廓信息挽拂,中層的組合輪廓信息惭每,高層的組合全局信息。但對(duì)于序列化的任務(wù)亏栈,這種思路就不一定能學(xué)到充分的需要的信息台腥。

???????識(shí)別揮拍這個(gè)動(dòng)作,僅僅利用傳統(tǒng)cnn卷積核關(guān)注手腕周?chē)男畔⑹遣粔虻穆仄耍覀冃枰私獾饺说氖滞蟾母觳怖谰簟⒓绨颉⑾ドw以及腳發(fā)生了哪些一系列的相對(duì)位移才能判斷出揮拍動(dòng)作镇饮。

卷積核真的只關(guān)注于局部嗎蜓竹?如果只看一層,那答案就是是的储藐。但縱觀整個(gè)網(wǎng)絡(luò)俱济,不同的全局信息最終被綜合,但由于sampling損失了大量信息钙勃,就沒(méi)有non-local效果明顯蛛碌。所以傳統(tǒng)cnn不是很local,但是信息逐層傳遞丟失太多以致于不能有期待的效果辖源。

1蔚携、單一的non-local block加在較淺層次效果顯著。

高層次丟失的信息太多了克饶,找不到細(xì)小的遠(yuǎn)距離的聯(lián)系酝蜒,太模糊了。

2矾湃、多個(gè)non-local block加入亡脑,也就是加深non-local特性,有一定效果提升但不會(huì)很明顯邀跃。

既然容易起作用的是在低層加霉咨,那么使勁加深意義不大,加多了這種東西就要考慮梯度消失和引入噪聲拍屑。畢竟你把背景全都扔進(jìn)來(lái)算途戒。

3、時(shí)空同時(shí)non-local比單一時(shí)間維度或單一空間維度效果都要好僵驰。

4棺滞、non-local比三維cnn要好裁蚁。

這是有人會(huì)問(wèn),non-local這么吊怎么不把卷積層全都替換掉继准?

肯定不行的!你要依賴(lài)小卷積核去捕捉主體信息矮男,同時(shí)用他的block捕捉全局信息移必,兩者相輔相成才有好的效果。在視頻變長(zhǎng)以后毡鉴,non-local的trick的提升變小了崔泵。因?yàn)樵跁r(shí)間維度上,這些短視頻幀數(shù)太短猪瞬,時(shí)間維度上的小卷積得到的信息不足憎瘸,劣勢(shì)明顯。時(shí)間變長(zhǎng)了陈瘦,non-local也不能handle這么大的信息量了幌甘,損失一些信息的小卷積反而不那么差勁了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市痊项,隨后出現(xiàn)的幾起案子锅风,更是在濱河造成了極大的恐慌,老刑警劉巖鞍泉,帶你破解...
    沈念sama閱讀 222,946評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件皱埠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咖驮,警方通過(guò)查閱死者的電腦和手機(jī)边器,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)托修,“玉大人忘巧,你說(shuō)我怎么就攤上這事【魇颍” “怎么了袋坑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,716評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)眯勾。 經(jīng)常有香客問(wèn)我枣宫,道長(zhǎng),這世上最難降的妖魔是什么吃环? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,222評(píng)論 1 300
  • 正文 為了忘掉前任也颤,我火速辦了婚禮,結(jié)果婚禮上郁轻,老公的妹妹穿的比我還像新娘翅娶。我一直安慰自己文留,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布竭沫。 她就那樣靜靜地躺著燥翅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜕提。 梳的紋絲不亂的頭發(fā)上森书,一...
    開(kāi)封第一講書(shū)人閱讀 52,807評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音谎势,去河邊找鬼凛膏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛脏榆,可吹牛的內(nèi)容都是我干的猖毫。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼须喂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吁断!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起镊折,我...
    開(kāi)封第一講書(shū)人閱讀 40,189評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胯府,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后恨胚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體骂因,經(jīng)...
    沈念sama閱讀 46,712評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評(píng)論 3 343
  • 正文 我和宋清朗相戀三年赃泡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寒波。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,926評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡升熊,死狀恐怖俄烁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情级野,我是刑警寧澤页屠,帶...
    沈念sama閱讀 36,580評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蓖柔,受9級(jí)特大地震影響辰企,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜况鸣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評(píng)論 3 336
  • 文/蒙蒙 一牢贸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧镐捧,春花似錦潜索、人聲如沸臭增。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,750評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)誊抛。三九已至,卻和暖如春整陌,著一層夾襖步出監(jiān)牢的瞬間芍锚,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,867評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工蔓榄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人默刚。 一個(gè)月前我還...
    沈念sama閱讀 49,368評(píng)論 3 379
  • 正文 我出身青樓甥郑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親荤西。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澜搅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容