天天看點

人工智能的下半場,一定少不了自監督學習

AI科技評論按:深度學習在計算機視覺、自然語言處理、語音識别等領域的廣泛應用催生了人工智能的第四次爆發。然而,目前主流的監督式學習任務往往過度依賴于人工标注,即所謂「有多少人工就有多少智能」。是以,通過自監督的方式自動生成監督信号成為了越來越多人工智能從業者的選擇。本文從圖像、視訊、控制三個角度分别介紹了自監督表征學習的最新進展,值得一讀!

人工智能的下半場,一定少不了自監督學習

作者 | Lilian Wang 王荔

編譯 | MrBear

對于給定的任務,在擁有足夠的标簽的情況下,監督式學習可以很好地解決該問題。想要得到好的性能,往往需要大量的資料标簽,但是手動收集資料的成本很高(例如,ImageNet),而且也很難對資料集進行擴充。

考慮到無标簽資料(例如,免費的文本、網絡上所有的圖像)的資料量遠遠超過了數量有限的人為标記的資料集,如果不使用這些無标簽資料是一種極大的浪費。然而,無監督學習是很困難的,而且相較于監督式學習往往要低效得多。

如果我們可以在不花費成本的情況下為無标簽資料打上标簽,并且以有監督的方式訓練無監督資料,那會怎麼樣呢?我們可以通過一種特殊的形式建立一個監督式學習任務,使用待預測部分之外的資訊來預測某一個子集的資訊,進而達到訓練的目标。這樣一來,所有需要的資訊(包括輸入資料和相應的标簽)都具備了。這就是所謂的「自監督學習」。

這一思想已經被廣泛應用于語言模組化任務中。對于語言模型來說,一個預設的任務就是在給定之前的文字序列的情況下預測下一個單詞。BERT 加入了兩個輔助任務,它們都依賴于自己生成的标簽。

人工智能的下半場,一定少不了自監督學習
圖 1:建構自監督任務的方法總結(圖檔來源:LeCun 的演講, https://www.youtube.com/watch?v=7I0Qt7GALVk

),圖中自上而下分别為:(1)根據所有待預測部分之外的資訊預測任意一部分資訊。(2)根據過去預測未來。(3)根據過去最近的情況預測未來。(4)根據現在預測過去。(5)根據底層資訊預測頂層資訊。(6)根據可見的資訊預測不可見的資訊。(7)假設有一部分輸入資料未知,并且對其進行預測。

這裡呈上一份精心收集的自監督學習論文清單:

https://github.com/jason718/awesome-self-supervised-learning

。如果你對此感興趣,并想進行更加深入的研究,可以查閱這些論文。

請注意,本文并非僅僅關注自然語言處理(NLP)的語言模組化或生成式模型,涉及的内容包括以下幾大部分:

一、為什麼要進行自監督學習?

二、 基于圖像的自監督學習

  1. 變形
  2. 圖塊
  3. 着色
  4. 生成式模組化

    三、基于視訊的自監督學習

  5. 追蹤
  6. 幀排序
  7. 視訊着色

    四、基于控制的自監督學習

  8. 多視角度量學習
  9. 自主目标生成

    五、 參考文獻

自監督學習使我們能夠無需額外成本就可以利用根據資料得出各種标簽,這個動機非常直接。生成一個帶有「幹淨」(無噪聲)的标簽的資料集的成本是很高的,但無标簽的資料卻無時無刻不在産生。為了利用大量的無标簽資料,一種解決方法是合理設定學習目标,以便從資料本身中得到監督信号。

自監督任務(也稱為 pretext 任務)要求我們考慮監督損失函數。然而,我們通常不關心該任務最終的性能。實際上,我們隻對學習到的中間表征感興趣,我們期望這些表征可以涵蓋良好的語義或結構上的意義,并且能夠有益于各種下遊的實際任務。

舉例而言,我們可以随機旋轉圖像,并訓練一個模型來預測每個輸入圖像是如何被旋轉的。這個旋轉預測任務是人為構造的,是以就像我們對待輔助任務一樣,實際上的準确率并不重要。但是,我們期望該模型能夠學習到用于真實世界任務的高品質的潛變量,例如,隻用很少的帶标簽樣本建構一個目辨別别分類器。

