AI教父的自監督直覺——SimCLR


文章鏈接: A Simple Framework for Contrastive Learning of Visual Representations
擋在大規模AI應用從PPT到GDP征途中的最大障礙———巨大的數據標注成本,是一個棘手的問題。
簡單如識別一張圖中是否有喵,就得動輒上萬張各種姿勢的喵圖外帶上萬張不是喵的圖喂給饕餮一樣的神經網絡。這里面的痛點就是你不僅要搜集這些圖,還得划分每張圖的種類,那如果要搞一個能識別所有動物的機器人得花費多少心血。現在,如果給你一個模型,不需要標注,只要寫個爬蟲讓它自己在網上看圖看片,它就自己琢磨出了圖里面到底是什么個東西,是不是會感覺賽博朋飛升之日可期可盼?
這篇文章就提供了這么一種方法,不過暫時,要做出這么個機器需要上百張TPU(百萬大洋)。作者是圖靈獎獲得者的Hinton教授,文章沒有復雜的數學公式,也沒有太多奇淫巧計,因此也不那么晦澀難懂。

主干思路提煉

當前分類問題的流行思路就是,將原始特征(如圖、音頻)映射到一個線性可分的空間。那么,SimCLR就是試圖去學習這么一個空間。
訓練准則可以簡化成如下步驟:

  1. 找一個圖像數據集,如CIFAR10、ImageNet,也可以是網上搜集的一堆圖
  2. 在每一步訓練中,抽出一批圖像,如N張圖
  3. 這N張圖的每一張都做一次隨機數據增強,這樣一共就有2N張圖
  4. 經過一個網絡f映射到空間h, 這個h就是想要得到的目標空間
  5. 擬定只要是同一張圖衍生的匹配對,就是正例,否則是反例。使用一個比較函數統計損失更新參數
  6. 重復2

上述過程中,比較函數為一個兩層(帶ReLU)的MLP(g)外加一個Cosine匹配函數:

\[sim(h_i, h_j) = \frac{g(h_i)^\top g(h_j)}{\Vert g(h_i) \Vert \Vert g(h_j) \Vert} \\ l_{i,j} = -log \frac{e^{sim(h_i, h_j)/\tau}}{\sum_{k=1}^{2N} 1_{[k\neq i]} e^{sim(h_i, h_k)/\tau}} \\ l_{all} = \frac{1}{2N} \sum_{k=1}^N l(2k-1, 2k) + l(2k, 2k-1) \\ \]

以上公式中,如果原始圖像序列設為 x,y,z 那么擴充后的處理序列為 x,x',y,y',z,z',系數tau設定為0.1最好。

訓練細節與結論

使用了256到8192張圖每一個batch,可想而知多么吃顯存。因為每一批容量很大所以使用了LARS優化器,這個優化器是專門應對大batch使用的。
同時,該方法還用了GN,主要就是平均多卡的均值與方差,可以看作BN的多卡版本。
以下實驗結果表明,隨機裁剪與顏色變換的組合在ImageNet上准確率最高:

文章中指出了,數據增強對該方法來說十分重要。
以下結論也十分重要,道出了這個g映射的重要性:

訓練結果看起來很香,特別地,更長的訓練周期以及更大的batch效果更好:

扯蛋環節

現在很多研究一直致力於得到一個強有力的表示空間h能夠正確地表示一些常見的特征分布(比如如果用來區分動物,這些特征有眼睛形狀、毛發長度、四肢、是否直立、頭長哪屁股長哪等等)。有監督學習的目標就是要確保同種類別在特征空間h的表示盡可能相似。對於沒有標注的圖像,唯一能確定的是,與圖像x同類的圖像就是它自己或者它自己的增強。SimCLR就是那么一個大力出奇跡的方法,它假設任意一張圖及其的增強為一個類,使用一個超大的樣本集合(batrch)來訓練一個近乎無限類別的任務,試圖最終得到一個能提取任意一張圖中某些不變(裁剪、旋轉、平移、顏色變換)特征的映射方法(這里就是卷積神經網絡)。那么,蘊含在其中的這些不變性,可能就是眼睛、毛發、軀干形狀等等特征的一些與或組合、分布以及關系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM