论文阅读笔记《Few-Shot Learning with Global Class Representations》
小樣本學(xué)習(xí)&元學(xué)習(xí)經(jīng)典論文整理||持續(xù)更新
核心思想
??本文提出一種基于度量學(xué)習(xí)的小樣本學(xué)習(xí)算法。與其他算法將訓(xùn)練集分成基礎(chǔ)類別和新類別,進(jìn)行兩個階段的訓(xùn)練方式不同,本文將包含大量樣本的基礎(chǔ)類別和包含少量樣本的新類別合在一起進(jìn)行訓(xùn)練,得到每個類別的表征(原型)稱之為全局類別表征(Global Class Representations,GCR)。然后對于每個Episode中的支持集樣本得到對應(yīng)的Episode類別表征(Episode Class Representations,ECR),利用一個稱之為登記模塊(Registration Module)的組件,從全局類別表征中選擇出與當(dāng)前Episode類別表征最相近的 n n n個類別表征( n n n表示支持集中包含的類別數(shù)目)。最后根據(jù)查詢集樣本與 n n n個類別表征之間的歐氏距離實現(xiàn)分類預(yù)測。算法的實現(xiàn)方法如下圖所示
??如圖所示,支持集中既包含基礎(chǔ)類別,又包含新類別樣本,但二者樣本數(shù)量極不平衡,新類別僅包含少量樣本。為了解決這一問題,作者提出了兩個解決方法:樣本合成與Episode采樣。樣本合成就是一個數(shù)據(jù)增強(qiáng)的過程,他也分成兩個步驟:第一個步驟就是對樣本圖像進(jìn)行隨機(jī)裁剪、隨機(jī)翻轉(zhuǎn)和《Low-Shot Learning from Imaginary Data》中設(shè)計的數(shù)據(jù)集擴(kuò)充方法;第二階段是在類別 c j c_j cj?擴(kuò)展得到的 k t k_t kt?個樣本中再抽樣得到 k r k_r kr?個樣本,利用特征提取網(wǎng)絡(luò)得到每個樣本對應(yīng)的特征向量 f i f_i fi?,然后在[0,1]中隨機(jī)采樣 k r k_r kr?個值 v i v_i vi?作為權(quán)重,對 f i f_i fi?進(jìn)行加權(quán)求和得到類別 c j c_j cj?中的新樣本 r c j r_{c_j} rcj??,計算過程如下
??Episode采樣就是先從所有的類別(基礎(chǔ)類別+新類別)中選擇出 n t r a i n n_{train} ntrain?個類別 C t r a i n C_{train} Ctrain?,然后對于 C t r a i n C_{train} Ctrain?中的每個類別再選擇出 n s n_s ns?個樣本作為支持集,選出 n q n_q nq?個樣本作為查詢集。因為對于新類別其樣本數(shù)量可能不夠,所以要先按照前面介紹的樣本合成方法,先把樣本數(shù)量擴(kuò)充到 n s + n q n_s+n_q ns?+nq?個再進(jìn)行劃分。
??劃分好支持集和查詢集后,對每個支持集中的樣本計算Episode類別表征(ECR),ECR的計算方法也有兩種,對于基礎(chǔ)類別,直接計算樣本特征向量的平均值(和PN一樣)作為ECR;對于新類別,將樣本合成中得到的新樣本 r c j r_{c_j} rcj??作為ECR。然后將ECR和全局類別表征GCR一起輸入到登記模塊(Registration Module)中。等等!全局類別表征GCR是從哪來的?全局類別表征的初始值是所有類別的樣本對應(yīng)特征向量的平均值,而后會隨著訓(xùn)練進(jìn)行更新。假設(shè)基礎(chǔ)類別+新類別一共有100種,那么就應(yīng)該有對應(yīng)的100個GCR。登記模塊利用ECR和每個GCR之間的相似性,從GCR中選出 n t r a i n n_{train} ntrain?個(與ECR的數(shù)量相同)類別表征 ξ i \xi_i ξi?用于分類預(yù)測, ξ i \xi_i ξi?的計算方法如下
其中 r c i r_{c_i} rci??表示類別 c i c_i ci?對應(yīng)的ECR, g c j g_{c_j} gcj??表示類別 c j c_j cj?對應(yīng)的GCR, θ , ? \theta ,\phi θ,?分別表示ECR和GCR的嵌入式函數(shù),二者結(jié)構(gòu)相同都是一個帶有ReLU和BN的全連接層。選擇出當(dāng)前支持集對應(yīng)的全局類別表征 ξ \xi ξ后,就能夠?qū)Σ樵兗N的樣本 x k x_k xk?進(jìn)行類別預(yù)測了,先計算樣本 x k x_k xk?對應(yīng)的特征值 F ( x k ) F(x_k) F(xk?)與每個類別表征 ξ i \xi_i ξi?之間的歐式距離,然后在選擇出最近鄰。
實現(xiàn)過程
網(wǎng)絡(luò)結(jié)構(gòu)
??特征提取網(wǎng)絡(luò)采用4-Conv結(jié)構(gòu)。
損失函數(shù)
??損失函數(shù)包含兩個部分登記損失和分類損失,計算過程如下
其中
訓(xùn)練策略
??整個訓(xùn)練過程如下
值得注意的是特征提取網(wǎng)絡(luò) F F F要在基礎(chǔ)類別上進(jìn)行一個預(yù)訓(xùn)練作為初始化,GCR的初始化也是利用初始化后的 F F F對所有樣本計算特征向量,再對每個類別取平均值得到的。
算法推廣
??本算法可以直接推廣到廣義小樣本學(xué)習(xí)中,即測試集中既包含新類別樣本也包含基礎(chǔ)類別樣本。
創(chuàng)新點
- 提出了全局類別表征的概念,利用注冊模塊從中選取對應(yīng)的類別表征進(jìn)行分類預(yù)測
- 設(shè)計了一種樣本合成的方法,用于解決樣本數(shù)量不平衡的問題
算法評價
??本文最重要的改進(jìn)應(yīng)該就是消除了基礎(chǔ)類別和新類別之間的差別,訓(xùn)練集中既包含基礎(chǔ)類別樣本,又包含新類別樣本。但如果直接把新類別樣本添加到訓(xùn)練集中,在采用普通的訓(xùn)練方式(如PN),則會由于新類別樣本太少,而模型會忽視這部分樣本。因此作者提出的樣本合成和利用ECR從GCR中選擇類別表征等一系列操作,都是為了消除樣本數(shù)量的不平衡問題。另一方面本文并不是屬于直推學(xué)習(xí)類型的,因為直推學(xué)習(xí)是指在訓(xùn)練階段,把不帶有標(biāo)簽的測試圖片也加入到訓(xùn)練集中,和本文的方法還是存在很大差別的。
如果大家對于深度學(xué)習(xí)與計算機(jī)視覺領(lǐng)域感興趣,希望獲得更多的知識分享與最新的論文解讀,歡迎關(guān)注我的個人公眾號“深視”。
總結(jié)
以上是生活随笔為你收集整理的论文阅读笔记《Few-Shot Learning with Global Class Representations》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 然后查看服务器运行情况,netstat命
- 下一篇: debezium集成Oralce攻略(上