一般來說,所有的生成式模型都可以被看做是自監督的,但是它們的目标各不相同:生成式模型重點關注建立各種各樣逼真的圖檔,而自監督表征學習則關注生成對于多種任務普遍有幫助的良好特征。生成式模型并不是本文關注的重點,如果對此感興趣可以參閱下面的博文:

https://lilianweng.github.io/lil-log/tag/generative-model

二、基于圖像的自監督學習

研究人員針對圖像的自監督表征學習已經提出了很多的思路。一種常見的工作流程是:在一個或多個使用無标簽圖像的pretext 任務上訓練模型,然後使用該模型的一個中間特征層,為 ImageNet 分類任務的多分類 Logistic 回歸分類器提供輸入。

最近,一些研究人員提出利用有标簽的資料訓練監督式學習,同時利用無标簽資料資料,在共享權重的情況下,訓練自監督的pretext 任務,例如,Zhai 等人于 2019 年發表的論文「S4L: Self-Supervised Semi-Supervised Learning」(論文連結:

https://arxiv.org/abs/1905.03670

)和 Sun 等人于2019 年發表的論文「Unsupervised Domain Adaptation through Self-Supervision」(論文連結:

https://arxiv.org/abs/1909.11825

)。

1、變形

我們期望圖像上的細微變形不會改變其原始語義或幾何形式。我們可以認為輕微變形後的圖像與原始圖像相同,是以期望學習到的特征對于變形操作具有不變性。

Dosovitskiy 等人于 2015 年發表的「Exemplar-CNN」(相關論文:

https://arxiv.org/abs/1406.6909

),使用無标簽的圖像圖塊建立了替代的訓練資料集:

  1. 在不同位置和不同的尺度的圖像上進行采樣,得到 N 個 32*32 像素的圖塊。隻從梯度較大的區域選取圖塊,因為這些區域包含了邊緣,更有可能包含物體或物體的一部分。它們是「模範」圖塊。
  2. 通過應用各種各樣的随機變換(例如,平移、旋轉、縮放等)對每個圖塊進行變形。我們認為最終得到的所有變形後的圖塊都屬于同一個代理類。
  3. Pretext 任務需要能夠将一組替代類區分開來。我們可以任意建立所需的替代類。
人工智能的下半場,一定少不了自監督學習

圖 2:左上角是一隻可愛的鹿的原始圖塊。在應用了随機變換後,産生了各種變形後的圖塊。在 pretext 任務中,所有這些圖塊都應該被歸為同一類。(圖檔來源,Dosovitskiy 等人于 2015 年發表的「Exemplar-CNN」)

旋轉整張圖像(Gidaris 等人于 2018 年發表的論文「Unsupervised Representation Learning by Predicting Image Rotations」,論文連結:

https://arxiv.org/abs/1803.07728

)是另一種有趣且低成本的方法,可以在保持語義内容不變的情況下修改輸入圖像。每個輸入圖像首先随機旋轉 90 度的倍數,分别對應于 [0°,90°,180°,270°]。我們訓練模型去預測應旋轉了多少度,是以這是一個 4 分類問題。

為了識别出旋轉了不同角度的同一張圖像,模型必須學會識别進階目标部分(如頭部、鼻子和眼睛),并識别出這些部分的相對位置,而不是僅僅識别出局部模式。Pretext 任務使模型以這種方式學習物體的語義概念。

人工智能的下半場,一定少不了自監督學習

圖 3:通過旋轉整張圖像進行自監督學習的示意圖。模型通過學習預測旋轉了多少度。(圖檔來源:Gidaris 等人于 2018 年發表的論文「Unsupervised Representation Learning by Predicting Image Rotations」)

2、圖塊

第二類自監督學習任務從一張圖像中抽取出多個圖塊,并要求模型預測出這些圖塊之間的關系。

Doersch 等人于 2015 年發表的論文「Unsupervised Visual Representation Learning by Context Prediction」(論文連結:

https://arxiv.org/abs/1505.05192

)将 pretext 任務形式化定義為預測同一張圖像中随機兩個圖塊之間的相對位置。為了識别出不同部分之間的相對位置,模型需要了解目标的空間環境。

我們通過下面的方式對訓練使用的圖塊進行采樣:

  1. 在不參考任何圖像内容的情況下,随機采樣第一個圖塊。
  2. 考慮第一個圖塊處于一個 3*3 網格的中央,則從與第一個圖塊相鄰的周圍 8 個位置中采樣得到第二個圖塊。
  3. 為了避免模型僅僅捕獲到低級的不重要的信号(例如,連接配接一條跨越邊界的直線或将局部模式配對),我們通過以下方式引入額外的噪聲:

    (1)增加圖塊之間的間隙

(2)細小的抖動

(3)随機地對一些圖塊進行下采樣,使其總像素為 100,然後對其進行上采樣,進而實作對像素化的魯棒性

(4)将綠色和品紅色調成灰色,或随機丢棄 3 個顔色通道中的 2 個(詳見下方對「色差」的介紹)

  1. 訓練模型預測第二個圖塊将選用相鄰的 8 個位置中的哪一個,這是一個 8 分類問題。
人工智能的下半場,一定少不了自監督學習

圖 4:通過預測兩個随機圖塊的相對位置進行自監督學習的示意圖(圖檔來源:Doersch 等人于 2015 年發表的論文「Unsupervised Visual Representation Learning by Context Prediction」)

除了諸如邊界模式或紋理等普通信号,我們還發現了另一個有趣且令人有點驚訝的平凡解,我們将其稱之為「色差」。它是由穿過透鏡的不同波長的光的焦距不同引起的。在此過程中,顔色通道之間可能存在微小偏移。

是以,該模型可以通過簡單比較綠色和品紅色在兩個不同圖塊中被區分開來的程度,來學習識别出相對位置。這是一個簡單的解決方案,與圖像内容無關。預處理圖像時,通過将綠色和品紅轉換成灰色或随機丢棄 3 個顔色通道中的 2 個,可以避免這種平凡解。

人工智能的下半場,一定少不了自監督學習

圖 5:發生色差的示意圖

由于我們已經在上述任務中為每一張圖像設定了一個 3*3 的網格,為什麼不使用所有 9 個圖塊而僅僅使用 2 個圖塊來使得任務更加困難呢?沿着這種思路,Noroozi 和 Favaro 于 2016 年設計了一個「jigsaw」拼圖遊戲作為 pretext 任務:訓練模型将 9 個打亂的圖塊放回初始的位置。

卷積網絡以共享的權重獨立處理每個圖塊,并根據預定義的排列組合輸出每個圖塊索引的機率向量。為了控制「jigsaw」拼圖遊戲的難度,該論文提出根據預定義的排列集合打亂圖塊,并對模型進行配置,以預測集合中所有索引的機率向量。

因為将輸入的圖塊打亂的方式不會改變預測的正确順序,因而使用具有排列不變性的圖卷積網絡(GCN)可以不必對同一個圖塊集進行多次打亂操作,進而提高訓練速度,詳情請參閱論文「PIC: Permutation Invariant Critic for Multi-Agent Deep Reinforcement Learning」(論文連結:

https://arxiv.org/abs/1911.00025
人工智能的下半場,一定少不了自監督學習

圖 6:通過解決 jigsaw 拼圖問題進行自監督學習的示意圖(圖檔來源:Noroozi 和 Favaro 于 2016 年發表的「Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles」)

另一個思路是,将「特征」或「視覺基元」視為一個标量值屬性,該屬性可以根據多個圖塊求和得到,也可以在不同圖塊間進行對比。然後,可以通過計數特征和簡單的算術來定義不同圖塊之間的關系(可參考Noroozi 等人于 2017 年發表的論文「Representation Learning by Learning to Count」,論文連結:

https://arxiv.org/abs/1708.06734

該論文考慮了兩種不同的變換:

  1. 放縮:如果一個圖像放大了 2 倍,視覺基元的數量應該保持不變。
  2. 平鋪:如果圖像平鋪成了一個 2*2 的網格,視覺基元的數量之和應該是原始特征計數的 4 倍。

該模型将使用上述特征計數關系學習一個特征編碼器 φ(.)。給定輸入圖像 x∈Rm×n×3,考慮下面兩類變換操作:

  1. 下采樣操作:D:Rm×n×3↦Rm/2×n/2×3 長和寬分别下采樣為原始圖像的二分之一
  2. 平鋪操作:Ti:Rm×n×3↦Rm/2×n/2×3 從圖像的 2*2 網格中抽取出第 i 個圖塊

我們期望通過學習得到:

人工智能的下半場,一定少不了自監督學習

是以,均方誤差(MSE)損失可以寫成:

人工智能的下半場,一定少不了自監督學習

為了避免平凡解 φ(x)=0,∀x,我們還加入了另一個損失項來放大兩張不同的圖像之間的特征差異:

人工智能的下半場,一定少不了自監督學習

其中 y 是與 x 不同的另一張輸入的圖檔,c 是一個标量常數。最終的損失函數為:

人工智能的下半場,一定少不了自監督學習
人工智能的下半場,一定少不了自監督學習

圖 7:通過計數特征進行自監督學習的示意圖(圖檔來源:Noroozi 等人于 2017 年發表的「Representation Learning by Learning to Count」)

3、着色

着色可以被用作一個強大的自監督任務:訓練模型對灰階輸入圖像進行着色;确切地說,我們的任務是将該圖像映射到量化的色彩值輸出的分布上(詳見 Zhang 等人于 2016 年發表的「Colorful Image Colorization」,論文連結:

https://arxiv.org/abs/1603.08511

模型的輸出顔色在 CIE Lab 色彩空間中,而 Lab 色彩空間的設計初衷就是為了近似人類的視覺系統。相反,RGB 和 CMYK 則對實體裝置的色彩輸出進行了模組化。

L 分量對應于人類對亮度的感覺;L=0 代表全黑,而 L*=100 代表全白。

a* 分量代表綠色(負)到品紅色(正)之間的值

b* 分量代表藍色(負)到黃色(正)之間的值

由于着色問題的多模态特性,預測的機率分布在二值化的色彩值上的交叉熵損失優于原始顔色值的 L2 損失。ab 色彩空間被量化為 10 個等級。

為了平衡常用顔色(通常 ab 值較低,常見的背景如雲彩、牆壁和灰塵會使用這些顔色)和罕見的顔色(這些顔色可能與圖像中的關鍵物體有關),我們通過加重不常見顔色的權重項來重新平衡損失函數。這就像為什麼我們需要「tf」和「idf」在資訊檢索模型中為單詞打分。權重項被構造為:(1-λ) ×高斯核平滑的經驗機率分布 + λ × 一個均勻分布,這兩種分布都在量化的 ab 色彩空間上。

4、生成式模組化

生成式模組化的 pretext 任務是在學習有意義的潛在表征的同時重建原始輸入。

去噪自動編碼器(詳見 Vincent 等人于 2018 年發表的「Extracting and Composing Robust Features with Denoising Autoencoders」,論文連結:

https://www.cs.toronto.edu/~larocheh/publications/icml-2008-denoising-autoencoders.pdf

)會學習根據部分損壞或帶有随機噪聲的圖像恢複出原圖像。這一設計的靈感源于這樣一個事實:即使有噪聲,人類也可以輕松地識别出圖檔中的對象,這表明算法可以提取關鍵的視覺特征,并将其與噪聲分離。詳情請參閱此博文:

https://lilianweng.github.io/lil-log/2018/08/12/from-autoencoder-to-beta-vae.html#denoising-autoencoder

我們訓練上下文編碼器(詳見 Pathak 等人于 2016 年發表的論文「Context Encoders: Feature Learning by Inpainting」,論文連結:

https://arxiv.org/abs/1604.07379

)來填補圖像中确實的一塊。令 M^ 為一個二值掩膜,其值為 0 代表丢棄該像素,其值為 1 代表保留輸入像素。我們使用一個 L2 重建損失和對抗性損失的組合來訓練該模型。通過掩膜定義的删除區域的形狀是任意的。

人工智能的下半場,一定少不了自監督學習

其中 E(.) 是編碼器,而 D(.) 是解碼器。

人工智能的下半場,一定少不了自監督學習

圖 8:上下文編碼器的示意圖(圖檔來源:Pathak 等人于 2016 年發表的論文「Context Encoders: Feature Learning by Inpainting」)

當我們将掩膜應用于一張圖像上時,上下文編碼器會删除部分區域彙總所有顔色通道的資訊。那麼,如果我們隻隐藏一部分顔色通道的資訊會怎麼樣呢?「split-brain」自編碼器(詳見 Zhang 等人于 2017 年發表的論文「Split-Brain Autoencoders: Unsupervised Learning by Cross-Channel Prediction」,論文連結:

https://arxiv.org/abs/1611.09842

)根據其餘的通道預測一個顔色通道的子集,進而做到這一點。

令帶有 c 個顔色通道的資料張量 x∈Rh×w×|C| 為第 l 層網絡的輸入,它被分為兩個不相交的部分 x1∈Rh×w×|C1| 和 x2∈Rh×w×|C2| ,其中 C1,C2⊆C。接着,我們訓練兩個子網絡來完成兩個互補的預測任務:網絡 f1 根據 x1 預測 x2,而另一個網絡 f2 則根據 x2 預測 x1。如果色彩值被量化了,這裡使用的損失函數是 L1 損失或交叉熵損失。

這種分裂可能發生在 RGB-D 或 Lab* 色彩空間中,也可能發生在卷積神經網絡(CNN)的每一層中,其中通道的數量可能是任意的。

人工智能的下半場,一定少不了自監督學習

圖 9:「split-brain」自編碼器的示意圖。(圖檔來源:Zhang 等人于 2017 年發表的論文「Split-Brain Autoencoders: Unsupervised Learning by Cross-Channel Prediction」)

生成對抗網絡(GAN)可以學習到從簡單的潛變量到任意複雜資料分布的映射。許多研究已經表明,這種生成式模型的潛空間可以捕獲資料中的語義變化。例如,當我們使用人臉資料訓練 GAN 時,一些潛變量與面部表情、眼鏡、性别等特征相關(詳見 Radford 等人于 2016 年發表的論文「Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks」,論文連結:

https://arxiv.org/abs/1511.06434

雙向 GAN(詳見 Donahue 等人于 2017 年發表的論文「Adversarial Feature Learning」,論文連結:

https://arxiv.org/abs/1605.09782

)則引入了一種額外的編碼器 E(.) 來學習從輸入到潛變量 z 的映射。判别器 D(.) 在輸入資料和潛在表征構成的聯合空間(x,z)中做預測,進而将生成的資料對(x,E(x))與真實資料對(G(z),z)區分開來。我們訓練該模型優化的目标為:minG,EmaxDV(D,E,G),其中生成器 G 和 編碼器 E 學着生成足夠逼真的資料和潛變量來騙過判别器,同時判别器 D 試圖區分真實資料和生成的資料。

人工智能的下半場,一定少不了自監督學習

圖 10:雙向 GAN 工作原理示意圖(圖檔來源:Donahue 等人于 2017 年發表的論文「Adversarial Feature Learning」)

視訊包含一系列語義上相關的幀。相鄰的幀在時間上更接近,并且比距離更遠的幀更具相關性。視訊幀的順序反映了推理和實體邏輯的某些規則。例如,物體的運動應該是流暢的,重力是向下的。

常見的工作流程是,在一個或多個帶有無标簽視訊的 pretext 任務上訓練模型,然後将該模型的一個中間特征層作為輸入,在基于動作分類、分割或物體跟蹤等下遊任務中對模型進行調優。

人工智能的下半場,一定少不了自監督學習

原文釋出時間:2019-11-29

本文作者: Lilian Wang 王荔

本文來自雲栖社群合作夥伴“

AI科技評論

”,了解相關資訊可以關注“

繼續閱讀