天天看點

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

作者:機器之心Pro

機器之心報道

編輯:Panda W

自監督學習的聚類到底是怎麼回事?Yann LeCun 等研究者進行一番「逆向工程」。

自監督學習(SSL)在最近幾年取得了很大的進展,在許多下遊任務上幾乎已經達到監督學習方法的水準。但是,由于模型的複雜性以及缺乏有标注訓練資料集,我們還一直難以了解學習到的表征及其底層的工作機制。此外,自監督學習中使用的 pretext 任務通常與特定下遊任務的直接關系不大,這就進一步增大了解釋所學習到的表征的複雜性。而在監督式分類中,所學到的表征的結構往往很簡單。

相比于傳統的分類任務(目标是準确将樣本歸入特定類别),現代 SSL 算法的目标通常是最小化包含兩大成分的損失函數:一是對增強過的樣本進行聚類(不變性限制),二是防止表征坍縮(正則化限制)。舉個例子,對于同一樣本經過不同增強之後的資料,對比式學習方法的目标是讓這些樣本的分類結果一樣,同時又要能區分經過增強之後的不同樣本。另一方面,非對比式方法要使用正則化器(regularizer)來避免表征坍縮。

自監督學習可以利用輔助任務(pretext)無監督資料中挖掘自身的監督資訊,通過這種構造的監督資訊對網絡進行訓練,進而可以學習到對下遊任務有價值的表征。近日,圖靈獎得主 Yann LeCun 在内的多位研究者釋出了一項研究,宣稱對自監督學習進行了逆向工程,讓我們得以了解其訓練過程的内部行為。

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

論文位址:https://arxiv.org/abs/2305.15614v2

這篇論文通過一系列精心設計的實驗對使用 SLL 的表征學習進行了深度分析,幫助人們了解訓練期間的聚類過程。具體來說,研究揭示出增強過的樣本會表現出高度聚類的行為,這會圍繞共享同一圖像的增強樣本的含義嵌入形成質心。更出人意料的是,研究者觀察到:即便缺乏有關目标任務的明确資訊,樣本也會根據語義标簽發生聚類。這表明 SSL 有能力根據語義相似性對樣本進行分組。

問題設定

由于自監督學習(SSL)通常用于預訓練,讓模型做好準備适應下遊任務,這帶來了一個關鍵問題:SSL 訓練會對所學到的表征産生什麼影響?具體來說,訓練期間 SSL 的底層工作機制是怎樣的,這些表征函數能學到什麼類别?

為了調查這些問題,研究者在多種設定上訓練了 SSL 網絡并使用不同的技術分析了它們的行為。

資料和增強:本文提到的所有實驗都使用了 CIFAR100 圖像分類資料集。為了訓練模型,研究者使用了 SimCLR 中提出的圖像增強協定。每一個 SSL 訓練 session 都執行 1000 epoch,使用了帶動量的 SGD 優化器。

骨幹架構:所有的實驗都使用了 RES-L-H 架構作為骨幹,再加上了兩層多層感覺器(MLP)投射頭。

線性探測(linear probing):為了評估從表征函數中提取給定離散函數(例如類别)的有效性,這裡使用的方法是線性探測。這需要基于該表征訓練一個線性分類器(也稱為線性探針),這需要用到一些訓練樣本。

樣本層面的分類:為了評估樣本層面的可分離性,研究者建立了一個專門的新資料集。

其中訓練資料集包含來自 CIFAR-100 訓練集的 500 張随機圖像。每張圖像都代表一個特定類别并會進行 100 種不同的增強。是以,訓練資料集包含 500 個類别的共計 50000 個樣本。測試集依然是用這 500 張圖像,但要使用 20 種不同的增強,這些增強都來自同一分布。是以,測試集中的結果由 10000 個樣本構成。為了在樣本層面衡量給定表征函數的線性或 NCC(nearest class-center / 最近類别中心)準确度,這裡采用的方法是先使用訓練資料計算出一個相關的分類器,然後再在相應測試集上評估其準确率。

揭示自監督學習的聚類過程

在幫助分析深度學習模型方面,聚類過程一直以來都發揮着重要作用。為了直覺地了解 SSL 訓練,圖 1 通過 UMAP 可視化展示了網絡的訓練樣本的嵌入空間,其中包含訓練前後的情況并分了不同層級。

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

圖 1:SSL 訓練引起的語義聚類

正如預期的那樣,訓練過程成功地在樣本層面上對樣本進行了聚類,映射了同一圖像的不同增強(如第一行圖示)。考慮到目标函數本身就會鼓勵這種行為(通過不變性損失項),是以這樣的結果倒是不意外。然而,更值得注意的是,該訓練過程還會根據标準 CIFAR-100 資料集的原始「語義類别」進行聚類,即便該訓練過程期間缺乏标簽。有趣的是,更高的層級(超類别)也能被有效聚類。這個例子表明,盡管訓練流程直接鼓勵的是樣本層面的聚類,但 SSL 訓練的資料表征還會在不同層面上根據語義類别來進行聚類。

