學習範式
對比學習(contrastive learning)
/ kun-TRAS-tiv LER-ning /
假設你學會「狗」長什麼樣,靠的不是標籤,而是整理一堆照片:同一隻狗的兩張快照該歸在一起,狗和腳踏車則該分開。這樣做上幾百萬次,你就在沒人給任何東西起過名字的情況下,建立起對視覺相似性的強烈感覺。對比學習就是這樣教機器的——在它的內部表示裡,把相似的東西拉近,把不同的東西推遠。
從機制上看,你取一個例子,造出一對「正樣本」——通常是同一項的兩個變體,比如把一張照片用兩種不同方式裁剪、變色——它們應當映射到相近的點。這一批裡的其他項是「負樣本」,應當映射得遠遠的。模型訓練的目標,就是把正樣本對之間的距離壓小、把它到負樣本的距離拉大。這裡的標籤是免費且自動的(配對是你自己造的),這使對比學習成為自監督學習的一種主流形式,也成了從無標籤資料中學好表示的主力。
它的回報,是那些有意義地聚成簇的表示,於是下游任務只需一丁點帶標籤資料——甚至完全不要——就夠用了。它驅動著當今的影像模型和圖文模型。誠實地說說工程上的事:它對你怎樣造對很敏感(糟糕的資料增強會教出錯誤的「不變性」);它通常需要大量負樣本才好用(大批量,吃記憶體);而且如果方法本身沒設計好去防範,它會塌縮成一個沒用的捷徑——把所有東西都映射到同一個點上。
取一張貓的照片,造出兩個版本——一個裁剪並調亮,一個翻轉並改色。訓練模型把這兩者映射得很近(畢竟是同一隻貓),又把它們與同一批裡一張汽車照片映射得很遠。經過幾百萬次這樣的比對,模型的表示就把貓聚到貓的附近、汽車聚到汽車的附近,而全程從未提供過任何標籤。
把同一事物的兩個視角拉近,把不同事物推遠。
對比學習成敗全繫於它的「配對」:你選的資料增強,決定了模型把什麼當成「相同」。它還需要防塌縮的保護機制,否則一切都映射到同一個點,表示就廢了。
又稱
另見