S4L: 半監督+自監督學習

2022-01-01 AINLP


S4L, 是Self-Supervised Semi-Supervised Learning的縮寫。即將半監督學習和自監督學習結合起來的一種學習方式。

自監督學習,可以理解為沒有label,但是可以用數據集的特性創造出一些label來預測,從而學習到數據中的規律,所謂的規律在當前階段一般是指數據到embedding的轉換,比如Bert預訓練的時候就是自監督,mask一些詞語進行預測。

半監督學習,就是數據有label,但是label不全的時候的模型學習。這個topic也有很多算法變種,比如一種naive的方法如下:

可以通過在已標註數據上進行模型訓練,用得到的模型在無標註的數據上進行預測,把比較confident的預測值當做是無標註的數據的label,再進行訓練,以此類推。

為什麼要有自監督學習和半監督學習呢?主要原因是純粹的監督學習需要大量的標註數據,但大量標註數據一方面成本很高,另一方面就是有很多場景沒有辦法標記。比如,youtube推薦了一組視頻,只有第一個被點了,相當於只有第一個有感興趣label,但其他的都算不感興趣嗎?未必,剩下的數據就無法有標記。

參考論文[1]提出了一種將半監督和自監督結合起來的方法。應用在半監督圖像分類學習中,能夠提升效果。

半監督+自監督

半監督和自監督結合的方式就是目標函數的混合,如下所示,標註數據是Dl, 未標註數據是Du。在標註數據上直接分類即可,自監督學習也是一個分類任務,只不過是創造出來的,有兩種:

S4L-Rotation: 圖像翻轉,即預測圖像是翻轉90度,180度,270度還是0度S4L-Exemplar: 圖像變換等價性,即做多種變換操作後,圖像的embedding應該要基本保持不變。這裡使用triplet loss實現。而圖像的變換操作包括:random horizontal mirroringHSV space color normalization

實驗表明,w=1是比較好。

在訓練中,理論上可以用不同的batch_size去計算Ll和Lu。但為了方便,使用了同樣的batch_size。

在每個batch,還可以選擇是否將Dl也加入到Lu的計算中來。

對於自監督學習,圖像翻轉任務每次產生4個圖像,圖像變換任務則每次產生八張圖像。實驗表明,將產生的這些圖像全都參與到訓練中來,效果會好。

下圖是當自監督學習任務為旋轉任務時的圖示:

半監督baseline

半監督的baseline包括下面兩種方法:

Virtual Adversarial Training(VAT): 核心思想是當輸入有擾動的時候,預測值應該有魯棒性。公式如下:

Conditional Entropy Minimization(EntMin): 這個方法是假設無標註數據都應該有一個很confident的label,因此,可以通過最小化條件熵來達到這一點,公式如下。但在神經網絡的條件下,這個損失只需要調最後一層就可以很快最小化。所以,在當做baseline的時候,跟VAT在一起使用,同樣使用加權來組合loss。

Pseudo Label: 即使用監督數據訓練模型來對未標註數據進行預測,將confident的預測加入到監督數據中重新訓練。實驗

還有一種策略就是使用自監督的方式預訓練然後用半監督去fine-tune或者加一個線性變換層。這兩種也可以當做baseline。那麼效果如下:

最後,提出了一種大混合的方式將論文提到的技術全都應用上,即MOAM(Mix Of All Models)方法。具體步驟如下:

使用Rotation+VAT+EntMin來做訓練。相當於聯合訓練S4L-Rotation+VAT+EntMin損失。

得到的結果如下:

結論

論文的主要價值是展示了一種方法,即有一個設計的比較好的自監督任務,可以幫助提升半監督任務的效果。

參考文獻[1]. Zhai, X., Oliver, A., Kolesnikov, A., & Beyer, L. (2019). S4l: Self-supervised semi-supervised learning. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 1476-1485).
進技術交流群請添加AINLP小助手微信(id: ainlper)

關於AINLP

AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備註工作/研究方向+加群目的。

閱讀至此了,分享、點讚、在看三選一吧🙏

