如果將深度學習比作汽車,那資料集就是石油。深度學習對於資料集的依賴是不言而喻的。那麼一個深度學習領域懸而未決的挑戰則是:

如何在較小的資料集上訓練神經網路?

針對這一問題,馬里蘭大學的學者提出了一種以“

進化

”為靈感的訓練方法:

Knowledge Evolution(KE)

。這種名為KE的方法能

像生物進化一樣,巧妙地提升神經網路在小資料集上的效能

。目前作者已經開源了這一方法。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

KE將神經網路用兩種假設進行拆分:擬合假設和重置假設,並透過多次擾動重置假設來迭代擬合假設中知識。這種方法不僅能提升效能,還能以較低的推理成本來獲取一個精簡的神經網路。同時,KE能減少過擬合和資料收集的負擔。不但如此,KE支援各種網路結構和損失函式,還能與殘差卷積網路,以及其他正則化技術(如標籤平滑)等無縫整合。

下面我們將更詳細地介紹這篇論文。

KE的主要貢獻

在本文中,作者嘗試用神經網路複製一個這樣的生物過程:基因編碼了從祖先到後代的遺傳資訊(知識),而基因傳遞將遺傳資訊從父母傳遞至其後代。雖然祖先並不一定具有更好的知識,但是遺傳資訊(知識)在幾代人之間的發展將會促進後代更好的學習曲線。

因此,作者將深度神經網路的知識封裝在一個名為擬合假設的子網路

H^{\triangle}

中,然後將擬合假設的知識從

父母網路

傳遞至其後代,即下一代神經網路。並反覆重複此過程,在後代網路中證明了其效能的顯著提升:

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

如下圖所示,KE將神經網路分為兩個假設(子網路):擬合假設

H^{\triangle}

和重置假設

H^{\nabla}

。透過重新訓練多代網路來進化

H^{\triangle}

中的知識。而每一代都會透過擾亂

H^{\nabla}

內部的權重以鼓勵

H^{\triangle}

學習獨立的表達形式。這種知識進化方法能夠提高神經網路在小資料集上的效能。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

此外,為了降低推理成本,作者提出了一種為CNN量身定製的一種拆分技術,即核心級卷積感知拆分(

ke

rnel-

l

evel-convolutional-aware

s

plitting,KELS)。KELS同時支援CNN和殘差網路,且既不引入超引數也不引入正則項。

知識進化方法詳解

假設一個具有

L

層的深度網路

N

。 網路

N

具有卷積濾波器

F

,批範數

Z

以及權重為

W

,偏置項為

B

的完全連線層。

知識進化(KE)首先從概念上將深度網路N分為兩個互斥假設(子網路):擬合假設

H^{\triangle}

和重置假設

H^{\nabla}

。這些假設由二進位制掩碼

M

概述。

H^{\triangle}

為1,

H^{\nabla}

為0,即

H^{\triangle}=M N

H^{\nabla}=(1-M) N

。 隨後,網路

N

被隨機初始化,即

H^{\triangle}

H^{\nabla}

都被隨機初始化。 訓練

e

N

,並將已訓練的網路稱為第一代

N_{1}

,其中

H_{1}^{\triangle}=M N_{1}

H_{1}^{\nabla}=(1-M) N_{1}

為了學習更好的網路(下一代),作者使用

H_{1}^{\triangle}

重新初始化

網路

N

,然後

重新訓練

N

以學習

N_{2}

。網路

N

使用卷積濾波器

F

和來自

N_{1}

的擬合假設

H_{1}^{\triangle}

中的權重

W

進行

重新初始化

,而網路的剩餘部分

\left(H^{\nabla}\right)

則被隨機初始化。 作者使用哈達瑪積重新初始化每層

l

,如下所示:

F_{l}=M_{l} F_{l}+\left(1-M_{l}\right) F_{l}^{r} \\

類似地,作者透過它們相應的二進位制掩碼重新初始化權重

W_{l}

和偏置

B_{l}

。 網路架構僅在最後一個完全連線層中具有偏差項

\left(B \in R^{\mathbb{C}}\right)

。 因此,對於這些架構,所有偏差項都屬於擬合假設,即

B \subset H^{\triangle}

。並將學習的批規範

 Z

進行無隨機化的跨代傳遞。

重新初始化後,訓練

e

N

以學習第二代

N_{2}

。 為了學習更好的網路,反覆為

g

重新初始化

以及

重新訓練

N

。 透過擬合假設

H^{\triangle}

將知識(卷積濾波器和權重)從一代傳遞至下一代。需要注意的是:

一代網路的貢獻在初始化下一代後立刻結束,即每一代的訓練都是獨立的;

在訓練了新一代後,兩個假設中的權重都會發生變化 ,即

H_{1}^{\triangle} \neq

H_{2}^{\triangle}

H_{1}^{\nabla} \neq H_{2}^{\nabla},

所有網路代都使用精確的超引數,即相同的期數、最佳化器、學習率排程器等)進行訓練。

拆分網路

KE需要進行網路拆分。 作者主要採用了兩種拆分技術:

we

ight-

l

everl

s

plitting(WELS),能用於突出KE通用性;

ke

rnel-

l

evel convolutional-aware

s

plitting(KELS),一種有效的CNN技術。

WELS技術十分簡單:對每一層

l

,二進位制掩碼

M_ {l}

l

分為兩個專有部分:擬合假設

H^{\triangle}

和重置假設

H^{\nabla}

。給定拆分率

0<s_{r}<1

,使用掩碼

M_{l} \in\{0,1\}^{\left|W_{l}\right|}

隨機分配權重

W_{l} \in R^{\left|W_{l}\right|}

,其中

\left|W_{l}\right|

是內部權重的數量,

\operatorname{sum}\left(M_{l}\right)=s_{r} \times\left|W_{l}\right|

。WELS技術支援完全連線,卷積,遞迴以及圖卷積,這也印證了KE的通用性。

雖然KE透過WELS跨代提升了網路效能,但是WELS不能從CNN的連線中受益。因此,作者提出了一種既能提高效能,又能減少在小資料集上的推理成本的拆分技術,即KELS。利用CNN的連線性並引出擬合假設

H^{\triangle}

,對網路進行修剪。用核心遮罩替代加權遮罩,因此為核心級卷積感知分割( KELS)技術。給定一個拆分率

s_{r}

和一個卷積濾波器

F_{l} \in R^{\hat{C}_{o} \times \kappa \times \kappa \times C_{i}}

,KELS引出擬合假設,以將第一個

\left\lceil s_{r} \times C_{i}\right\rceil

核心包括在第一個

\left\lceil s_{r} \times C_{o}\right\rceil

濾波器中,如下圖所示。KELS保證了結果卷積濾波器之間的維度匹配。因此,KELS可以無縫整合在經典CNN(AlexNet和VGG)和具有殘差連線的最新網路架構中。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

知識進化的直覺

為了理解KE,作者給出了不需要KELS技術的兩個互補直覺:Dropout和殘差網路。

Dropout在訓練過程中隨機丟棄神經網路單元,使得神經網路單元減少相互依賴並學習獨立表示。 類似的,在KE中透過在每一代之前隨機初始化重置假設

H^{\nabla}

,我們可以在重新初始化期間丟棄

H^{\nabla}

。這同樣讓

H^{\triangle}

減少對

H^{\nabla}

的依賴,並學習獨立表示。 透過評估各代

H^{\triangle}

的效能驗證了這種直覺,且

H^{\triangle}

的效能隨著代數的增加而增加。如下圖所示:

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

Res-Nets將連續層之間的預設對映設定為身份。但是從一個不同的角度來看,沒有限制網路容量,Res-Nets在某些子網路(殘差連線)中實現零對映。 類似地,KE透過跨代重複使用擬合假設

H^{\triangle}

來實現重置假設

H^{\nabla}

的零對映。 在第一代N1之後,與包含隨機值的

H^{\nabla}

相比,

H^{\triangle}

總是更趨於收斂。 因此,KE促進了新一代網路在

H^{\triangle}

H^{\nabla}

中對前代網路的知識進化。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

對KE進行評估

作者在兩個分類和度量學習這兩個監督任務上對KE進行了評估。分類任務已有研究對深度神經網路在小型資料集上的效能進行了廣泛的探討,因此它提供了嚴格的效能基準。而在度量學習上的評估則突出了KE的靈活性與普遍性。

在分類任務上對KE進行評估

下圖為用帶有KELS的ResNet18進行定量分類評估。

N_g

表示

g^{\text {th }}

網路代的效能。 第一代

N_1

既是KE的基準又是起點。 隨著代數的增加,KE的效能提高。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

下圖為用帶有WELS的DenseNet169進行的定量評估。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

在度量學習任務上對KE進行評估

下圖為使用標準度量學習資料集和架構進行的定量檢索評估。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

消融實驗

(1)Dropout與Res-Net

在VGG11_bn上使用CUB-200進行定量分類評估,下圖顯示了10代密集網路

N

和擬合假設

H^{\triangle}

的效能。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

擬合假設

H^{\triangle}

g=1

處的效能較差,但隨著代數的增加,其效能也會提高。

\widehat{H}^{\triangle}

\widehat{H}^{\nabla}

表示

H^{\triangle}

H^{\nabla}

內部的平均絕對值。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

(2)WELS 與 KELS

在ResNet18上使用Flower-102對KELS和WELS進行100代定量評估。下圖左為密集網路

N

的分類效能,右為擬合假設

H^{\triangle}

的效能。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

(3)拆分率

s_r

的tradeoffs

拆分率

s_r

控制擬合假設的大小; 小的

s_r

會降低推理成本,但是小的

s_r

會減少

H^{\triangle}

的容量。下圖左比較了使用CUB-200和GoogLeNet的兩個拆分率

\left(s_{r}=\{0.5,0.8\}\right)

的10代。兩種分割率都在密集網路

N

上顯著提升了邊際量。但是,下圖右顯示,較大的拆分率

s_{r}=0.8

可以幫助擬合假設

H^{\triangle}

更快地收斂並獲得更好的效能。 因而對於大型資料集,需要大的拆分率才能使擬合假設

H^{\triangle}

的效能具有競爭力。

為了提升在小資料集上的效能,有學者讓神經網路像生物一樣“進化”了|CVPR2021 Oral

論文傳遞門

論文:

https://

arxiv。org/pdf/2103。0515

2。pdf

程式碼:

https://

github。com/ahmdtaha/kno

wledge_evolution