隨著深度神經(jīng)網(wǎng)絡(luò)的崛起,尤其是卷積神經(jīng)網(wǎng)絡(luò),為計算機(jī)視覺領(lǐng)域帶來了重大突破。大多數(shù)模型是通過監(jiān)督學(xué)習(xí)訓(xùn)練的,需要完整標(biāo)注的大量數(shù)據(jù)集。然而,獲取標(biāo)注數(shù)據(jù)的代價是十分高的,在某些情況下甚至是不可行的。因此在近幾年,無監(jiān)督學(xué)習(xí)受到了越來越多的關(guān)注。
我們非監(jiān)督學(xué)習(xí)的想法源自于對目標(biāo)識別任務(wù)的監(jiān)督學(xué)習(xí)結(jié)果的觀察。在 ImageNet 數(shù)據(jù)集上,top-5 分類誤差遠(yuǎn)遠(yuǎn)低于 top-1 分類誤差,而 softmax 輸出的可能性第二高的結(jié)果與測試圖像視覺相關(guān)性極高。
?
圖 1 對于一張類別為“美洲豹”的圖像,訓(xùn)練的神經(jīng)網(wǎng)絡(luò)分類器中得分最高的幾類往往是視覺相關(guān)的,例如“美洲虎”和“非洲獵豹”。數(shù)據(jù)中的明顯相似性拉近了這些類之間的距離。我們的無監(jiān)督方法將類標(biāo)級別的監(jiān)督信息應(yīng)用到極致,學(xué)習(xí)出能夠區(qū)分單個實例的特征。
我們提出了一個問題:是否能夠通過純粹的判別學(xué)習(xí)來得到一個能夠反應(yīng)實例間明顯相似性的度量?如果我們學(xué)習(xí)判別不同的實例,即使沒有語義類別的標(biāo)注,我們也能得到能捕捉實例間明顯相似性的表示。
然而我們面臨一個主要的挑戰(zhàn),即我們現(xiàn)在的“類別”數(shù)目,變成了整個訓(xùn)練集。例如 ImageNet,會成為 120 萬類而不是 1000 類。單純在 softmax 層擴(kuò)展到更多類是不可取的。我們通過用噪聲對比估計(NCE)估計完整的 softmax 分布,然后通過近似正則化方法來穩(wěn)定學(xué)習(xí)過程。
過去衡量非監(jiān)督學(xué)習(xí)的有效性通常依賴線性分類器,例如 SVM。然而如何能保證通過訓(xùn)練學(xué)習(xí)到的特征在未知的測試任務(wù)上是線性可分的呢?
我們認(rèn)為對于訓(xùn)練和測試任務(wù)都應(yīng)該采用非參數(shù)的方法。我們將實例級判別視作度量學(xué)習(xí)問題,其中實例之間的距離(相似度)以非參數(shù)的方式由特征直接計算。也就是說,每個實例的特征被存儲在離散的存儲組中,而不是網(wǎng)絡(luò)中的權(quán)重。在測試時,我們使用基于 K- 近鄰(KNN)對學(xué)習(xí)到的度量進(jìn)行分類。我們的訓(xùn)練和測試是一致的,因為模型的學(xué)習(xí)和評價都涉及圖像之間的相同度量空間。實驗結(jié)果顯示,我們的方法在 ImageNet 1K 數(shù)據(jù)庫上的 top-1 準(zhǔn)確率達(dá)到了 46.5%,在 Places205 數(shù)據(jù)庫上達(dá)到了 41.6%。
我們的目標(biāo)是學(xué)習(xí)一個無監(jiān)督內(nèi)嵌函數(shù):
??
f 是深度神經(jīng)網(wǎng)絡(luò),參數(shù)為θ,將圖片 x 映射為特征 v。這一內(nèi)嵌函數(shù)為圖像 x 和 y 的空間引入一個度量:
??
一個好的內(nèi)嵌函數(shù)應(yīng)該能將具有視覺相似性的圖像映射到度量空間相近的位置。
我們的無監(jiān)督特征學(xué)習(xí)方法為“實例級別判別”。我們將每張圖片實例視作屬于它自己的一類,然后訓(xùn)練分類器來區(qū)分不同的實例類別。
?
假設(shè)我們有 n 張圖,屬于 n 類,以及它們的特征 v1,…vn。在傳統(tǒng)的參數(shù) softmax 中,對于圖像 x 的特征 v,它被歸為 i 類的概率為: ?
其中 wj 是類別 j 的權(quán)重向量,wTv 衡量 v 與 j 類實例的匹配程度。
公式(1)中,問題在于權(quán)重向量 w 作為類別原型,阻礙了實例間的對比。
我們提出公式(1)的非參數(shù)變體,用 vTv 取代 wTv。那么 v 屬于 i 類的概率為: ?
學(xué)習(xí)目標(biāo)就變成了最大化聯(lián)合概率:
?
?或等同于最小化它的負(fù)對數(shù)似然值:
?
要計算(2)式中的概率,需要用到所有圖像的特征。如果每次都對這些特征進(jìn)行計算,計算量太大,我們采取一個特征存儲組 V 來存儲特征。假設(shè) fi 為圖像 xi 輸入網(wǎng)絡(luò) fθ的特征,在每一次學(xué)習(xí)迭代中,fi 和網(wǎng)絡(luò)參數(shù)θ通過隨機(jī)梯度下降優(yōu)化。隨后更新 V 中對應(yīng)實例的特征,將 vi 更新為 fi。我們將存儲組 V 中的所有表示初始化為單元隨機(jī)矢量。
從類別權(quán)重矢量 wj 到特征表示 vj 的概念變化是很重要的。原始的 softmax 方程中的{wj}只對訓(xùn)練類別有效。因此它們無法泛化到新類別,或者新的實例。當(dāng)我們?nèi)サ暨@些權(quán)重矢量后,我們的學(xué)習(xí)目標(biāo)完全關(guān)注于特征表示和它所引入的度量,可以在測試時用于任何新的實例。在計算方面,我們的非參數(shù)方法消除了計算和存儲權(quán)重矢量梯度的需求,使模型更易擴(kuò)展至大型數(shù)據(jù)應(yīng)用場景。
計算公式(2)中的非參數(shù) softmax 的成本十分高,尤其是類別數(shù)量很大時。因此我們采用噪聲對比估計(noise-contrastive estimation,NCE)來估計全部的 softmax。
我們將 NCE 進(jìn)行一定的修改,使其更適合我們的模型。為了解決需要與訓(xùn)練集中所有實例計算相似度這一難題,我們將多類別分類問題變成一系列二分類問題,二分類任務(wù)需要判別數(shù)據(jù)樣本和噪聲樣本。在我們的模型中,存儲組中的特征 v 對應(yīng)第 i 個樣例的概率為:
?
其中 Zi 是正則化常數(shù)。我們將噪聲分布設(shè)置為均勻分布:
?
我們假設(shè)噪聲樣本比數(shù)據(jù)樣本要多 m 倍,那么樣本 i 的特征是 v 的后驗概率則為:
?
我們估測的訓(xùn)練目標(biāo)是最小化數(shù)據(jù)樣本和噪聲樣本的負(fù)對數(shù)似然分布:
?
其中 Pd 代表實際數(shù)據(jù)分布。對于 Pd,v 是對應(yīng)圖像 xi 的特征,而對于 Pn,v’是另外一張圖像的特征,根據(jù)噪聲分布 Pn 隨機(jī)采樣得到。在我們的模型中,v 和 v’都從無參數(shù)存儲組 V 中采樣得到。
我們將 Zi 視作常數(shù),通過蒙特卡洛估計來計算它,以減少計算量:
?
NCE 方法將計算復(fù)雜度從每樣本 O(n) 降到了 O(1)。雖然降低幅度很大,但是我們的實驗依然能夠產(chǎn)生不錯的結(jié)果。
與傳統(tǒng)的分類不同,我們的每一個類別下只有一個實例。因此每一個訓(xùn)練 epoch 每一類都只訪問一次。因此,學(xué)習(xí)過程由于隨機(jī)采樣波動會產(chǎn)生大幅震蕩。我們采用近段優(yōu)化方法并且引入一個額外項鼓勵訓(xùn)練機(jī)制的平滑性。在第 t 次迭代時,數(shù)據(jù) xi 的特征表示從網(wǎng)絡(luò)中計算得到:
?
所有表示的存儲組存儲在上一次迭代中:
?
對于 Pd 中的正樣本,損失函數(shù)為:
?
隨著學(xué)習(xí)收斂,不同迭代之間的差距逐漸消失,增加的損失減少至最原始的一個。通過近段正則化,我們最終的目標(biāo)函數(shù)變?yōu)椋?/p>
?
?
圖 3 近段正則化的效果。原始的目標(biāo)函數(shù)值震蕩幅度很大,并且收斂很慢,而正則化的目標(biāo)函數(shù)則有更平滑的學(xué)習(xí)動態(tài)。
要分類測試圖像 x,我們首先計算它的特征 f=fθ(x),然后將它和存儲組中的所有圖像的內(nèi)嵌函數(shù)對比,使用余弦相似度 si=cos(vi, f)。前 k 個近鄰,用 Nk 表示,隨后被用于加權(quán)投票進(jìn)行預(yù)測。類別 c 會獲得一個總權(quán)重:
?
其中αi 是近鄰 xi 的貢獻(xiàn)權(quán)重,與相似度相關(guān)。
我們通過 4 組實驗來驗證我們的方法。第一組是在 CIFAR-10 數(shù)據(jù)庫上,對比我們的非參數(shù) softmax 和參數(shù) softmax。第二組在 ImageNet 上,與其他無監(jiān)督學(xué)習(xí)方法對比。最后兩組實驗分別進(jìn)行半監(jiān)督學(xué)習(xí)和目標(biāo)檢測任務(wù),以證明我們的方法學(xué)習(xí)到的特征的泛化能力。
我們在 CIFAR-10 數(shù)據(jù)庫上對比參數(shù)和非參數(shù)方法,CIFAR-10 含有 50000 個訓(xùn)練實例,一共 10 類。我們使用 ResNet18 作為主干網(wǎng)絡(luò),將其輸出特征映射成 128 維矢量。我們基于學(xué)習(xí)到的特征表示來評價分類有效性。常用方法是用學(xué)習(xí)到的特征訓(xùn)練一個 SVM 分類器,然后通過對網(wǎng)絡(luò)提取的特征進(jìn)行分類來對測試實例進(jìn)行分類。除此之外,我們使用最近鄰分類器來評測學(xué)習(xí)到的特征。后者直接依賴于特征度量,因此能更好地反映特征表示的質(zhì)量。
?
我們在 ImageNet ILSVRC 數(shù)據(jù)庫上學(xué)習(xí)特征表示,然后將我們的方法和其他無監(jiān)督學(xué)習(xí)代表方法進(jìn)行對比。
我們選取一個隨機(jī)初始化的網(wǎng)絡(luò),和其他無監(jiān)督學(xué)習(xí)方法,包括自監(jiān)督學(xué)習(xí)、對抗學(xué)習(xí)、樣例 CNN。由于網(wǎng)絡(luò)結(jié)構(gòu)對算法表現(xiàn)有很大影響,我們考慮了幾個經(jīng)典的結(jié)構(gòu):AlexNet、VGG16、ResNet-18 和 ResNet-50。
我們評測了兩個不同的方案:(1)對中層特征用線性 SVM 分類。(2)對輸出特征用 kNN 分類器分類。
?
從表中可以看出:
利用線性分類器對 AlexNet 的中層特征進(jìn)行分類時,我們的方法準(zhǔn)確率達(dá)到了 35%,超過了所有方法。并且我們的方法隨網(wǎng)絡(luò)深度增加,可以很好的擴(kuò)展。當(dāng)網(wǎng)絡(luò)從 AlexNet 變成 ResNet-50 時,我們的準(zhǔn)確率達(dá)到了 54%,而用樣例 CNN 結(jié)合 ResNet-101 時,準(zhǔn)確率也僅有 31.5%。
使用最近鄰分類器對最后的 128 維特征進(jìn)行分類時,我們的方法在 AlexNet、VGG16、ResNet-18 和 ResNet-50 上識別率分別為 31.3%,、33.9%、41.0% 和 46.5%,與線性分類結(jié)果相近,表明了我們學(xué)習(xí)到的特征引入了合理的度量。
我們也研究了學(xué)習(xí)到的特征表示應(yīng)該如何泛化到其他數(shù)據(jù)集。我們在 Places 數(shù)據(jù)庫上做了另一個大型實驗。Places 時場景分類數(shù)據(jù)集,包含 2.45M 張訓(xùn)練圖片,共 205 類。表 3 對比了不同方法和不同評價策略的結(jié)果。
?
對 conv5 的特征利用線性分類器,我們的方法結(jié)合 AlexNet 得到的 top-1 準(zhǔn)確率達(dá)到了 34.5%,用 ResNet-50 準(zhǔn)確率達(dá)到了 45.5%。利用最近鄰分類器對 ResNet-50 的最后一層分類,得到的準(zhǔn)確率達(dá)到了 41.6%。結(jié)果顯示了我們的方法學(xué)習(xí)到的特征具有良好的泛化能力。
無監(jiān)督特征學(xué)習(xí)一直是難點(diǎn),因為測試目標(biāo)對于訓(xùn)練目標(biāo)來說時不可知的。一個好的訓(xùn)練目標(biāo)在測試中會連續(xù)提升。我們研究了訓(xùn)練損失和測試準(zhǔn)確率隨迭代次數(shù)的關(guān)系。
?
圖 4 我們的 kNN 測試準(zhǔn)確率在 ImageNet 數(shù)據(jù)集上隨訓(xùn)練損失下降而持續(xù)增加,表明我們的無監(jiān)督學(xué)習(xí)目標(biāo)函數(shù)捕捉到了明顯的相似性,與數(shù)據(jù)的語義標(biāo)注能夠良好匹配。
我們研究了內(nèi)嵌特征維度從 32 到 256,算法效果的變化。表 4 顯示,從 32 維開始,算法效果持續(xù)上升,在 128 維達(dá)到峰值,在 256 維趨于飽和。
?
我們用 ImageNet 的不同比例的數(shù)據(jù)集訓(xùn)練了不同的特征表示,然后用 kNN 分類器在全類標(biāo)數(shù)據(jù)集上進(jìn)行驗證,研究我們的方法隨數(shù)據(jù)集大小擴(kuò)展的效果。表 5 顯示了我們的特征學(xué)習(xí)方法在更大的數(shù)據(jù)集上效果更好,測試準(zhǔn)確率隨訓(xùn)練集增大而提高。這一特性對于有效的非監(jiān)督學(xué)習(xí)方法十分重要,因為自然界最不缺的就是無標(biāo)注數(shù)據(jù)。
?
?
我們研究了學(xué)習(xí)到的特征提取網(wǎng)絡(luò)是否可以應(yīng)用于其他任務(wù),以及它是否可以作為遷移學(xué)習(xí)的一個好的基礎(chǔ)。一般的半監(jiān)督學(xué)習(xí)方法是首先從大量無標(biāo)注數(shù)據(jù)中學(xué)習(xí)然后在少量有標(biāo)注類標(biāo)上進(jìn)行微調(diào)。我們從 ImageNet 中隨機(jī)選擇一個子集作為標(biāo)注數(shù)據(jù),剩下的作為無標(biāo)注數(shù)據(jù)。我們進(jìn)行半監(jiān)督學(xué)習(xí),然后在驗證集上測量分類準(zhǔn)確率。
我們與 3 個基準(zhǔn)方法做比較:(1)Scratch,在少量標(biāo)注數(shù)據(jù)上進(jìn)行全監(jiān)督訓(xùn)練。(2)用 Split-brain 進(jìn)行預(yù)訓(xùn)練。(3)用 Colorization 進(jìn)行預(yù)訓(xùn)練。
圖 6 顯示了我們的方法性能明顯優(yōu)于其他方法,并且我們的方法是唯一一個超過監(jiān)督學(xué)習(xí)的。當(dāng)標(biāo)注數(shù)據(jù)僅占 1% 時,我們超過其他方法 10%,證明了我們從無標(biāo)注數(shù)據(jù)中學(xué)習(xí)到的特征對于任務(wù)遷移是有效的。
?
?圖 6 標(biāo)注數(shù)據(jù)比例增加的半監(jiān)督學(xué)習(xí)結(jié)果。我們的方法增加更連貫并且明顯更好。
為了進(jìn)一步評測學(xué)習(xí)到的特征的泛化能力,我們將學(xué)習(xí)的網(wǎng)絡(luò)遷移至 PASCAL 目標(biāo)識別任務(wù)上。從零開始訓(xùn)練目標(biāo)識別網(wǎng)絡(luò)十分困難,常用的方法是在 ImageNet 上預(yù)訓(xùn)練 CNN,然后對其進(jìn)行微調(diào)。
我們對比了 3 種設(shè)置(1)直接從頭開始訓(xùn)練(2)在 ImageNet 上進(jìn)行無監(jiān)督預(yù)訓(xùn)練(3)在 ImageNet 或其他數(shù)據(jù)上用各種無監(jiān)督方法預(yù)訓(xùn)練。
表 6 列出了目標(biāo)檢測的 mAP。對于 AlexNet 和 VGG-16,我們的方法 mAP 分別達(dá)到了 48.1% 和 60.5%,與最好的無監(jiān)督方法不相上下。用 ResNet-50,我們的方法 mAP 達(dá)到了 65.4%,超過了所有的無監(jiān)督學(xué)習(xí)方法。這也證明了網(wǎng)絡(luò)變深的時候,我們的方法可以很好的適應(yīng)。
?
表 6 目標(biāo)檢測準(zhǔn)確性,PASCAL VOC 2007 測試集。
我們提出了一種無監(jiān)督的特征學(xué)習(xí)方法,通過一個新的非參數(shù) softmax 公式來最大化實例之間的區(qū)別。它的動機(jī)來自于監(jiān)督學(xué)習(xí)的能夠得到明顯的圖像相似性這一觀察。我們的實驗結(jié)果表明,我們的方法在 ImageNet 和 Places 上的圖像分類效果優(yōu)于目前最先進(jìn)的方法。特征用緊湊的 128 維表示,對更多的數(shù)據(jù)和更深的網(wǎng)絡(luò)適應(yīng)良好。在半監(jiān)督學(xué)習(xí)和目標(biāo)檢測任務(wù)上,它也顯示了良好的泛化能力。