2019.01.25
SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
Thomas N. Kipf, et al.
發(fā)表于ICLR2017,似乎從這篇paper開始很多人開始改進(jìn)和應(yīng)用GCN,GCN相關(guān)的課題也變得很火爆,目前引用量已經(jīng)400多了。
主要思想:優(yōu)化圖卷積,通過切比雪夫多項(xiàng)式近似,不需要做特征分解和矩陣乘法,降低復(fù)雜度。

2019.01.26
Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs
Xiaolong Wang, et al.
發(fā)表于CVPR2018,作者Xiaolong Wang
主要思想:通過GCN學(xué)出每一類(category)的分類器參數(shù)向量,在pretrained CNN features上進(jìn)行二分類的預(yù)測(cè)。
GCN中每個(gè)node代表一個(gè)category,node對(duì)應(yīng)的特征向量為一個(gè)二分類分類器的參數(shù)向量,相當(dāng)于邏輯回歸,基于pretrained CNN features分類輸入圖片是否屬于該category。訓(xùn)練GCN時(shí),輸入的node特征是每個(gè)category的semantic embedding vector,即使某些類沒有訓(xùn)練樣本,也能得到semantic embedding vector。之后經(jīng)過6層GCN layer的學(xué)習(xí),將semantic embedding vector轉(zhuǎn)換為classifier weight vector,與有g(shù)round-truth的某些類的classifier weight vector算loss,經(jīng)過反傳不斷優(yōu)化后,學(xué)出沒有訓(xùn)練樣本的category的classifier weight vector,從而進(jìn)行zero-shot recognition。

2019.01.27
Densely Connected Convolutional Networks
Gao Huang, et al.
CVPR2017 Best Paper,很厲害了。
主要思想:每?jī)蓪又g都有連接,同時(shí)每層的通道數(shù)都變少,相連接的層的通道數(shù)concat起來,中間還用了bottleneck降低計(jì)算量。因?yàn)槊績(jī)蓪娱g都有連接,因此深層的監(jiān)督信息可以比較好地反傳到淺層去;同時(shí)深層特征也融合了所有淺層特征,表達(dá)能力得到增強(qiáng)。
作者的解釋:在設(shè)計(jì)DenseNet時(shí),我們讓網(wǎng)絡(luò)中的每一層都直接與其前面的層相連,實(shí)現(xiàn)特征的重復(fù)利用;同時(shí)把網(wǎng)絡(luò)的每一層設(shè)計(jì)得特別「窄」,即只學(xué)習(xí)非常少的特征圖(最極端情況就是每一層只學(xué)習(xí)一個(gè)特征圖),達(dá)到降低冗余性的目的。這兩點(diǎn)也是 DenseNet 與其他網(wǎng)絡(luò)最主要的不同。需要強(qiáng)調(diào)的是,第一點(diǎn)是第二點(diǎn)的前提,沒有密集連接,我們是不可能把網(wǎng)絡(luò)設(shè)計(jì)得太窄的,否則訓(xùn)練會(huì)出現(xiàn)欠擬合(under-fitting)現(xiàn)象,即使 ResNet 也是如此。

2019.01.27
Non-local Neural Networks
Xiaolong Wang, et al.
發(fā)表于CVPR2018,Xiaolong Wang的另一篇。
主要思想:普通CNN堆疊卷積層不能夠很好地捕捉長(zhǎng)程依賴(long range dependency),因此本文提出一種self-attention的方法,對(duì)于特征圖中每個(gè)像素點(diǎn),都用其他所有像素點(diǎn)的變換結(jié)果做加權(quán)求和,歸一化后作為該像素點(diǎn)的新特征,相當(dāng)于利用同一張圖片中的其他像素點(diǎn)來增強(qiáng)當(dāng)前像素點(diǎn)。
像素點(diǎn)之間的權(quán)重用函數(shù)f來衡量,函數(shù)g用來對(duì)原先的特征做線性變換。f和g的具體實(shí)現(xiàn)可以做很多文章,好幾篇論文的思路其實(shí)都是利用self-attention機(jī)制,用圖片中其他區(qū)域來增強(qiáng)當(dāng)前區(qū)域,只不過用哪些區(qū)域,區(qū)域間的權(quán)重如何計(jì)算,如何對(duì)區(qū)域特征做變換,就有很多可以創(chuàng)新的地方。比如某幾篇論文中就將CNN特征圖變換成Graph特征,也就是把CNN特征圖中的區(qū)域變成了Graph中的node,使用GCN對(duì)每個(gè)node都利用其他node做增強(qiáng)。區(qū)域之間的權(quán)重(即node之間的edge)可以是外部knowledge graph的edge,也可以是學(xué)出來的edge (以鄰接矩陣的形式表示)。


