論文閱讀《FEW-SHOT LEARNING WITH GRAPH NEURAL NETWORKS》

  • 2020 年 10 月 17 日
  • AI

又到了更新論文閱讀的時間啦!
十月中旬了 還是毫無思緒毫無進展的科研卑微人士真的心態越來越好了。

論文名稱:Few-Shot Learning with Graph Neural Networks
論文地址://arxiv.org/pdf/1711.04043.pdf
論文解讀參考://blog.csdn.net/qq_36104364/article/details/106257218
//mp.weixin.qq.com/s/YVMhqhURqGmJ5D26pXPjQg
論文源碼://github.com/vgsatorras/few-shot-gnn
程式碼詳解://blog.csdn.net/StreamRock/article/details/102808091

本篇文章只記錄個人閱讀論文的筆記,具體翻譯、程式碼等不展開,詳細可見上述的鏈接.

Background

看了挺多小樣本文章 背景其實挺相似的 千篇一律
大概是這個套路 深度學習模型在樣本多的情況下取得顯著成績→實際應用沒有那麼多理想的數據即數據少(小樣本)→藉助人根據少量的例子就能記住區分一些東西的能力啟發,將小樣本學習引入人工智慧上。
再來看看這篇文章:
Supervised end-to-end learning has been extremely successful in computer vision, speech, or machine translation tasks, thanks to improvements in optimization technology, larger datasets and streamlined designs of deep convolutional or recurrent architectures. Despite these successes, this learning setup does not cover many aspects where learning is nonetheless possible and desirable.One such instance is the ability to learn from few examples, in the so-called few-shot learning tasks。
端到端的監督學習在電腦視覺、語音或機器翻譯任務中非常成功,這要歸咎於優化技術的改進,更大的數據集和深度卷積或遞歸結構的流線型設計。儘管取得了這樣的成功,但並沒有涵蓋其他一些可能的方面,例如小樣本學習。

Our Contributions

a.We cast few-shot learning as a supervised message passing task which is trained end-to-end
using graph neural networks.
b.We match state-of-the-art performance on Omniglot and Mini-Imagenet tasks with fewer
parameters.
c.We extend the model in the semi-supervised and active learning regimes.
1.我們提出了一個簡單的基於圖的小樣本學習模型,該模型實現了一種任務驅動的消息傳遞演算法。 採用的體系結構是端到端的訓練。
2.我們在Omniglot和Mini-Imagenet任務上用較少的參數匹配最先進的性能。
3.我們將演算法推廣到了半監督和主動學習機制中的模型。

Related Work

1.One-shot learning
2.Graph-structured data

Model

先上圖,如下圖所示:


分步驟解釋:
1.輸入:

這邊輸入有三個數據集,其中s為有標籤的樣本數量,r為無標籤的樣本數量,t為待分類的樣本數量,其中所有x獨立同分布。
2.將輸入\mathcal{T}轉化為全連接圖G_\mathcal{T} =(V,E) ,其中 v_a ∈ V代表圖片 x(包括有標籤和無標籤的)。
3.初始節點特徵的構建(Construction of Initial Node Features):也就是將輸入集合映射到節點特徵
將支援集圖片 和查詢集圖片輸入到嵌入式網路 ϕ ( x )(為CNN) 中轉化為對應的特徵向量,將特徵向量與表示標籤的獨熱向量(one-hot) h(l)級聯起來
4.將級聯的結果共同輸入GNN
GNN是由許多節點和邊構成的圖模型,在本文中,每一個節點都代表一幅輸入的影像,而每個邊上的權重就表示兩幅圖之間的關係(可以理解為距離或者相似程度)。本文採用的是稠密連接的圖,因此每兩個輸入圖片之間都有邊連接起來,鄰接矩陣 B 就儲存了任意兩個節點之間的權重值。本文受資訊傳遞演算法的啟發,採用學習的方式獲取兩個節點之間的權重值,計算方法如下:
上式也是邊特徵,
MLP是多層感知機,輸入兩個節點之間的絕對值差,輸出對應的權重值。 
將計算得到的 \tilde{A}^{(k)}_{i,j} 的每一行都進行softmax處理,保證每個節點與其他所有節點之間的權重之和為1,然後得到鄰接矩陣B。之後就可以利用圖卷積神經網路(GCN)計算得到下一層網路,計算如下
每一個圖卷積模組的計算過如下圖所示,在訓練過程中還需要將每層網路的輸入 V^{(k)}和Gc block的輸出級聯起來構成下級網路輸入V^{(k+1)},測試時不需要這步操作

可以看到圖卷積層並不會改變圖模型的結構,只改變節點上向量的值(由不同顏色表示),而鄰接矩陣的計算,就會更新兩個節點之間的連接權重,因此圖模型的結構也發生了變換。
( 在一般圖中,網路深度被選擇為圖直徑的順序,以便所有節點從整個圖中獲取資訊。然而,在本文中 由於圖是密集連接的,深度被簡單地解釋為給模型更多的表現力)

損失函數
採用交叉熵損失函數

演算法推廣
1.半監督學習
將表示分類的獨熱向量 h(l)改為K個單純型的均勻分布,假設有 K個類別,每個類別對應的值都為1/K
2.主動學習
需要讓網路自己決定是否需要標籤資訊,實現方法是在GNN的第一個層之後,對所有無標籤樣例對應的節點增加一個Softmax注意力層

為了保證每次只詢問一張圖片,因此令 Attention中只有一個值為1,其餘值均為0,測試時是選擇最大值置為1,訓練時則是基於多項式概率隨機選擇一個值置為1,得到 Attention' 。然後令Attention' A與標籤向量相乘,就得到了對應的獨熱向量

Experiment

Datasets
Omniglot/Mini-Imagenet
Result

題外話總結

本文實際上是將原型網路,Matching Network等一系列採用度量學習思路的網路推廣到了非歐空間,相關性的度量方式不再局限於餘弦距離,歐式距離等計算方式,而是利用圖神經網路來描述這一關係。本文的圖神經網路是用節點來存儲更新權重的,之前還看過一篇利用邊的(《Edge-Labeling Graph Neural Network for Few-shot Learning》)算是這篇的改進,可以參考。但利用圖神經網路還是存在當資訊樣本多了之後計算複雜度和性能的弊端需要考慮。


一篇部落格寫兩天 我太懶了吧
沖沖沖

Tags: