0
譯者:AI研習社(聽風1996)
雙語原文鏈接:https://www.yanxishe.com/TextTranslation/2916
自監督學習是一個非常有趣的研究領域,其目標是在沒有任何人工標注的情況下,從未標注的數據中學習豐富的表示。
我們可以通過創造性地提出一個問題來實現,這樣你就可以使用數據本身的一部分作為標簽并嘗試進行預測。這樣的表述被稱為前置任務
例如,你可以設置一個前置任務,給定灰度圖情況下來預測圖像的彩色版本。同樣,您可以刪除圖像的一部分,并訓練一個模型從周圍預測該部分。有很多類似這樣的前置任務。

通過對前置任務的預訓練,希望模型能夠學習到有用的表示。之后,我們可以只用一小組標記的訓練數據,可以將模型微調到下游任務,例如圖像分類、對象檢測和語義分割。
所以,前置任務可以幫助我們學習表征。但是,這就提出了一個問題:
目前,衡量表征的標準方法是在一組標準任務和基準數據集上進行評估。
如何判斷一個表示學習的好壞?
線性分類:利用固定特征進行ImageNet分類
小樣本設定:ImageNet分類只使用1%至10%的數據。
遷移學習:在PASCAL VOC上進行目標分類、目標檢測和語義分割。
我們可以看到,上述評價方法要求我們對前置任務和目標任務使用相同的模型架構。

這就會帶來了一些有趣的挑戰:
對于前置任務,我們的目標是在大規模的無標簽數據集上學習,因此更深的模型(如ResNet)將會幫助我們學習更好的表示。但是,對于下游任務,我們則更傾向于實際應用的淺層模型(如AlexNet)。因此,我們目前在設計前置任務時就必須考慮這個限制。
如果有些方法使用了較簡單的架構,而其他方法使用了較深的架構,那么就很難公平地比較哪種前置任務更好。
我們無法將從前置任務中學習到的表征與HOG等人工設計的特征進行比較。
我們可能希望在前置任務中利用多個數據域,如聲音、文本和視頻,但目標任務可能會限制我們的設計選擇。
在前置任務上訓練的模型可能會學習到對通用視覺識別無用的額外知識。如今,最后一層的任務特定層會被忽略,實際只取權重或特征到一定的卷積層。
Noroozi等人在他們2018年的一篇論文 “Boosting Self-Supervised Learning via Knowledge Transfer”中提供了一個非常簡單的想法去解決這些問題。
作者觀察到,在一個良好的表示空間中,語義相似的數據點應該是緊密相連的。

在常規的有監督分類中,圖像在語義上相似的信息是通過人類注釋的標簽進行編碼的。在這種標簽上訓練的模型一般都會有一個表示空間,對語義相似的圖像進行分組。
因此,對于自監督學習中的前置任務,目標是隱式學習一個使相同類別圖像相似而不同類別圖像不相似的度量。因此,如果我們能夠以某種方式將語義相關的圖像編碼到相同的標簽上,我們就可以對學習的表示提供可靠的估計。
作者提出了一個新穎的框架,可以將知識從一個深層的自監督模型轉移到一個獨立的淺層下游模型。你可以使用不同的模型架構來完成前置任務和下游任務。
將前置任務中的特征進行聚類,并將聚類中心分配給未標記的圖像作為偽標簽。然后,在偽標簽上重新訓練一個具有目標任務架構的小型網絡來預測偽標簽,并學習一種新的表示方法。
這種端到端的處理流程介紹如下:
在這里,我們選擇一些深度網絡架構,并在一些數據集上對我們選擇的一些前置任務進行訓練。在模型訓練完成后,我們可以從一些中間層獲取特征。

圖:在前置任務上訓練(資源)
對于數據集中所有未標記的圖像,我們計算前置任務模型中 的特征向量。然后,我們基于K-means聚類來分組語義上相似的圖像。我們的想法是,聚類中心將與ImageNet中的類別對齊。

圖:聚類特征(資源)
在論文中,作者使用的K-means在單臺Titan X GPU上運行了4個小時,將130萬張圖片聚成2000個類別。
聚類中心被當作偽標簽。我們可以使用與上一步相同的數據集,也可以自己使用不同的數據集。然后,我們計算這些圖像的特征向量,并為每個圖像找到最接近的聚類中心。這個聚類中心被用作偽標簽。

圖:生成偽標簽(來源)
我們采取將用于下游任務的模型架構,并利用其將未標記的圖像分類為偽標簽。因此,目標架構將學習一個新的表示,這樣它將把原本在預先訓練的特征空間中接近的圖像映射到接近的點上。

在偽標簽數據上重新訓練(來源)
我們看到了如何通過對特征進行聚類,然后使用偽標簽,我們可以將任何前置任務表征中的知識帶入一個共同的參考模型中,比如AlexNet。
因此,我們現在可以輕松地比較不同的前置任務,即使它們是使用不同的架構和在不同的數據域上進行訓練的。這也讓我們可以通過使用深度模型和具有挑戰性的前置任務來改進自監督方法。
為了定量評價這個想法,作者設置了一個實驗,如下所述:
為了評估他們的方法,作者采取了一個名為 "拼圖 "的老式拼圖式前置任務,我們需要預測用來隨機打亂3 * 3正方形圖像網格的排列。
圖來自這篇論文
他們通過在某些隨機位置用另一個隨機圖像中的圖塊隨機替換0到2個圖塊來擴展任務。這增加了難度,因為現在我們只需要使用剩余的補丁來解決這個問題。新的前置任務被稱為 "Jigsaw++"。
圖來自這篇論文
在本文中,他們使用了701個總排列,其最小漢明距離為3。他們對每個圖像塊分別應用均值和標準差歸一化。他們還將圖像的灰度化率提高到70%,以防止網絡利用低淺顯的統計信息而作弊。
作者使用VGG-16來解決前置任務并學習表征。由于VGG-16的容量增加,它可以更好地處理 "Jigsaw++"任務帶來的額外復雜性,從而提取更好的表征。
對來自VGG-16的表示進行聚類,并將聚類中心轉換為偽標簽。然后,AlexNet被訓練來對偽標簽進行分類。
對于下游任務,使用偽標簽分類的權重初始化AlexNet模型的卷積層,并隨機初始化完全連接的層。然后,在各種基準數據集上對預訓練的AlexNet進行微調。
使用像VGG-16這樣的更深層網絡,可以得到更好的表示和偽標簽,也可以在基準任務中獲得更好的結果。它在2018年的幾個基準上得到了最優秀的結果,并進一步縮小了監督和自監督方法之間的差距。
使用VGG16訓練 "Jigsaw++",并使用AlexNet預測集群可獲得最佳性能。
切換到更具挑戰性的前置任務 "Jigsaw++"比 "Jigsaw "提高了性能。
當在Jigsaw++和下游任務中都使用相同架構的AlexNet時,知識遷移并沒有明顯影響。
| Task | Clustering | Pre-text architecture | Downstream arch. | Classification | Detction (SS) | Detection(MS) | Segmentation |
|---|---|---|---|---|---|---|---|
| Jiasaw | no | AlexNet | AlexNet | 67.7 | 53.2 | - | - |
| Jiasaw++ | no | AlexNet | AlexNet | 69.8 | 55.5 | 55.7 | 38.1 |
| Jiasaw++ | yes | AlexNet | AlexNet | 69.9 | 55.0 | 55.8 | 40.0 |
| Jiasaw++ | yes | VGG-16 | AlexNet | 72.5 | 56.5 | 57.2 | 42.6 |
2. 在ImageNet上的線性分類
在這種設定下,在從不同卷積層的AlexNet中提取的特征上訓練線性分類器訓練。對于ImageNet來說,使用VGG-16并通過聚類將知識轉移到AlexNet中,可以大幅提升2%。

3. ImageNet上的非線性分類
對于非線性分類器來說,使用VGG-16將知識遷移到AlexNet上并使用聚類可以在ImageNet上獲得最佳性能。

1. 簇的數量對性能有什么影響?
網絡并沒有受到聚類數量的顯著影響。作者在物體檢測的任務上測試了在不同簇數的偽標簽上訓練的AlexNet。

2. 這與知識蒸餾有什么不同?
知識遷移與知識蒸餾有著本質的區別。在這里,我們的目標是只保留表征中圖像的簇關聯,并將其轉移到目標模型中。與蒸餾不同的是,我們不對teacher的精確輸出做任何回歸。
3. 在聚類與預測偽標簽中可以使用不同的數據集嗎?
可以,這個方法很靈活,你可以在一個數據集上進行預訓練,在另一個數據集上進行聚類,然后得到第三個數據集的偽標簽。
作者做了一個實驗,他們在ImageNet的表示上訓練聚類,然后在 "Places "數據集上計算聚類中心,得到偽標簽。對象分類的性能僅有小幅下降(-1.5%)。

因此,知識遷移是一種簡單有效的方式,可以將表征從深層模型映射到淺層模型。
AI研習社是AI學術青年和AI開發者技術交流的在線社區。我們與高校、學術機構和產業界合作,通過提供學習、實戰和求職服務,為AI學術青年和開發者的交流互助和職業發展打造一站式平臺,致力成為中國最大的科技創新人才聚集地。
如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學習新知,分享成長。

雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。