為了進一步量化這個聚類過程,研究者使用 VICReg 訓練了一個 RES-10-250。研究者衡量的是 NCC 訓練準确度,既有樣本層面的,也有基于原始類别的。值得注意的是,SSL 訓練的表征在樣本層面上展現出了神經坍縮(neural collapse,即 NCC 訓練準确度接近于 1.0),然而在語義類别方面的聚類也很顯著(在原始目标上約為 0.41)。

如圖 2 左圖所示,涉及增強(網絡直接基于其訓練的)的聚類過程大部分都發生在訓練過程初期,然後陷入停滞;而在語義類别方面的聚類(訓練目标中并未指定)則會在訓練過程中持續提升。

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

圖 2:SSL 算法根據語義目标對對資料的聚類

之前有研究者觀察到,監督式訓練樣本的頂層嵌入會逐漸向一個類質心的結構收斂。為了更好地了解 SSL 訓練的表征函數的聚類性質,研究者調查了 SSL 過程中的類似情況。其 NCC 分類器是一種線性分類器,其表現不會超過最佳的線性分類器。通過評估 NCC 分類器與同樣資料上訓練的線性分類器的準确度之比,能夠在不同粒度層級上研究資料聚類。圖 2 的中圖給出了樣本層面類别和原始目标類别上的這一比值的變化情況,其值根據初始化的值進行了歸一化。随着 SSL 訓練的進行,NCC 準确度和線性準确度之間的差距會變小,這說明增強後的樣本會根據其樣本身份和語義屬性逐漸提升聚類水準。

此外,該圖還說明,樣本層面的比值起初會高一些,這說明增強後的樣本會根據它們的身份進行聚類,直到收斂至質心(NCC 準确度和線性準确度的比值在 100 epoch 時 ≥ 0.9)。但是,随着訓練繼續,樣本層面的比值會飽和,而類别層面的比值會繼續增長并收斂至 0.75 左右。這說明增強後的樣本首先會根據樣本身份進行聚類,實作之後,再根據高層面的語義類别進行聚類。

SSL 訓練中隐含的資訊壓縮

如果能有效進行壓縮,那麼就能得到有益又有用的表征。但 SSL 訓練過程中是否會出現那樣的壓縮卻仍是少有人研究的課題。

為了了解這一點,研究者使用了互資訊神經估計(Mutual Information Neural Estimation/MINE),這種方法可以估計訓練過程中輸入與其對應嵌入表征之間的互資訊。這個度量可用于有效衡量表征的複雜度水準,其做法是展現其編碼的資訊量(比特數量)。

圖 3 的中圖報告了在 5 個不同的 MINE 初始化種子上計算得到的平均互資訊。如圖所示,訓練過程會有顯著的壓縮,最終形成高度緊湊的訓練表征。

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

圖 3:(左)一個 SSL 訓練的模型在訓練期間的正則化和不變性損失以及原始目标線性測試準确度。(中)訓練期間輸入和表征之間的互資訊的壓縮。(右)SSL 訓練學習聚類的表征。

正則化損失的作用

目标函數包含兩項:不變性和正則化。不變性項的主要功能是強化同一樣本的不同增強的表征之間的相似性。而正則化項的目标是幫助防止表征坍縮。

為了探究這些分量對聚類過程的作用,研究者将目标函數分解為了不變性項和正則化項,并觀察它們在訓練過程中的行為。比較結果見圖 3 左圖,其中給出了原始語義目标上的損失項的演變以及線性測試準确度。不同于普遍流行的想法,不變性損失項在訓練過程中并不會顯著改善。相反,損失(以及下遊的語義準确度)的改善是通過降低正則化損失實作的。

由此可以得出結論:SSL 的大部分訓練過程都是為了提升語義準确度和所學表征的聚類,而非樣本層面的分類準确度和聚類。

從本質上講,這裡的發現表明:盡管自監督學習的直接目标是樣本層面的分類,但其實大部分訓練時間都用于不同層級上基于語義類别的資料聚類。這一觀察結果表明 SSL 方法有能力通過聚類生成有語義含義的表征,這也讓我們得以了解其底層機制。

監督學習和 SSL 聚類的比較

深度網絡分類器往往是基于訓練樣本的類别将它們聚類到各個質心。但學習得到的函數要能真正聚類,必須要求這一性質對測試樣本依然有效;這是我們期望得到的效果,但效果會差一點。

