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

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

對於給定的任務,在擁有足夠的標籤的情況下,監督式學習可以很好地解決該問題。想要得到好的性能,往往需要大量的數據標籤,但是手動收集數據的成本很高(例如,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. 生成式建模

三、基於視頻的自監督學習

  • 1. 追蹤

  • 2. 幀排序

  • 3. 視頻著色

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

  • 1. 多視角度量學習

  • 2. 自主目標生成

五、 參考文獻

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

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

自監督任務(也稱為 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:通過旋轉整張圖像進行自監督學習的示意圖。模型通過學習預測旋轉了多少度。(圖片來源:Gida

ris 等人於 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 個(詳見下方對「色差」的介紹)

4. 訓練模型預測第二個圖塊將選用相鄰的 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. 平鋪操作:T

i: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。如果色彩值被量化了,這裡使用的損失函數是 L

1損失或交叉熵損失。

這種分裂可能發生在 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 任務上訓練模型,然後將該模型的一箇中間特徵層作為輸入,在基於動作分類、分割或物體跟蹤等下游任務中對模型進行調優。

1、追蹤

一個物體的運動情況可以通過一系列視頻幀進行追蹤。在臨近幀中捕獲同一物體的方式之間的差異並不大,這些差異通常是由物體或攝像機的微小運動觸發的。Wang 和 Gupta 在2015年的論文「Unsupervised Learning of Visual Representations using Videos」(論文鏈接:https://arxiv.org/abs/1505.00687)中提出了一種通過追蹤視頻中的移動物體來實現對視覺表徵的無監督學習的方法。

他們在一個較小的時間窗口(例如 30 幀)內對圖塊進行精確的追蹤。第一個圖塊 x 和最後一個圖塊 x

+被選作訓練數據點。如果我們直接訓練模型最小化兩個圖塊的特徵向量之間的差距,該模型可能只能學著將所有圖塊映射到同一個值上。為了避免這種平凡解,和上面一樣,我們加入了隨機的第三個圖塊 x-。該模型通過使兩個被追蹤到的圖塊的距離在特徵空間中比第一個圖塊和另一個隨機的圖塊之間的距離更近,來學習表徵,即 D(x,x))>D(x,x+),其中 D(.) 代表餘弦距離:

損失函數為:L(x,x+,x)=max(0,D(x,x+)−D(x,x)+M)+權值衰減正則項

其中,M 是控制兩個距離之間最小差距的標量常數;論文中的 M=0.5。損失函數使得在最優情況下存在 D(x,x)>=D(x,x+)+M。

這種形式的損失函數在人臉識別任務(其中數據集包含從各個相機角度拍攝的多人照片)中也被稱為三元組損失(可參考相關論文「FaceNet: A Unified Embedding for Face Recognition and Clustering」:https://arxiv.org/abs/1503.03832)。令 x

a為某個特定人的「anchor」圖像,xp為從另一個角度拍攝的同一個人的正例圖像,xn為另一個人的負例圖像。在嵌入空間中,xa與 xp 的距離應該比 xn與 xp的距離更近:

「n-pair」損失(相關論文鏈接:https://papers.nips.cc/paper/6200-improved-deep-metric-learning-with-multi-class-n-pair-loss-objective)的形式與三元組損失略有不同,它也經常被用於學習機器人任務中的觀測嵌入。更多相關的內容請參閱後續章節。

人工智能的下半场,一定少不了自监督学习

圖 11:通過追蹤視頻中的物體進行自監督學習的方法概覽。(a)在較短的軌跡中識別運動圖塊;(b)使用共享的權值,將兩個相關聯的圖塊和一個隨機圖塊輸入給一個卷積神經網絡。(c)損失函數迫使相關圖塊之間的距離比隨機圖塊之間的距離更近。(圖片來源:Wang 和 Gupta 於2015年發表的論文「Unsupervised Learning of Visual Representations using Videos」)

我們通過下面的兩步無監督光流方法追蹤並抽取相關聯的圖塊:

  • 1. 獲取「SURF」興趣點並使用「IDT」獲取每個 SURF 點的運動信息。

  • 2. 給定「SURF」興趣點的運動軌跡,將光流強度大於 0.5 像素的點分類為運動點。

在訓練時,給定一對相關的圖塊 x 和 x+,在同一批中採樣 K 個隨機的圖塊{x} ,從而構成 K 個訓練三元組。經過幾輪迭代後,我們使用困難負例挖掘讓訓練更困難並更高效。換句話說,我們將隨機搜索最大化損失的圖塊,並使用它們更新梯度。

2、幀排序

視頻幀會自然地按時間先後順序排列。研究人員提出了一些自監督的任務,期望良好的表徵可以學到正確的幀排序方式。

其中一種思路是:對幀的順序進行驗證(詳見 Misra 等人於 2016 年發表的論文「Shuffle and Learn: Unsupervised Learning using Temporal Order Verification」,論文鏈接:https://arxiv.org/abs/1603.08561)。pretext 任務用以確定視頻中的幀序列是否以正確的時間順序排列(時序檢驗),模型需要追蹤並推斷物體在整個幀中的微小運動,才能完成此任務。

訓練幀是從運動變化較大的窗口中採樣得到的。每次採樣得到 5 個幀(fa,fb,fc,fd,fe),時間戳的順序為 ab,fc,fd)和兩個負例元組(fb,fa,fd)和(f

b,fe,fd)。參數 τmax=|b-d| 控制正例訓練實例的難度(即從更高到更難),而參數 τmin=(|a-b|,|d-e|)控制負例的難度(即從更低到更難)。

實驗結果表明,將視頻幀順序檢驗的 pretext 任務作為一個預訓練步驟,可以提升動作識別下游任務的性能。

人工智能的下半场,一定少不了自监督学习

圖 12:通過驗證視頻幀的順序學習表徵的方法概覽。(a)數據採樣過程;(b)模型是一個三元組連體網絡,其中所有輸入幀共享權值。(圖片來源:Misra 等人於 2016 年發表的論文「Shuffle and Learn: Unsupervised Learning using Temporal Order Verification」)

O3N(「Odd-One-Out 」網絡;詳見 Fernando 等人於 2017 年發表的論文「Self-Supervised Video Representation Learning With Odd-One-Out Networks」,論文鏈接:https://arxiv.org/abs/1611.06646)中的自監督任務也是以視頻幀序列驗證為基礎。相比上面的任務來說,該任務的進步在於它從多個視頻片段中選取除了不正確的序列。

給定 N+1 個輸入視頻片段,其中一個片段中的視頻幀被打亂了,因此具有錯誤的幀順序,而其餘 N 個片段保持了正確的時間順序。O3N 網絡學著去預測被打亂的視頻片段是哪一個。在他們的試驗中,一共用到了 6 個輸入片段,每個片段包含 6 個幀。

無論是在底層的物理學意義上(例如,重力將物體吸引到地上;煙霧升騰起來;水往下流)還是在高級的時間推理層面上(例如,魚會向前遊;你可以打破一個雞蛋但不能將其復原),視頻中的時間箭頭都包含了非常有用的信息。因此,我們受此啟發想到了另一個點子:無論視頻是往前播放還是倒放,都可以通過預測時間箭頭(AoT)來學習潛在表徵(詳見 Wei 等人於 2018 年發表的論文「Learning and Using the Arrow of Time」,論文鏈接:https://www.robots.ox.ac.uk/~vgg/publications/2018/Wei18/wei18.pdf)

為了預測時間箭頭,分類器需要能夠同時感知底層的物理意義和高級的語義。Wei 等人提出的 T-CAM(時序類激活映射)網絡接收 T 組輸入,每一組包含若干個光流幀。每一組經過卷積層處理後的輸出會被連接起來,然後輸入給二分類 Logistic 迴歸分類器,從而預測時間箭頭。

人工智能的下半场,一定少不了自监督学习

圖 13:通過預測時間箭頭進行自監督學習的方法概覽。(a)連接多組幀序列的卷積特徵。(b)最頂層包含 3 個卷積層和一個平均池化層。(圖片來源:Wei 等人於 2018 年發表的論文「Learning and Using the Arrow of Time」)

有趣的是,在數據集中存在一些人為的提示因素。如果處理不當, 它們可能導致我們得到不依賴於實際視頻內容的普通分類器:

  • 由於視頻壓縮,黑色的幀可能並不完全是黑色的,它們可能包含了某些時間序列的信息。因此,在實驗中應該刪除黑色的幀。

  • 攝像機大幅的運動(例如垂直平移或放大/縮小),也為時間箭頭提供了強烈的信號,但這與視頻內容無關。處理階段應該使攝像機運動穩定。

實驗結果表明,將時間箭頭(AoT)pretext 任務作為一個預訓練步驟,可以提高動作分類下游任務的性能。請注意,這裡仍然需要進行調優。

3、視頻著色

Vondrick 等於 2018 年發表的論文「Tracking Emerges by Colorizing Videos」(論文鏈接:https://arxiv.org/abs/1806.09594)中,提出將視頻著色作為一種自監督學習問題,從而產生了豐富的表徵形式,這樣的表徵可以被用於視頻分割和無標籤視覺區域跟蹤,而無需進行額外的調優。

與基於圖像的著色、不同,這裡的任務是通過利用視頻幀之間色彩的自然時間一致性,將顏色從正常的參考幀複製到另一個灰度目標幀(因此,這兩個幀在時間上不應相距太遠)。為了一致地複製顏色,該模型旨在學習跟蹤不同幀中的相關像素。

人工智能的下半场,一定少不了自监督学习

圖 14:通過將一個參考幀的顏色複製給灰度圖像目標幀進行視頻著色。(圖片來源:Vondrick 等人於 2018 年發表的論文「Tracking Emerges by Colorizing Videos」)

這個想法既簡單又很巧妙。令 ci 為參考幀中第 i 個像素的真實顏色,cj為目標幀中第 j 個像素的顏色。在目標幀中第 j 個像素的顏色的預測值 c^j 是所有參考幀中像素顏色的加權和,其中加權項用於度量下面的相似度:

其中 f 是學到的相應像素的嵌入;i’ 是參考幀中所有像素的索引。加權項實現了基於注意力的指示機制,這與匹配網絡和指針網絡的思路相類似。由於完整的相似度矩陣可能非常大,參考幀和目標幀都會被下采樣。正如 Zhang 等人在 2016 年發表的論文「Colorful Image Colorization」(論文鏈接:https://arxiv.org/abs/1603.08511)中所做的那樣,cj和 c^j之間的多分類交叉熵於量化的顏色一起使用。

基於參考幀被標記的方式,該模型可以被用來實時地完成諸如追蹤分割結果或追蹤人體姿態等基於顏色的下游任務(無需調優)。

人工智能的下半场,一定少不了自监督学习

圖 15:使用視頻著色技術進行追蹤物體分割和人體姿態(圖片來源:Vondrick 等人於 2018 年發表的論文「Tracking Emerges by Colorizing Videos」)

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

在現實世界中運行強化學習策略時(例如控制一個物理機器人的視覺輸入),合理地跟蹤狀態、獲得獎勵信號或者判斷是否真正實現了某個目標是十分重要的。這種視覺數據存在大量與真實狀態無關的噪聲,因此不能通過像素級的比較來推斷出狀態的等價性。自監督表徵學習在學習有用的狀態嵌入方面顯示出了巨大的潛力,可以直接作為控制策略的輸入。

本章討論的所有例子都來自於機器人學習領域,主要是關於多個攝像機視角的狀態表徵和目標表徵。

1、多視角度量學習

本文前面的章節已經多次提及了度量學習的概念。一個常見的設定是:給定一個樣本的三元組(anchor sa,正樣本 sp,負樣本 sn),學習得到的表徵嵌入 ϕ(s) 滿足:sa 在潛空間中離 sp 較近,但是離 sn較遠。

Grasp2Vec(詳見Jang 和 Devin 等人於 2018 年發表的論文「Grasp2Vec: Learning Object Representations from Self-Supervised Grasping」,論文鏈接:https://arxiv.org/abs/1811.06964)旨在根據自由的、無標籤的抓取或歐東,學習一個在機器人抓取任務中的以物體為中心的視覺表徵。「以物體為中心」通常意味著,無論環境或機器人看起來如何,如果兩張圖像包含相似的項,它們就應該被映射到相似的表徵上,否則它們的嵌入應該距離很遠。

人工智能的下半场,一定少不了自监督学习

圖 16:關於 grasp2vec 學習以物體為中心的狀態嵌入的方法的概念示意圖(圖片來源:Jang 和 Devin 等人於 2018 年發表的論文「Grasp2Vec: Learning Object Representations from Self-Supervised Grasping」)

一個抓取系統可以判斷出它是否移動了一個物體,但是不能判斷移動的究竟是哪個物體。Jang 等人設置了攝像機拍攝整個實驗場景和抓取的物體的圖片。在訓練的早期,抓取機器人會隨機抓取任何物體 o,從而產生一個圖像的三元組(spre,spost,o):

  • o 是被抓取舉到攝像機跟前的物體的圖像

  • spre是抓取前場景的圖像,此時 o 在托盤中

  • spost 是抓取後場景的圖像,此時 o 已經不再托盤中

為了學習以物體為中心的表徵,我們希望 spre 和 spost 的嵌入之間的差異能夠反映出圖像中的目標 o 消失了。這個想法非常有趣,它與詞嵌入領域觀察到的關係非常類似,例如:distance(國王,女王)≈distance(男人,女人)

令 ϕs和 ϕo分別為場景和物體的嵌入函數。該模型通過使用 n-pair 損失最小化 ϕs(spre)−ϕs(spost) 和 ϕo(o) 之間的距離學習表徵:

其中 B 代表一批(anchor,正樣本)的樣本對。

當我們將表徵學習構造為一種度量學習時,往往選用 n-pair 損失。N-pair 損失將一個 mini-batch 中所有不在一對裡面的正實例視為負例,而不是顯式地處理一個(anchor,正樣本,負樣本)三元組。

嵌入函數 ϕo 非常適合使用一張圖像表徵一個目標。獎勵函數能夠量化實際抓住的物體 o 與目標之間的距離,我們將獎勵函數定義為:r=ϕo(g)·ϕo(o)。請注意,計算獎勵只依賴於學習到的潛在空間,並不涉及真實的位置,所以這種方法可以被用來訓練真正的機器人。

人工智能的下半场,一定少不了自监督学习

圖 17:Grasp2Vec 嵌入的定位結果。在預抓取場景中定位目標物體的熱力圖被定義為:ϕo(o)ϕs,spatial(spre),其中 ϕs,spatial為 ReLU 激活之後最後個 resnet 塊的輸出。第四列是一個失敗的案例,而最後三列採用真實的圖像作為目標。(圖片來源,Jang 和 Devin 等人於 2018 年發表的論文「Grasp2Vec: Learning Object Representations from Self-Supervised Grasping」)

除了基於嵌入相似度的獎勵函數,還有其它一些在 Grasp2Vec 框架下的技巧可以用來訓練強化學習策略:

  • 事後歸因標籤 P:通過將隨機抓取的物體標記為正確目標來增強數據集,例如 HER(事後經驗回放;詳見 Andrychowicz 等人於 2017 年發表的論文「Hindsight Experience Replay」,論文鏈接:https://papers.nips.cc/paper/7090-hindsight-experience-replay.pdf)

  • 輔助目標增強:通過使用未完成的目標重新標記變換操作,進一步增強回放緩衝區。在每一輪迭代中,抽樣得到兩個目標,並且用這兩個目標來增加新的變換得到回放緩衝區中。

TCN(時間對比網絡,詳見 Sermanet 等人於 2018 年發表的論文「Time-Contrastive Networks: Self-Supervised Learning from Video」,論文鏈接:https://arxiv.org/abs/1704.06888)根據多個攝像機的視角拍攝的視頻進行學習,作者直觀上認為,同一場景同一時間的不同視點在嵌入時間不同的情況下,應該共享相同的嵌入(類似於FaceNet),即使是對於統一攝像機視點也應該是如此。因此,嵌入捕獲的是底層狀態的語義,而不是視覺相似性。TCN 嵌入使用三元組損失進行訓練。

人工智能的下半场,一定少不了自监督学习

圖 18:用於學習狀態嵌入的時間對比方法的示意圖。藍色框包圍的幀是從同一時間的兩個不同攝像機視角中選取出來的 anchor 樣本和正樣本,而紅色框包圍的幀是在另一個時間選出的負樣本。

TCN 嵌入抽取出了對於攝像機配置具有不變性的視覺特徵。它可以被用來為基於演示視頻和潛在空間觀測值之間歐氏距離的模仿學習構建一個獎勵函數。

我們還可以對 TCN 進行進一步的改進,同時從多個幀中學習嵌入,而不是根據單個幀學習,從而得到 mfTCN(多幀時間對比網絡;詳見 Dwibedi 等人於 2019 年發表的論文「Learning Actionable Representations from Visual Observations」,論文鏈接:https://arxiv.org/abs/1808.00928)。給定一組從多個同步的攝像機視點拍攝的視頻 v1,v2,…,vk,在每一段視頻中 t 時間的視頻幀和以步長 s 選取出的之前的 n-1 個視頻幀都被聚合了起來,並且被映射到了一個嵌入向量中,形成了一個大小為 (n-1)*(s+1)的回看時間窗口。每一幀首先通過了一個 CNN 提取底層特徵,然後我們使用三維時序卷積對幀進行時間聚合。該模型使用 n-pair 損失進行訓練。

人工智能的下半场,一定少不了自监督学习

圖 19:訓練 mfTCN 的採樣過程(圖片來源,Dwibedi 等人於 2019 年發表的論文「Learning Actionable Representations from Visual Observations」)

訓練數據根據下面的方式採樣得到:

1. 我們首先構建兩對視頻片段。每一對包含兩個在同步的時間步上從不同攝像機視角拍攝的片段。這兩組視頻在時間上距離應該很遠。

2. 以相同的步長,同時從從屬於同一對的每一個視頻片段中採樣出一定數量的幀。

3. 將相同時間步上的幀作為 n-pair 損失中的正樣本進行訓練,而從屬於不同對的樣本作為負樣本訓練。

而 mfTCN 嵌入可以捕獲場景中物體的位置和速度(例如在車擺系統中),也可以作為策略的輸入。

2、自主目標生成

RIG(使用假想目標的強化學習;詳見 Nair 等人於 2018 年發表的論文「Visual Reinforcement Learning with Imagined Goals」,論文鏈接:https://arxiv.org/abs/1807.04742)介紹了一種通過無監督表徵學習訓練一種以目標為條件的策略的方法。這種策略通過首先假想一些「虛構」目標然後試著實現它們的自監督方式進行學習。

人工智能的下半场,一定少不了自监督学习

圖 20:RIG 的工作流程(圖片來源:Nair 等人於 2018 年發表了的論文「Visual Reinforcement Learning with Imagined Goals」)

該任務是控制一個機器手把一個小球推到設想的位置。這個設想的位置(或稱目標),會出現在圖像中。在訓練階段,它通過 β-VAE 自編碼器同時學習狀態 s 和目標 g 的潛在嵌入,控制策略完全在潛在空間中進行操作。

假設 β-VAE 擁有一個編碼器 qϕ,該編碼器將輸入狀態映射到潛變量 z 上,而我們通過一個高斯分佈對 z 建模,同時還有一個解碼器 pψ將 z 映射回輸入狀態。RIG 中的狀態編碼器被設置為 β-VAE 的均值。

人工智能的下半场,一定少不了自监督学习

這裡的獎勵是狀態和目標嵌入向量之間的歐氏距離:r(s,g)=−‖e(s)−e(g)‖。類似於 Grasp2Vec,RIG 也通過重新標記潛在目標進行數據增強:準確地說,一半的目標是根據先驗隨機生成的,另一半目標是使用 HER 選擇的。與 Grasp2Vec 一樣,這裡的獎勵也不依賴於任何真實狀態,僅僅依賴於學到的狀態編碼,因此它可以被用來訓練真實的機器人。

人工智能的下半场,一定少不了自监督学习

圖 21:RIG 的算法(圖片來源:Nair 等人於 2018 年發表了的論文「Visual Reinforcement Learning with Imagined Goals」)

RIG 存在的問題是:假想出的目標圖片缺乏物體變化。如果一個 β-VAE 僅僅使用一個黑球來訓練,它就不能使用其它物體(比如形狀和顏色不同的方塊)來創建一個目標。受到 CVAE(條件 VAE,詳見 Sohn,Lee 和 Yan 等人於 2015 年發表的論文「Learning Structured Output Representation using Deep Conditional Generative Models」,論文鏈接:https://papers.nips.cc/paper/5775-learning-structured-output-representation-using-deep-conditional-generative-models)的啟發,一個後續的改進方案使用了 CC-VAE(以上下文環境為條件的變分自編碼器,詳見 Nair 等人於 2019 年發表的論文「Contextual Imagined Goals for Self-Supervised Robotic Learning」,論文鏈接:https://arxiv.org/abs/1910.11670)進行目標生成。

人工智能的下半场,一定少不了自监督学习

圖 22:以上下文環境為條件的 RIG 的工作流程(圖片來源:Nair 等人於 2019 年發表的論文「Contextual Imagined Goals for Self-Supervised Robotic Learning」)

一個 CVAE 是以上下文變量 c。它會訓練一個編碼器 qϕ(z|s,c) 和一個解碼器 pψ(s|z,c),請注意它們都需要用到變量 c。CVAE 損失懲罰從輸入狀態 s 傳過信息瓶頸的信息,但是允許從 c 傳遞到編碼器和解碼器的不受限的信息流。

為了創建合理的目標,CC-VAE 以一個起始狀態 s0

為條件,從而使生成的目標與 s0中的物體保持類型一致。這種目標一致性是很有必要的;例如,如果當前場景包含一個紅色的小球,但是目標中包含一個藍色的方塊,這樣就會迷惑我們的策略。

除了狀態編碼器 e(s)≜μϕ(s),CC-VAE 還會訓練第二個卷積編碼器 e0(.),將狀態 s0轉換為一個緊湊的上下文表徵 c=e0(s0)。我們故意讓兩個編碼器 e(.) 和 e0(.) 不要共享權值,期望它們對圖像變化的不同要素進行編碼。除了 CVAE的損失函數,CC-VAE 加入了額外的項來學習將 c 重建為

人工智能的下半场,一定少不了自监督学习

圖 23 :通過以上下文圖像(第一行)為條件的 CVAE 生成的假想目標的示例,而 VAE 則不能捕獲到物體的一致性(圖片來源:「Contextual Imagined Goals for Self-Supervised Robotic Learning」)

在自監督表徵學習過程中,存在一些常見的情況:

  • 將多種 pretext 任務組合起來可以提升性能;

  • 更深的網絡可以提升表徵的質量;

  • 至今,監督式學習對比基準仍然優於其它方法。

參考文獻

[1] Alexey Dosovitskiy, et al. “Discriminative unsupervised feature learning with exemplar convolutional neural networks.” IEEE transactions on pattern analysis and machine intelligence 38.9 (2015): 1734-1747.

[2] Spyros Gidaris, Praveer Singh & Nikos Komodakis. “Unsupervised Representation Learning by Predicting Image Rotations” ICLR 2018.

[3] Carl Doersch, Abhinav Gupta, and Alexei A. Efros. “Unsupervised visual representation learning by context prediction.” ICCV. 2015.

[4] Mehdi Noroozi & Paolo Favaro. “Unsupervised learning of visual representations by solving jigsaw puzzles.” ECCV, 2016.

[5] Mehdi Noroozi, Hamed Pirsiavash, and Paolo Favaro. “Representation learning by learning to count.” ICCV. 2017.

[6] Richard Zhang, Phillip Isola & Alexei A. Efros. “Colorful image colorization.” ECCV, 2016.

[7] Pascal Vincent, et al. “Extracting and composing robust features with denoising autoencoders.” ICML, 2008.

[8] Jeff Donahue, Philipp Krähenbühl, and Trevor Darrell. “Adversarial feature learning.” ICLR 2017.

[9] Deepak Pathak, et al. “Context encoders: Feature learning by inpainting.” CVPR. 2016.

[10] Richard Zhang, Phillip Isola, and Alexei A. Efros. “Split-brain autoencoders: Unsupervised learning by cross-channel prediction.” CVPR. 2017.

[11] Xiaolong Wang & Abhinav Gupta. “Unsupervised Learning of Visual Representations using Videos.” ICCV. 2015.

[12] Carl Vondrick, et al. “Tracking Emerges by Colorizing Videos” ECCV. 2018.

[13] Ishan Misra, C. Lawrence Zitnick, and Martial Hebert. “Shuffle and learn: unsupervised learning using temporal order verification.” ECCV. 2016.

[14] Basura Fernando, et al. “Self-Supervised Video Representation Learning With Odd-One-Out Networks” CVPR. 2017.

[15] Donglai Wei, et al. “Learning and Using the Arrow of Time” CVPR. 2018.

[16] Florian Schroff, Dmitry Kalenichenko and James Philbin. “FaceNet: A Unified Embedding for Face Recognition and Clustering” CVPR. 2015.

[17] Pierre Sermanet, et al. “Time-Contrastive Networks: Self-Supervised Learning from Video” CVPR. 2018.

[18] Debidatta Dwibedi, et al. “Learning actionable representations from visual observations.” IROS. 2018.

[19] Eric Jang & Coline Devin, et al. “Grasp2Vec: Learning Object Representations from Self-Supervised Grasping” CoRL. 2018.

[20] Ashvin Nair, et al. “Visual reinforcement learning with imagined goals” NeuriPS. 2018.

[21] Ashvin Nair, et al. “Contextual imagined goals for self-supervised robotic learning” CoRL. 2019. 雷鋒網雷鋒網

via https://lilianweng.github.io/lil-log/2019/11/10/self-supervised-learning.html


分享到:


相關文章: