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

又到了更新論文閱讀的時(shí)間啦!
十月中旬了 還是毫無思緒毫無進(jìn)展的科研卑微人士真的心態(tài)越來越好了。

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

本篇文章只記錄個(gè)人閱讀論文的筆記,具體翻譯、代碼等不展開,詳細(xì)可見上述的鏈接.

Background

看了挺多小樣本文章 背景其實(shí)挺相似的 千篇一律
大概是這個(gè)套路 深度學(xué)習(xí)模型在樣本多的情況下取得顯著成績→實(shí)際應(yīng)用沒有那么多理想的數(shù)據(jù)即數(shù)據(jù)少(小樣本)→借助人根據(jù)少量的例子就能記住區(qū)分一些東西的能力啟發(fā),將小樣本學(xué)習(xí)引入人工智能上。
再來看看這篇文章:
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。
端到端的監(jiān)督學(xué)習(xí)在計(jì)算機(jī)視覺、語音或機(jī)器翻譯任務(wù)中非常成功,這要?dú)w咎于優(yōu)化技術(shù)的改進(jìn),更大的數(shù)據(jù)集和深度卷積或遞歸結(jié)構(gòu)的流線型設(shè)計(jì)。盡管取得了這樣的成功,但并沒有涵蓋其他一些可能的方面,例如小樣本學(xué)習(xí)。

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.我們提出了一個(gè)簡單的基于圖的小樣本學(xué)習(xí)模型,該模型實(shí)現(xiàn)了一種任務(wù)驅(qū)動的消息傳遞算法。 采用的體系結(jié)構(gòu)是端到端的訓(xùn)練。
2.我們在Omniglot和Mini-Imagenet任務(wù)上用較少的參數(shù)匹配最先進(jìn)的性能。
3.我們將算法推廣到了半監(jiān)督和主動學(xué)習(xí)機(jī)制中的模型。

Related Work

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

Model

先上圖,如下圖所示:


分步驟解釋:
1.輸入:

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

可以看到圖卷積層并不會改變圖模型的結(jié)構(gòu),只改變節(jié)點(diǎn)上向量的值(由不同顏色表示),而鄰接矩陣的計(jì)算,就會更新兩個(gè)節(jié)點(diǎn)之間的連接權(quán)重,因此圖模型的結(jié)構(gòu)也發(fā)生了變換。
( 在一般圖中,網(wǎng)絡(luò)深度被選擇為圖直徑的順序,以便所有節(jié)點(diǎn)從整個(gè)圖中獲取信息。然而,在本文中 由于圖是密集連接的,深度被簡單地解釋為給模型更多的表現(xiàn)力)

損失函數(shù)
采用交叉熵?fù)p失函數(shù)

算法推廣
1.半監(jiān)督學(xué)習(xí)
將表示分類的獨(dú)熱向量 h(l)改為K個(gè)單純型的均勻分布,假設(shè)有 K個(gè)類別,每個(gè)類別對應(yīng)的值都為1/K
2.主動學(xué)習(xí)
需要讓網(wǎng)絡(luò)自己決定是否需要標(biāo)簽信息,實(shí)現(xiàn)方法是在GNN的第一個(gè)層之后,對所有無標(biāo)簽樣例對應(yīng)的節(jié)點(diǎn)增加一個(gè)Softmax注意力層

為了保證每次只詢問一張圖片,因此令 Attention中只有一個(gè)值為1,其余值均為0,測試時(shí)是選擇最大值置為1,訓(xùn)練時(shí)則是基于多項(xiàng)式概率隨機(jī)選擇一個(gè)值置為1,得到 Attention' 。然后令A(yù)ttention' A與標(biāo)簽向量相乘,就得到了對應(yīng)的獨(dú)熱向量

Experiment

Datasets
Omniglot/Mini-Imagenet
Result

題外話總結(jié)

本文實(shí)際上是將原型網(wǎng)絡(luò),Matching Network等一系列采用度量學(xué)習(xí)思路的網(wǎng)絡(luò)推廣到了非歐空間,相關(guān)性的度量方式不再局限于余弦距離,歐式距離等計(jì)算方式,而是利用圖神經(jīng)網(wǎng)絡(luò)來描述這一關(guān)系。本文的圖神經(jīng)網(wǎng)絡(luò)是用節(jié)點(diǎn)來存儲更新權(quán)重的,之前還看過一篇利用邊的(《Edge-Labeling Graph Neural Network for Few-shot Learning》)算是這篇的改進(jìn),可以參考。但利用圖神經(jīng)網(wǎng)絡(luò)還是存在當(dāng)信息樣本多了之后計(jì)算復(fù)雜度和性能的弊端需要考慮。


一篇博客寫兩天 我太懶了吧
沖沖沖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容