這裡有一個有趣的問題:相比于監督學習的聚類,SSL 能在多大程度上根據樣本的語義類别來執行聚類?圖 3 右圖報告了在不同場景(使用和不使用增強的監督學習以及 SSL)的訓練結束時的 NCC 訓練和測試準确度比率。

盡管監督式分類器的 NCC 訓練準确度為 1.0,顯著高于 SSL 訓練的模型的 NCC 訓練準确度,但 SSL 模型的 NCC 測試準确度卻略高于監督式模型的 NCC 測試準确度。這說明兩種模型根據語義類别的聚類行為具有相似的程度。有意思的是,使用增強樣本訓練監督式模型會稍微降低 NCC 訓練準确度,卻會大幅提升 NCC 測試準确度。

探索語義類别學習和随機性的影響

語義類别是根據輸入的内在模式來定義輸入和目标的關系。另一方面,如果将輸入映射到随機目标,則會看到缺乏可辨識的模式,這會導緻輸入和目标之間的連接配接看起來很任意。

研究者還探究了随機性對模型學習所需目标的熟練程度的影響。為此,他們建構了一系列具有不同随機度的目标系統,然後檢查了随機度對所學表征的影響。他們在用于分類的同一資料集上訓練了一個神經網絡分類器,然後使用其不同 epoch 的目标預測作為具有不同随機度的目标。在 epoch 0 時,網絡是完全随機的,會得到确定的但看似任意的标簽。随着訓練進行,其函數的随機性下降,最終得到與基本真值目标對齊的目标(可認為是完全不随機)。這裡将随機度歸一化到 0(完全不随機,訓練結束時)到 1(完全随機,初始化時)之間。

圖 4 左圖展示了不同随機度目标的線性測試準确度。每條線都對應于不同随機度的 SSL 不同訓練階段的準确度。可以看到,在訓練過程中,模型會更高效地捕獲與「語義」目标(更低随機度)更接近的類别,同時在高随機度的目标上沒有表現出顯著的性能改進。

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

圖 4:SSL 持續學習語義目标,而非随機目标

深度學習的一個關鍵問題是了解中間層對分類不同類型類别的作用和影響。比如,不同的層會學到不同類型的類别嗎?研究者也探索了這個問題,其做法是在訓練結束時不同目标随機度下評估不同層表征的線性測試準确度。如圖 4 中圖所示,随着随機度下降,線性測試準确度持續提升,更深度的層在所有類别類型上都表現更優,而對于接近語義類别的分類,性能差距會更大。

研究者還使用了其它一些度量來評估聚類的品質:NCC 準确度、CDNV、平均每類方差、類别均值之間的平均平方距離。為了衡量表征随訓練進行的改進情況,研究者為語義目标和随機目标計算了這些名額的比率。圖 4 右圖展示了這些比率,結果表明相比于随機目标,表征會更加偏向根據語義目标來聚類資料。有趣的是,可以看到 CDNV(方差除以平方距離)會降低,其原因僅僅是平方距離的下降。方差比率在訓練期間相當穩定。這會鼓勵聚類之間的間距拉大,這一現象已被證明能帶來性能提升。

了解類别層級結構和中間層

之前的研究已經證明,在監督學習中,中間層會逐漸捕獲不同抽象層級的特征。初始的層傾向于低層級的特征,而更深的層會捕獲更抽象的特征。接下來,研究者探究了 SSL 網絡能否學習更高層面的層次屬性以及哪些層面與這些屬性的關聯性更好。

在實驗中,他們計算了三個層級的線性測試準确度:樣本層級、原始的 100 個類别、20 個超類别。圖 2 右圖給出了為這三個不同類别集計算的數量。可以觀察到,在訓練過程中,相較于樣本層級的類别,在原始類别和超類别層級上的表現的提升更顯著。

接下來是 SSL 訓練的模型的中間層的行為以及它們捕獲不同層級的目标的能力。圖 5 左和中圖給出了不同訓練階段在所有中間層上的線性測試準确度,這裡度量了原始目标和超目标。圖 5 右圖給出超類别和原始類别之間的比率。

Yann LeCun團隊最新成果:對自監督學習逆向工程,聚類是這樣實作的

圖 5:SSL 能在整體中間層中有效學習語義類别

研究者基于這些結果得到了幾個結論。首先,可以觀察到随着層的深入,聚類效果會持續提升。此外,與監督學習情況類似,研究者發現在 SSL 訓練期間,網絡每一層的線性準确度都有提升。值得注意的是,他們發現對于原始類别,最終層并不是最佳層。近期的一些 SSL 研究表明:下遊任務能高度影響不同算法的性能。本文的研究拓展了這一觀察結果,并且表明網絡的不同部分可能适合不同的下遊任務與任務層級。根據圖 5 右圖,可以看出,在網絡的更深層,超類别的準确度的提升幅度超過原始類别。

繼續閱讀