本篇文章将對自監督學習的要點進行總結,包括以下幾個方面:
監督學習:機器學習中最常見的方法是監督學習。在監督學習中,我們得到一組标記數據(X,Y),即(特征,标簽),我們的任務是學習它們之間的關系。但是這種方法并不總是易于處理,因為-
這種學習通常會導緻對概念的非常膚淺的理解,即它學習了 X 和 Y 之間的關系(它優化了網絡以學習這種映射),但它不理解 X 的實際含義或它背後的含義。
自監督學習 (Self-supervised learning / SSL):自監督學習也适用于(特征、标簽)數據集,即以監督的方式,但它不需要人工注釋的數據集。它的基本思想是屏蔽/隐藏輸入的某些部分,并使用可觀察的部分來預測隐藏的部分。正如我們将在下面看到的,這是一個非常強大的想法。但是我們不稱其為無監督學習是因為它仍然需要标簽,但不需要人工對其進行标注。
SSL的優勢是如果我們手頭有大量未标記的數據,SSL的方式可以讓我們利用這些數據。這樣模型可以學習更強大的數據底層結構的表示,并且這些表示比監督學習中學到的更普遍,然後我們可以針對下遊任務進行微調。
需求和動機在過去的 10 年裡,深度學習取得了長足的進步。幾年前被認為計算機似乎不可能完成的任務(例如機器翻譯、圖像識别、分割、語音識别等)中,已經達到/超過了人類水平的表現。在經曆了十年的成功故事之後,深度學習現在正處于一個關鍵點,人們已經慢慢但肯定地開始認識到當前深度學習方法的基本局限性。
人類和當前人工智能的主要區别之一是人類可以比機器更快地學習事物,例如僅通過查看 1-2 張照片來識别動物,隻需 15-20 小時即可學會駕駛汽車。人類如何做到這一點?常識!雖然我們還不知道常識是如何産生的,但卻可以通過思考人類如何實際了解世界來做出一些有根據的猜測:
自監督學習通過學習從未屏蔽部分預測數據的屏蔽部分來模仿的人類這部分的能力。
NLP 與CV中的 SSLNLP 中的一般做法是屏蔽一些文本并使用附近的文本對其進行預測。這種做法已經有一段時間了,現在 SOTA 模型都是以這種方式進行訓練,例如 BERT、ROBERTA XLM-R、GPT-2,3 等。在 NLP 中應用這種技術相對容易,因為屏蔽詞的預測隻能取離散值,即詞彙表中的一個詞。所以我們所要做的就是在詞彙表中生成一個超過 10-20k 個單詞的概率分布。
但是在計算機視覺方面,可能性是無限的。我們在這裡處理高維連續對象,例如,一個 10X10 的屏蔽圖像塊可能在單個通道上獲取 255¹⁰⁰ 值,對于動起來的視頻複雜性甚至更高(同樣的邏輯也适用于語音識别)。與 NLP 不同,我們無法對每一種可能性做出預測,然後選擇更高概率的預測。這似乎是計算機視覺中一個棘手的問題。
孿生網絡/聯合嵌入架構這裡把圖像識别作為我們運行的任務。 SSL 會屏蔽一些随機圖像塊,然後嘗試預測這些被屏蔽的塊。由于我們無法對圖像塊中的每一種可能性進行預測,所以我們隻能使用相似度匹配。
聯合嵌入架構。這兩個神經網絡可以完全相同,也可以部分共享,也可以完全不同。
這個想法是訓練一種孿生網絡來計算兩張圖像之間的相似度,同時保證以下結果 -
第 1 點很容易實現 -可以用不同方式增強圖像,例如裁剪、顔色增強、旋轉、移動等。然後讓 孿生網絡學習原始圖像和增強圖像的相似表示。在将模型輸出與固定目标進行比較的意義上,我們不再進行預測建模,因為現在比較的是模型的兩個編碼器的輸出,這使得學習表示非常靈活。
但是第 2 點很麻煩。因為當圖像不同時,我們如何确保網絡學習不同的嵌入?如果沒有進一步的激勵,無論輸入如何,網絡都可以為所有圖像學習相同的表示。這稱為模式崩潰。那麼如何解決這個問題?
對比學習 Contrastive Learning基本思想是提供一組負樣本和正樣本。損失函數的目标是找到表示以最小化正樣本之間的距離,同時最大化負樣本之間的距離。圖像被編碼後的距離可以通過點積計算,這正是我們想要的!那麼這是否意味着計算機視覺中的 SSL 現在已經解決了?其實還沒有完全解決。
為什麼這麼說呢?因為圖像是非常高維的對象,在高維度下遍曆所有的負樣本對象是幾乎不可能的,即使可以也會非常低效,所以就衍生出了下面的方法。
在描述這方法之前,讓我們首先來讨論對比損失這将會幫助我們理解下面提到的算法。我們可以将對比學習看作字典查找任務。想象一個圖像/塊被編碼(查詢),然後與一組随機(負 - 原始圖像以外的任何其他圖像)樣本 幾個正(原始圖像的增強視圖)樣本進行匹配。這個樣本組可以被視為一個字典(每個樣本稱為一個鍵)。假設隻有一個正例,這意味着查詢将很好地匹配其中一個鍵。這樣對比學習就可以被認為是減少查詢與其兼容鍵之間的距離,同時增加與其他鍵的距離。
目前對比學習中兩個關鍵算法如下:
但是對比學習也有局限性:
在上面提到的所有方法/算法中,數據增強都起着關鍵作用。為了訓練類似 SSL 模型,通過一組規則(裁剪、移動、旋轉、顔色失真、模糊等)增強原始圖像來生成正對。然後模型學會忽略這種噪聲(例如平移、顔色失真和旋轉不變性),以學習與正對(原始圖像和增強圖像)接近的表示。但是這些模型在圖像識别任務上做得很好,但當模型已經學會忽略這些變化時,以相同的表示進行目标檢測任務時會獲得非常差的效果。這是因為它很難在對象周圍放置邊界框,因為學習的表示被訓練為忽略目标對象的位置和定位。
非對比學習與對比學習不同,模型僅從正樣本中學習,即從圖像及其增強視圖中學習。
理論上上感覺這應該行不通,因為如果網絡隻有正例,那麼它就學會忽略常量向量的輸入和輸出(上面提到的模式崩潰),這樣損失就會變成0。
而實際上這并沒有發生模型學習到了良好的表示。 為什麼呢? 下面通過描述該領域的一些關鍵算法來進行說明 :
1、BARLOW TWINS:這是一種受神經科學啟發的算法,基于 1961 年發表的論文的發現。它仍然使用如上所述的帶有增強圖像的聯合嵌入式架構。但是它核心思想是使圖像嵌入輸出之間的互相關矩陣盡可能接近單位矩陣。 這個簡單的想法避免了複雜的解決方案,并獲得了 ImageNet 上的 SOTA 性能。并且它在高維度上效果更好,不需要不對稱,不需要大批量的數據或内存存儲或任何其他啟發式方法來使其工作。
下圖解釋了算法的整體架構。 單個圖像在增強策略的分布上被處理兩次。 然後兩個圖像都通過相同的編碼器網絡。 損失函數的定義方式是将互相矩陣簡化為單位矩陣。
損失函數非常直觀
這裡 C 是兩個圖像的嵌入之間的互相關矩陣。 在這裡沒有使用任何負樣本!
第一項,當所有 C_ii 為 1 即相關矩陣的對角元素為 1 時,損失函數中的不變項最小。這使得随着相關性的加強,嵌入對增強處理保持不變。第二項,即冗餘縮減項強制非對角線值為 0,即它使嵌入的其他維度去相關。 這使得模型在增強處理的同時學習有關樣本的非冗餘信息。
2、BYOL:這種方法不像 Barlow Twins 那樣簡單,因為它需要某些啟發式方法才可以正常工作。 它依賴于兩個神經網絡(target和 target),并試圖從online 中預測target。 兩個網絡中的權重不同。 為了在架構中引入不對稱性以避免瑣碎的常量嵌入,target網絡中引入了預測器模塊。
本文中沒有對BYOL進行像 BARLOW TWINS 清晰和直觀的解釋,所以如果想了解其詳細内容請參考原論文:arxiv 2006.07733
另外還有一種最新的方法 VICReg(arxiv:2105.04906)如果有幾乎的話會在後面介紹
總結總結整篇文章,下圖展示了 SSL 在 NLP 和計算機視覺中的細分。
最後就是引用:
作者:Sharad Joshi
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!