相關焦點

  • 「半監督學習系列」2. 半監督學習概述
    顧名思義,半監督學習介於非監督學習和監督學習之間。事實上,大多數半監督學習策略都是源於監督學習和非監督學習的某種拓展,以求包含這兩種範式所特有的附加信息。在本書中,我們將介紹一些其他常用的半監督學習假設。實際上有兩種半監督學習場景,他們略有不同,即歸納式半監督學習和傳遞式半監督學習。回想一下,在監督分類中,訓練樣本是完全標記的,所以我們總是對預測器在未來測試數據集的上表現感興趣。在半監督分類中,訓練樣本包含一些未標記的數據。因此,就產生了兩個截然不同的目標:一是預測未來測試數據的標籤;二是預測訓練樣本中未標記實例的標籤。
  • 比監督學習做的更好:半監督學習
    然而,一個重大突破揭示了添加「無監督數據」可以提高模型泛化和性能。事實上,在非常多的場景中,帶有標籤的數據並不容易獲得。半監督學習可以在標準的任務中實現SOTA的效果,只需要一小部分的有標記數據 —— 數百個訓練樣本。在這個我們對半監督學習的探索中,我們會有:半監督學習簡介。
  • 自監督、半監督和有監督全涵蓋,四篇論文遍歷對比學習的研究進展
    其中,SimCLRv2 是在 SimCLR 的基礎上構建的一個半監督學習框架,作者給出的分析和實驗顯示,半監督學習(SimCLRv2)極大提升了自監督對比學習(SimCLR)的效果,在文章中的實驗條件下,SimCLRv2 僅使用 10% 的標記數據就獲得了超過監督學習的效果。
  • 自訓練和半監督學習介紹
    在監督學習中,這些數據必須根據目標類進行標記,否則,這些算法將無法學習獨立變量和目標變量之間的關係。但是,在構建用於分類的大型標記數據集時,會出現兩個問題:「標記數據可能很耗時」。假設我們有1000000張狗圖像,我們想將它們輸入到分類算法中,目的是預測每個圖像是否包含波士頓狗。
  • 監督學習/無監督學習/半監督學習
    監督學習:(數據有輸入有輸出),通過已有的一部分數據和輸出數據之間的相應關係,生成一個函數,將輸入映射到合適的輸出,在準確的說有監督學習就是訓練樣本中必須有標籤或者標記;無監督學習:(數據只有輸入),給定的訓練樣本中難以標註類別或者標註成本過高,這類沒有類別標註(未被標記)的訓練集建模模式稱為無監督學習
  • 監督學習,非監督學習,半監督學習三者的區別是什麼,舉出一個最有...
    監督(supervised)=標籤(label),是否有監督,就是輸入數據(input)是否有標籤,有標籤則為有監督學習,沒標籤則為無監督學習。至於半監督學習,就是一半(一點點)數據有標籤,一半(極其巨大)數據沒標籤。——簡單一句話答案。
  • 有限樣本學習(一):半監督學習
    由此,機器學習中誕生了一些新的範式,專門用於解決在標籤非常缺乏的情況下的學習問題。在這些範式中,半監督學習是一個可選方案(半監督學習僅需依賴很少部分打過標籤的數據+大量無標籤數據)。什麼是半監督學習?半監督學習既使用有標籤數據,也使用無標籤數據進行模型訓練。有趣的是,在當前的學術研究中,大多數半監督學習都聚焦於視覺任務上。而預訓練+微調的方法則是語言任務中常用的方法。
  • 半監督學習入門基礎(一)
    SSL的目標是要比單獨使用有標記數據訓練的監督學習技術得到更好的結果。這是半監督學習系列文章的第1部分,對這個機器學習的重要子領域進行了簡要的介紹。區分半監督學習,監督學習和無監督學習整個數據集中可用於訓練的有標記數據的範圍區分了機器學習的這三個相關領域。
  • 自監督學習(Self-supervised Learning)
    前段時間在杭州參加華爾茲,和小團體分別兩年後成功再聚首。
  • 《機器學習》筆記-半監督學習(13)
    >讓學習器不依賴外界交互,自動地利用未標記樣本來提升學習性能,就是半監督學習(semi-supervised learning)。 半監督學習可進一步劃分為純(pure)半監督學習和直推學習(transductive learning),前者假定訓練數據中的未標記樣本並非待預測數據,而後者則假定學習過程中所考慮的未標記樣本恰是待預測數據,學習的目的就是在這些未標記樣本上獲得最優泛化性能。
  • 【CVPR2020】 Noisy Student:半監督學習法
    classification論文連結:https://arxiv.org/pdf/1911.04252v4.pdf代碼連結:https://github.com/google-research/noisystudent   1.整體概述本文提出了噪聲學生訓練,一種半監督學習方法
  • 自監督學習在計算機視覺中的應用
    由於監督學習需要及其龐大的標註數據,但是獲取大量高質的標註數據由於成本問題不太現實、目前缺少數據這個問題會嚴重製約著模型性能,而無監督學習和強化學習目前解決的場景問題有限,所以這幾年越來越多的目光投入的自監督學習。
  • 清華CVer 對自監督學習的一些思考
    來源 | Jack Cui責編 | 晉兆雨頭圖 | CSDN 下載自視覺中國眾所周知,機器學習大致可分為有監督學習和無監督學習。自監督學習作為無監督學習的一個特例,可以理解它是一種沒有人工標註標籤的監督學習,即沒有人類參與的監督學習。
  • 科普 | 自監督視覺特徵學習
    它是無監督學習的一個分支,其最大特點是不依賴人工標註的數據標籤直接從原始數據中自動學習有區分度的特徵表示。自監督學習是一種將輸入數據本身作為監督信號的表示學習方法,與監督式學習、無監督學習一樣,屬於表示學習的範疇。儘管監督式學習這種範式能夠取得很好的效果,但它的優越性能依賴大量手工標註的數據,而獲取這些標註數據需要消耗大量的人力物力,以至於會有人開玩笑稱「有多少人工就有多少智能」。
  • 自監督學習和對比學習
    這篇主要探討SimCLR,不需要用監督學習(supervision)的方式,採用自監督(self-supervised)的方式使得模型學到很多有用的patterns。眾所周知,使用對比學習(修改樣本,loss等小trick)就可以顯著提高模型的泛化能力,所以我們都需要掌握這項"技藝"。
  • 手把手教你實現GAN半監督學習
    在正式介紹實現半監督學習之前,我在這裡首先介紹一下監督學習(supervised learning),半監督學習(semi-supervised learning)和無監督學習(unsupervised learning)的區別。監督學習是指在訓練集中包含訓練數據的標籤(label),比如類別標籤,位置標籤等等。
  • 【源頭活水】淺談圖上的自監督學習——對比學習
    地址:https://www.zhihu.com/people/shi-si-lou-de-can-hun-83前言: 本文將圍繞最近一些在圖上自監督學習的論文,對其中「Contrastive Learning」的內容進行一些解讀,包括一些自監督學習的思路。
  • 【自監督學習】Self-supervised Learning 再次入門
    唉,這個時代,已經不僅僅是做科研需要手速了,在知乎寫分享也要快 :(本文通過整理自監督學習的一系列工作,把主流方法分成三大類,方便大家更全面的了解自監督學習的定義、方法、用途。學習的範式我們首先來回顧下機器學習中兩種基本的學習範式,如圖所示,一種是監督學習,一種是無監督學習。
  • 試試自監督學習
    給你個秘密武器——自監督學習。數據科學家 Jeremy Howard 發布一條Twitter:在醫學圖像領域,我們經常需要靠一點點的數據來做很多工作。在這個問題上,有一種被低估的方法,正是自監督學習,簡直太神奇!還附上了與之相關的最新fast.ai教程。
  • 半監督學習入門基礎(二):最基礎的3個概念
    >今天給大家介紹半監督學習中的3個最基礎的概念:一致性正則化,熵最小化和偽標籤,並介紹了兩個經典的半監督學習方法。半監督學習 (SSL) 是一種非常有趣的方法,用來解決機器學習中缺少標籤數據的問題。SSL利用未標記的數據和標記的數據集來學習任務。SSL的目標是得到比單獨使用標記數據訓練的監督學習模型更好的結果。這是關於半監督學習的系列文章的第2部分,詳細介紹了一些基本的SSL技術。