2019.01.29
Videos as Space-Time Region Graphs
Xiaolong Wang, et al.
發(fā)表于ECCV2018,作者還是Xiaolong Wang,把GCN用在視頻動(dòng)作識(shí)別上。
主要思想:將視頻表示為graph數(shù)據(jù),具體操作是將T幀視頻數(shù)據(jù)輸入3D CNN中,輸出T x H x W x d的特征圖,在每一幀的特征圖上使用RPN生成RoI,再進(jìn)行RoI Align和Average Pooling,將每個(gè)RoI表示為d維vector。將T幀所有的N個(gè)RoI表示為graph的node,node feature即為d維vector。至于node之間的edge,有兩種表示方式:
1. Similarity Graph
計(jì)算T幀全部N個(gè)RoI中兩兩之間的相似度,該相似度值經(jīng)歸一化后即為用來表示Similarity Graph的鄰接矩陣(可看成node間edge的權(quán)重);
此圖能夠表示所有幀中所有物體間的關(guān)系,外形相似或語義相關(guān)的物體即使相隔很多幀,也能連上置信度高的邊,就可以建模long range dependency和object state change。原文中對(duì)此圖的解釋如下:
(i) Similarity Relations: regions which have similar appearance or semantically related are connected together. With similarity relations, we can model how the states of the same object change and the long range dependencies between any two objects in any frames.
2. Spatial-Temporal Graph
(1)forward graph:計(jì)算第t幀中第i個(gè)RoI和第t+1幀中所有RoI(用j來索引)的IoU,若IoU大于0,則建立node i到node j的有向邊;
(2)backward graph:計(jì)算第t+1幀中第j個(gè)RoI和第t幀中所有RoI(用i來索引)的IoU,若IoU大于0,則建立node j到node i的有向邊。
所謂Spatial-Temporal Graph(時(shí)空?qǐng)D),就是把相鄰幀中在空間和時(shí)間上都相鄰的物體連上邊,從而一定程度上建模human-object relation和object-object relation。原文中對(duì)此圖的解釋如下:
(ii) Spatial-Temporal Relations: objects which overlap in space and close in time are connected together via these edges. With spatial-temporal relations, we can capture the interactions between nearby objects as well as the temporal ordering of object state changes.
將視頻數(shù)據(jù)表示為Graph后,就可以執(zhí)行Graph Convolution,不過本文方法中有多個(gè)graph,因此在組合多個(gè)圖上還有一些修改,最后是采用了兩個(gè)分支各L層graph convolution,在最后的feature map上相加。
方法的整體框架圖如下:

Connecting GCN and Non-local Net
文中在此節(jié)推出GCN的傳播公式和Non-local的公式很像,因此在GCN的第一層也對(duì)node feature做了一次卷積來模仿Non-local,并說GCN和Non-local是互補(bǔ)的。
個(gè)人理解:
GCN和Non-local實(shí)際上是在不同的空間中做了同樣的事情。
Non-local在Grid數(shù)據(jù)上對(duì)每個(gè)pixel,都用其他pixel特征的加權(quán)求和來增強(qiáng)該pixel的特征,所謂權(quán)重就可以看成是pixel之間的edge或者relation;
而GCN是在Graph數(shù)據(jù)上對(duì)每個(gè)node,都用其他與之相連的node特征的加權(quán)求和來增強(qiáng)該node的特征,所謂權(quán)重就是node間edge的權(quán)重,也可以看成node之間的relation。
總的來說,都是一種self-attention的機(jī)制,用某個(gè)數(shù)據(jù)的其他部分來增強(qiáng)當(dāng)前部分,從而捕捉相隔較遠(yuǎn)的區(qū)域之間的關(guān)系。
How to construct graph
想要把GCN應(yīng)用在CV任務(wù)上,一個(gè)重要的創(chuàng)新點(diǎn)就是如何把Image或Video表示成Graph。有些文章直接把CNN提取的特征圖通過矩陣變換表示成Graph,比較暴力,而本文利用RoI來作為Graph的node,比較新穎,相當(dāng)于是把object作為graph node。
本文作者Xiaolong Wang的另一篇paper 《Zero-shot recognition》是將圖片的類別(category)作為graph node,node feature是分類器的weight vector,進(jìn)而實(shí)現(xiàn)沒有訓(xùn)練樣本的類別的分類,這種構(gòu)建graph的方式也比較機(jī)智。
而Xiaolong大佬的Non-local Net,個(gè)人覺得相當(dāng)于把CNN特征圖上每個(gè)pixel當(dāng)成graph node,在grid數(shù)據(jù)上做類似GCN的操作。
2019.01.30
Learning Human-Object Interactions by Graph Parsing Neural Networks
Siyuan Qi, et al.
發(fā)表于ECCV 2018,來自UCLA朱松純教授課題組,使用圖神經(jīng)網(wǎng)絡(luò)來做HOI。
主要思想:使用預(yù)訓(xùn)練的detector檢測(cè)出human和objects作為node,構(gòu)成一個(gè)完整的(Complete)HOI Graph,即任意兩個(gè)node之間都有edge,edge表示human-object interaction。此時(shí)的graph顯然不是最優(yōu)的,需要?jiǎng)h掉某些沒有意義的edge,并預(yù)測(cè)出每個(gè)node的label(即人物關(guān)系對(duì)應(yīng)的action)才能得到最優(yōu)的HOI Graph。這個(gè)從初始圖獲取最優(yōu)圖的過程顯然可以通過迭代的方法實(shí)現(xiàn)。
文中定義了四種函數(shù)來執(zhí)行迭代過程,預(yù)測(cè)最終的action label。
Link Function

Link Function輸入本結(jié)點(diǎn) 的hidden state
(s表示迭代次數(shù))和鄰接結(jié)點(diǎn)
的hidden state
和edge feature
來計(jì)算鄰接矩陣的值
,學(xué)習(xí)一個(gè)soft adjacency matrix,相當(dāng)于學(xué)習(xí)graph的結(jié)構(gòu)。
具體實(shí)現(xiàn)時(shí)采用了一個(gè)或多個(gè)1x1 Conv, 為卷積的參數(shù),
是node和edge的feature matrix,并加入了loss來監(jiān)督graph結(jié)構(gòu)的學(xué)習(xí),實(shí)驗(yàn)證明學(xué)習(xí)graph的結(jié)構(gòu)比固定graph的結(jié)構(gòu)效果要好很多。

Message and Update Function

函數(shù)M聚合本結(jié)點(diǎn)和其鄰接結(jié)點(diǎn)的hidden state以及edge feature,再以鄰接矩陣中的值(表示連通性)作加權(quán)求和得到結(jié)點(diǎn) 的輸入信息
,該加權(quán)求和表示把所有鄰接點(diǎn)的信息都聚合過來。
函數(shù)U利用結(jié)點(diǎn) 的輸入信息
和上一次迭代的hidden state
來更新結(jié)點(diǎn)
的當(dāng)前狀態(tài)
。
具體實(shí)現(xiàn)時(shí),Message Function采用全連接層FC+Concat+Sum,Update Function采用GRU。


Readout Function

結(jié)點(diǎn)v的hidden state迭代至收斂后為 ,將其輸入Readout Function,輸出預(yù)測(cè)的action label
,具體實(shí)現(xiàn)時(shí)使用了全連接層FC,參數(shù)為
。

Framework

Comments
Human-Object Interaction的問題主要就是如何預(yù)測(cè)出人與物之間的關(guān)系,因?yàn)槿撕臀锿ㄟ^detector就可以檢測(cè)出,而預(yù)測(cè)關(guān)系其實(shí)就是預(yù)測(cè)一個(gè)動(dòng)作(action)。本文所采用的方法就是檢測(cè)出所有的人和物后,先構(gòu)造一個(gè)全連接的graph,然后通過迭代優(yōu)化,更新edge和node的feature,相當(dāng)于不斷學(xué)習(xí)人與物之間的關(guān)系,迭代至收斂后給每個(gè)node預(yù)測(cè)一個(gè)action label,獲得HOI關(guān)系。
作者說本文的idea借鑒了Message Passing Neural Network,其實(shí)換成Graph Convolutional Network來實(shí)現(xiàn)是不是也可以呢?
另一方面,感覺本文的方法和Scene Graph Generation這篇論文的方法比較相似,貼張圖在下面以供對(duì)比。

2019.01.31
Squeeze-and-Excitation Networks
Jie Hu, et al.
好像是發(fā)表于CVPR2017,是Momenta公司ImageNet 2017 Image Classification競(jìng)賽的奪冠架構(gòu)。
思想其實(shí)很簡(jiǎn)單,就是對(duì)特征圖的每個(gè)channel學(xué)習(xí)一個(gè)權(quán)重再乘回去,表示該channel的重要性,是需要增強(qiáng)它還是抑制它?,F(xiàn)在看來就是一個(gè)比較簡(jiǎn)單的channel-wise attention,但是兩年前做出這個(gè)也是很厲害的~

雖然方法比較簡(jiǎn)單,但是文中做了大量實(shí)驗(yàn),將SE Module以各種方式插入到不同的網(wǎng)絡(luò)中,證明了其泛化能力和有效性。

2019.02.05
Gather-Excite- Exploiting Feature Context in Convolutional Neural Networks
Jie Hu, et al.
2019年的新Paper。SENet思想的泛化版。GE模塊相比于SE模塊,就是把一個(gè)channel一個(gè)權(quán)重(1 x 1 x C)變成了一個(gè)channel上有不同的權(quán)重(H x W x C)的feature map,然后再upsample成原來feature map的大小,乘回去做Attention。
相應(yīng)的操作就從Global Average Pooling變成了不同size和stride的Pooling,這是無參數(shù)的方法,最后的結(jié)果還是Global Average Pooling的效果最好。
若是有參數(shù)的方法,就把pooling變成不同size和stride的Conv,結(jié)果也是當(dāng)卷積為Global Conv時(shí)效果最好。對(duì)比無參數(shù)方法可以發(fā)現(xiàn)當(dāng)增加模型可學(xué)習(xí)的參數(shù)數(shù)量時(shí)效果會(huì)有一定提升。
