1
雷鋒網AI科技評論按:深度學習在計算機視覺、自然語言處理、語音識別等領域的廣泛應用催生了人工智能的第四次爆發(fā)。然而,當前主流的監(jiān)督式學習任務往往過度依賴于人工標注,即所謂「有多少人工就有多少智能」。因此,通過自監(jiān)督的方式自動生成監(jiān)督信號成為了越來越多人工智能從業(yè)者的選擇。本文從圖像、視頻、控制三個角度分別介紹了自監(jiān)督表征學習的最新進展,值得一讀!
對于給定的任務,在擁有足夠的標簽的情況下,監(jiān)督式學習可以很好地解決該問題。想要得到好的性能,往往需要大量的數據標簽,但是手動收集數據的成本很高(例如,ImageNet),而且也很難對數據集進行擴展。
考慮到無標簽數據(例如,免費的文本、網絡上所有的圖像)的數據量遠遠超過了數量有限的人為標記的數據集,如果不使用這些無標簽數據是一種極大的浪費。然而,無監(jiān)督學習是很困難的,而且相較于監(jiān)督式學習往往要低效得多。
如果我們可以在不花費成本的情況下為無標簽數據打上標簽,并且以有監(jiān)督的方式訓練無監(jiān)督數據,那會怎么樣呢?我們可以通過一種特殊的形式創(chuàng)建一個監(jiān)督式學習任務,使用待預測部分之外的信息來預測某一個子集的信息,從而達到訓練的目標。這樣一來,所有需要的信息(包括輸入數據和相應的標簽)都具備了。這就是所謂的「自監(jiān)督學習」。
這一思想已經被廣泛應用于語言建模任務中。對于語言模型來說,一個默認的任務就是在給定之前的文字序列的情況下預測下一個單詞。BERT 加入了兩個輔助任務,它們都依賴于自己生成的標簽。
圖 1:構建自監(jiān)督任務的方法總結(圖片來源:LeCun 的演講,https://www.youtube.com/watch?v=7I0Qt7GALVk),圖中自上而下分別為:(1)根據所有待預測部分之外的信息預測任意一部分信息。(2)根據過去預測未來。(3)根據過去最近的情況預測未來。(4)根據現在預測過去。(5)根據底層信息預測頂層信息。(6)根據可見的信息預測不可見的信息。(7)假設有一部分輸入數據未知,并且對其進行預測。
這里呈上一份精心收集的自監(jiān)督學習論文列表:https://github.com/jason718/awesome-self-supervised-learning。如果你對此感興趣,并想進行更加深入的研究,可以查閱這些論文。
請注意,本文并非僅僅關注自然語言處理(NLP)的語言建模或生成式模型,涉及的內容包括以下幾大部分:
一、為什么要進行自監(jiān)督學習?
二、 基于圖像的自監(jiān)督學習
1. 變形
2. 圖塊
3. 著色
4. 生成式建模
三、基于視頻的自監(jiān)督學習
1. 追蹤
2. 幀排序
3. 視頻著色
四、基于控制的自監(jiān)督學習
1. 多視角度量學習
2. 自主目標生成
五、 參考文獻
自監(jiān)督學習使我們能夠無需額外成本就可以利用根據數據得出各種標簽,這個動機非常直接。生成一個帶有「干凈」(無噪聲)的標簽的數據集的成本是很高的,但無標簽的數據卻無時無刻不在產生。為了利用大量的無標簽數據,一種解決方法是合理設置學習目標,以便從數據本身中得到監(jiān)督信號。
自監(jiān)督任務(也稱為 pretext 任務)要求我們考慮監(jiān)督損失函數。然而,我們通常不關心該任務最終的性能。實際上,我們只對學習到的中間表征感興趣,我們期望這些表征可以涵蓋良好的語義或結構上的意義,并且能夠有益于各種下游的實際任務。
舉例而言,我們可以隨機旋轉圖像,并訓練一個模型來預測每個輸入圖像是如何被旋轉的。這個旋轉預測任務是人為構造的,所以就像我們對待輔助任務一樣,實際上的準確率并不重要。但是,我們期望該模型能夠學習到用于真實世界任務的高質量的潛變量,例如,只用很少的帶標簽樣本構建一個目標識別分類器。
一般來說,所有的生成式模型都可以被看做是自監(jiān)督的,但是它們的目標各不相同:生成式模型重點關注創(chuàng)建各種各樣逼真的圖片,而自監(jiān)督表征學習則關注生成對于多種任務普遍有幫助的良好特征。生成式模型并不是本文關注的重點,如果對此感興趣可以參閱下面的博文:https://lilianweng.github.io/lil-log/tag/generative-model
研究人員針對圖像的自監(jiān)督表征學習已經提出了很多的思路。一種常見的工作流程是:在一個或多個使用無標簽圖像的pretext 任務上訓練模型,然后使用該模型的一個中間特征層,為 ImageNet 分類任務的多分類 Logistic 回歸分類器提供輸入。
最近,一些研究人員提出利用有標簽的數據訓練監(jiān)督式學習,同時利用無標簽數據數據,在共享權重的情況下,訓練自監(jiān)督的pretext 任務,例如,Zhai 等人于 2019 年發(fā)表的論文「S4L: Self-Supervised Semi-Supervised Learning」(論文鏈接:https://arxiv.org/abs/1905.03670)和 Sun 等人于2019 年發(fā)表的論文「Unsupervised Domain Adaptation through Self-Supervision」(論文鏈接:https://arxiv.org/abs/1909.11825)。
1、變形
我們期望圖像上的細微變形不會改變其原始語義或幾何形式。我們可以認為輕微變形后的圖像與原始圖像相同,因此期望學習到的特征對于變形操作具有不變性。
Dosovitskiy 等人于 2015 年發(fā)表的「Exemplar-CNN」(相關論文:https://arxiv.org/abs/1406.6909),使用無標簽的圖像圖塊創(chuàng)建了替代的訓練數據集:
1. 在不同位置和不同的尺度的圖像上進行采樣,得到 N 個 32*32 像素的圖塊。只從梯度較大的區(qū)域選取圖塊,因為這些區(qū)域包含了邊緣,更有可能包含物體或物體的一部分。它們是「模范」圖塊。
2. 通過應用各種各樣的隨機變換(例如,平移、旋轉、縮放等)對每個圖塊進行變形。我們認為最終得到的所有變形后的圖塊都屬于同一個代理類。
3. Pretext 任務需要能夠將一組替代類區(qū)分開來。我們可以任意創(chuàng)建所需的替代類。
圖 2:左上角是一只可愛的鹿的原始圖塊。在應用了隨機變換后,產生了各種變形后的圖塊。在 pretext 任務中,所有這些圖塊都應該被歸為同一類。(圖片來源,Dosovitskiy 等人于 2015 年發(fā)表的「Exemplar-CNN」)
旋轉整張圖像(Gidaris 等人于 2018 年發(fā)表的論文「Unsupervised Representation Learning by Predicting Image Rotations」,論文鏈接:https://arxiv.org/abs/1803.07728)是另一種有趣且低成本的方法,可以在保持語義內容不變的情況下修改輸入圖像。每個輸入圖像首先隨機旋轉 90 度的倍數,分別對應于 [0°,90°,180°,270°]。我們訓練模型去預測應旋轉了多少度,因此這是一個 4 分類問題。
為了識別出旋轉了不同角度的同一張圖像,模型必須學會識別高級目標部分(如頭部、鼻子和眼睛),并識別出這些部分的相對位置,而不是僅僅識別出局部模式。Pretext 任務使模型以這種方式學習物體的語義概念。
圖 3:通過旋轉整張圖像進行自監(jiān)督學習的示意圖。模型通過學習預測旋轉了多少度。(圖片來源:Gida
ris 等人于 2018 年發(fā)表的論文「Unsupervised Representation Learning by Predicting Image Rotations」)
2、圖塊
第二類自監(jiān)督學習任務從一張圖像中抽取出多個圖塊,并要求模型預測出這些圖塊之間的關系。
Doersch 等人于 2015 年發(fā)表的論文「Unsupervised Visual Representation Learning by Context Prediction」(論文鏈接:https://arxiv.org/abs/1505.05192)將 pretext 任務形式化定義為預測同一張圖像中隨機兩個圖塊之間的相對位置。為了識別出不同部分之間的相對位置,模型需要理解目標的空間環(huán)境。
我們通過下面的方式對訓練使用的圖塊進行采樣:
1. 在不參考任何圖像內容的情況下,隨機采樣第一個圖塊。
2. 考慮第一個圖塊處于一個 3*3 網格的中央,則從與第一個圖塊相鄰的周圍 8 個位置中采樣得到第二個圖塊。
3. 為了避免模型僅僅捕獲到低級的不重要的信號(例如,連接一條跨越邊界的直線或將局部模式配對),我們通過以下方式引入額外的噪聲:
(1)增加圖塊之間的間隙
(2)細小的抖動
(3)隨機地對一些圖塊進行下采樣,使其總像素為 100,然后對其進行上采樣,從而實現對像素化的魯棒性
(4)將綠色和品紅色調成灰色,或隨機丟棄 3 個顏色通道中的 2 個(詳見下方對「色差」的介紹)
4. 訓練模型預測第二個圖塊將選用相鄰的 8 個位置中的哪一個,這是一個 8 分類問題。
圖 4:通過預測兩個隨機圖塊的相對位置進行自監(jiān)督學習的示意圖(圖片來源:Doersch 等人于 2015 年發(fā)表的論文「Unsupervised Visual Representation Learning by Context Prediction」)
除了諸如邊界模式或紋理等普通信號,我們還發(fā)現了另一個有趣且令人有點驚訝的平凡解,我們將其稱之為「色差」。它是由穿過透鏡的不同波長的光的焦距不同引起的。在此過程中,顏色通道之間可能存在微小偏移。
因此,該模型可以通過簡單比較綠色和品紅色在兩個不同圖塊中被區(qū)分開來的程度,來學習識別出相對位置。這是一個簡單的解決方案,與圖像內容無關。預處理圖像時,通過將綠色和品紅轉換成灰色或隨機丟棄 3 個顏色通道中的 2 個,可以避免這種平凡解。
圖 5:發(fā)生色差的示意圖
由于我們已經在上述任務中為每一張圖像設置了一個 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 拼圖問題進行自監(jiān)督學習的示意圖(圖片來源:Noroozi 和 Favaro 于 2016 年發(fā)表的「Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles」)
另一個思路是,將「特征」或「視覺基元」視為一個標量值屬性,該屬性可以根據多個圖塊求和得到,也可以在不同圖塊間進行對比。然后,可以通過計數特征和簡單的算術來定義不同圖塊之間的關系(可參考Noroozi 等人于 2017 年發(fā)表的論文「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:通過計數特征進行自監(jiān)督學習的示意圖(圖片來源:Noroozi 等人于 2017 年發(fā)表的「Representation Learning by Learning to Count」)
3、著色
著色可以被用作一個強大的自監(jiān)督任務:訓練模型對灰度輸入圖像進行著色;確切地說,我們的任務是將該圖像映射到量化的色彩值輸出的分布上(詳見 Zhang 等人于 2016 年發(fā)表的「Colorful Image Colorization」,論文鏈接:https://arxiv.org/abs/1603.08511)。
模型的輸出顏色在 CIE Lab* 色彩空間中,而 Lab* 色彩空間的設計初衷就是為了近似人類的視覺系統(tǒng)。相反,RGB 和 CMYK 則對物理設備的色彩輸出進行了建模。
L* 分量對應于人類對亮度的感知;L*=0 代表全黑,而 L*=100 代表全白。
a* 分量代表綠色(負)到品紅色(正)之間的值
b* 分量代表藍色(負)到黃色(正)之間的值
由于著色問題的多模態(tài)特性,預測的概率分布在二值化的色彩值上的交叉熵損失優(yōu)于原始顏色值的 L2 損失。ab 色彩空間被量化為 10 個等級。
為了平衡常用顏色(通常 ab 值較低,常見的背景如云彩、墻壁和灰塵會使用這些顏色)和罕見的顏色(這些顏色可能與圖像中的關鍵物體有關),我們通過加重不常見顏色的加權項來重新平衡損失函數。這就像為什么我們需要「tf」和「idf」在信息檢索模型中為單詞打分。加權項被構造為:(1-λ) ×高斯核平滑的經驗概率分布 + λ × 一個均勻分布,這兩種分布都在量化的 ab 色彩空間上。
4、生成式建模
生成式建模的 pretext 任務是在學習有意義的潛在表征的同時重建原始輸入。
去噪自動編碼器(詳見 Vincent 等人于 2018 年發(fā)表的「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 年發(fā)表的論文「Context Encoders: Feature Learning by Inpainting」,論文鏈接:https://arxiv.org/abs/1604.07379)來填補圖像中確實的一塊。令 M^ 為一個二值掩膜,其值為 0 代表丟棄該像素,其值為 1 代表保留輸入像素。我們使用一個 L2 重建損失和對抗性損失的組合來訓練該模型。通過掩膜定義的刪除區(qū)域的形狀是任意的。
其中 E(.) 是編碼器,而 D(.) 是解碼器。
圖 8:上下文編碼器的示意圖(圖片來源:Pathak 等人于 2016 年發(fā)表的論文「Context Encoders: Feature Learning by Inpainting」)
當我們將掩膜應用于一張圖像上時,上下文編碼器會刪除部分區(qū)域匯總所有顏色通道的信息。那么,如果我們只隱藏一部分顏色通道的信息會怎么樣呢?「split-brain」自編碼器(詳見 Zhang 等人于 2017 年發(fā)表的論文「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 損失或交叉熵損失。
這種分裂可能發(fā)生在 RGB-D 或 Lab* 色彩空間中,也可能發(fā)生在卷積神經網絡(CNN)的每一層中,其中通道的數量可能是任意的。
圖 9:「split-brain」自編碼器的示意圖。(圖片來源:Zhang 等人于 2017 年發(fā)表的論文「Split-Brain Autoencoders: Unsupervised Learning by Cross-Channel Prediction」)
生成對抗網絡(GAN)可以學習到從簡單的潛變量到任意復雜數據分布的映射。許多研究已經表明,這種生成式模型的潛空間可以捕獲數據中的語義變化。例如,當我們使用人臉數據訓練 GAN 時,一些潛變量與面部表情、眼鏡、性別等特征相關(詳見 Radford 等人于 2016 年發(fā)表的論文「Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks」,論文鏈接:https://arxiv.org/abs/1511.06434)
雙向 GAN(詳見 Donahue 等人于 2017 年發(fā)表的論文「Adversarial Feature Learning」,論文鏈接:https://arxiv.org/abs/1605.09782)則引入了一種額外的編碼器 E(.) 來學習從輸入到潛變量 z 的映射。判別器 D(.) 在輸入數據和潛在表征構成的聯合空間(x,z)中做預測,從而將生成的數據對(x,E(x))與真實數據對(G(z),z)區(qū)分開來。我們訓練該模型優(yōu)化的目標為:minG,EmaxDV(D,E,G),其中生成器 G 和 編碼器 E 學著生成足夠逼真的數據和潛變量來騙過判別器,同時判別器 D 試圖區(qū)分真實數據和生成的數據。
圖 10:雙向 GAN 工作原理示意圖(圖片來源:Donahue 等人于 2017 年發(fā)表的論文「Adversarial Feature Learning」)
視頻包含一系列語義上相關的幀。相鄰的幀在時間上更接近,并且比距離更遠的幀更具相關性。視頻幀的順序反映了推理和物理邏輯的某些規(guī)則。例如,物體的運動應該是流暢的,重力是向下的。
常見的工作流程是,在一個或多個帶有無標簽視頻的 pretext 任務上訓練模型,然后將該模型的一個中間特征層作為輸入,在基于動作分類、分割或物體跟蹤等下游任務中對模型進行調優(yōu)。
1、追蹤
一個物體的運動情況可以通過一系列視頻幀進行追蹤。在臨近幀中捕獲同一物體的方式之間的差異并不大,這些差異通常是由物體或攝像機的微小運動觸發(fā)的。Wang 和 Gupta 在2015年的論文「Unsupervised Learning of Visual Representations using Videos」(論文鏈接:https://arxiv.org/abs/1505.00687)中提出了一種通過追蹤視頻中的移動物體來實現對視覺表征的無監(jiān)督學習的方法。
他們在一個較小的時間窗口(例如 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。損失函數使得在最優(yōu)情況下存在 D(x,x?)>=D(x,x+)+M。
這種形式的損失函數在人臉識別任務(其中數據集包含從各個相機角度拍攝的多人照片)中也被稱為三元組損失(可參考相關論文「FaceNet: A Unified Embedding for Face Recognition and Clustering」:https://arxiv.org/abs/1503.03832)。令 xa 為某個特定人的「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)的形式與三元組損失略有不同,它也經常被用于學習機器人任務中的觀測嵌入。更多相關的內容請參閱后續(xù)章節(jié)。
圖 11:通過追蹤視頻中的物體進行自監(jiān)督學習的方法概覽。(a)在較短的軌跡中識別運動圖塊;(b)使用共享的權值,將兩個相關聯的圖塊和一個隨機圖塊輸入給一個卷積神經網絡。(c)損失函數迫使相關圖塊之間的距離比隨機圖塊之間的距離更近。(圖片來源:Wang 和 Gupta 于2015年發(fā)表的論文「Unsupervised Learning of Visual Representations using Videos」)
我們通過下面的兩步無監(jiān)督光流方法追蹤并抽取相關聯的圖塊:
1. 獲取「SURF」興趣點并使用「IDT」獲取每個 SURF 點的運動信息。
2. 給定「SURF」興趣點的運動軌跡,將光流強度大于 0.5 像素的點分類為運動點。
在訓練時,給定一對相關的圖塊 x 和 x+,在同一批中采樣 K 個隨機的圖塊{x?} ,從而構成 K 個訓練三元組。經過幾輪迭代后,我們使用困難負例挖掘讓訓練更困難并更高效。換句話說,我們將隨機搜索最大化損失的圖塊,并使用它們更新梯度。
2、幀排序
視頻幀會自然地按時間先后順序排列。研究人員提出了一些自監(jiān)督的任務,期望良好的表征可以學到正確的幀排序方式。
其中一種思路是:對幀的順序進行驗證(詳見 Misra 等人于 2016 年發(fā)表的論文「Shuffle and Learn: Unsupervised Learning using Temporal Order Verification」,論文鏈接:https://arxiv.org/abs/1603.08561)。pretext 任務用以確定視頻中的幀序列是否以正確的時間順序排列(時序檢驗),模型需要追蹤并推斷物體在整個幀中的微小運動,才能完成此任務。
訓練幀是從運動變化較大的窗口中采樣得到的。每次采樣得到 5 個幀(fa,fb,fc,fd,fe),時間戳的順序為 a<b<c<d<e。除了這 5 個視頻幀,我們還創(chuàng)建了一個正例元組(fb,fc,fd)和兩個負例元組(fb,fa,fd)和(fb,fe,fd)。參數 τmax=|b-d| 控制正例訓練實例的難度(即從更高到更難),而參數 τmin=(|a-b|,|d-e|)控制負例的難度(即從更低到更難)。
實驗結果表明,將視頻幀順序檢驗的 pretext 任務作為一個預訓練步驟,可以提升動作識別下游任務的性能。
圖 12:通過驗證視頻幀的順序學習表征的方法概覽。(a)數據采樣過程;(b)模型是一個三元組連體網絡,其中所有輸入幀共享權值。(圖片來源:Misra 等人于 2016 年發(fā)表的論文「Shuffle and Learn: Unsupervised Learning using Temporal Order Verification」)
O3N(「Odd-One-Out 」網絡;詳見 Fernando 等人于 2017 年發(fā)表的論文「Self-Supervised Video Representation Learning With Odd-One-Out Networks」,論文鏈接:https://arxiv.org/abs/1611.06646)中的自監(jiān)督任務也是以視頻幀序列驗證為基礎。相比上面的任務來說,該任務的進步在于它從多個視頻片段中選取除了不正確的序列。
給定 N+1 個輸入視頻片段,其中一個片段中的視頻幀被打亂了,因此具有錯誤的幀順序,而其余 N 個片段保持了正確的時間順序。O3N 網絡學著去預測被打亂的視頻片段是哪一個。在他們的試驗中,一共用到了 6 個輸入片段,每個片段包含 6 個幀。
無論是在底層的物理學意義上(例如,重力將物體吸引到地上;煙霧升騰起來;水往下流)還是在高級的時間推理層面上(例如,魚會向前游;你可以打破一個雞蛋但不能將其復原),視頻中的時間箭頭都包含了非常有用的信息。因此,我們受此啟發(fā)想到了另一個點子:無論視頻是往前播放還是倒放,都可以通過預測時間箭頭(AoT)來學習潛在表征(詳見 Wei 等人于 2018 年發(fā)表的論文「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:通過預測時間箭頭進行自監(jiān)督學習的方法概覽。(a)連接多組幀序列的卷積特征。(b)最頂層包含 3 個卷積層和一個平均池化層。(圖片來源:Wei 等人于 2018 年發(fā)表的論文「Learning and Using the Arrow of Time」)
有趣的是,在數據集中存在一些人為的提示因素。如果處理不當, 它們可能導致我們得到不依賴于實際視頻內容的普通分類器:
由于視頻壓縮,黑色的幀可能并不完全是黑色的,它們可能包含了某些時間序列的信息。因此,在實驗中應該刪除黑色的幀。
攝像機大幅的運動(例如垂直平移或放大/縮?。?,也為時間箭頭提供了強烈的信號,但這與視頻內容無關。處理階段應該使攝像機運動穩(wěn)定。
實驗結果表明,將時間箭頭(AoT)pretext 任務作為一個預訓練步驟,可以提高動作分類下游任務的性能。請注意,這里仍然需要進行調優(yōu)。
3、視頻著色
Vondrick 等于 2018 年發(fā)表的論文「Tracking Emerges by Colorizing Videos」(論文鏈接:https://arxiv.org/abs/1806.09594)中,提出將視頻著色作為一種自監(jiān)督學習問題,從而產生了豐富的表征形式,這樣的表征可以被用于視頻分割和無標簽視覺區(qū)域跟蹤,而無需進行額外的調優(yōu)。
與基于圖像的著色、不同,這里的任務是通過利用視頻幀之間色彩的自然時間一致性,將顏色從正常的參考幀復制到另一個灰度目標幀(因此,這兩個幀在時間上不應相距太遠)。為了一致地復制顏色,該模型旨在學習跟蹤不同幀中的相關像素。
圖 14:通過將一個參考幀的顏色復制給灰度圖像目標幀進行視頻著色。(圖片來源:Vondrick 等人于 2018 年發(fā)表的論文「Tracking Emerges by Colorizing Videos」)
這個想法既簡單又很巧妙。令 ci 為參考幀中第 i 個像素的真實顏色,cj 為目標幀中第 j 個像素的顏色。在目標幀中第 j 個像素的顏色的預測值 c^j 是所有參考幀中像素顏色的加權和,其中加權項用于度量下面的相似度:
其中 f 是學到的相應像素的嵌入;i’ 是參考幀中所有像素的索引。加權項實現了基于注意力的指示機制,這與匹配網絡和指針網絡的思路相類似。由于完整的相似度矩陣可能非常大,參考幀和目標幀都會被下采樣。正如 Zhang 等人在 2016 年發(fā)表的論文「Colorful Image Colorization」(論文鏈接:https://arxiv.org/abs/1603.08511)中所做的那樣,cj 和 c^j 之間的多分類交叉熵于量化的顏色一起使用。
基于參考幀被標記的方式,該模型可以被用來實時地完成諸如追蹤分割結果或追蹤人體姿態(tài)等基于顏色的下游任務(無需調優(yōu))。
圖 15:使用視頻著色技術進行追蹤物體分割和人體姿態(tài)(圖片來源:Vondrick 等人于 2018 年發(fā)表的論文「Tracking Emerges by Colorizing Videos」)
在現實世界中運行強化學習策略時(例如控制一個物理機器人的視覺輸入),合理地跟蹤狀態(tài)、獲得獎勵信號或者判斷是否真正實現了某個目標是十分重要的。這種視覺數據存在大量與真實狀態(tài)無關的噪聲,因此不能通過像素級的比較來推斷出狀態(tài)的等價性。自監(jiān)督表征學習在學習有用的狀態(tài)嵌入方面顯示出了巨大的潛力,可以直接作為控制策略的輸入。
本章討論的所有例子都來自于機器人學習領域,主要是關于多個攝像機視角的狀態(tài)表征和目標表征。
1、多視角度量學習
本文前面的章節(jié)已經多次提及了度量學習的概念。一個常見的設定是:給定一個樣本的三元組(anchor sa,正樣本 sp,負樣本 sn),學習得到的表征嵌入 ?(s) 滿足:sa 在潛空間中離 sp 較近,但是離 sn 較遠。
Grasp2Vec(詳見Jang 和 Devin 等人于 2018 年發(fā)表的論文「Grasp2Vec: Learning Object Representations from Self-Supervised Grasping」,論文鏈接:https://arxiv.org/abs/1811.06964)旨在根據自由的、無標簽的抓取或歐東,學習一個在機器人抓取任務中的以物體為中心的視覺表征?!敢晕矬w為中心」通常意味著,無論環(huán)境或機器人看起來如何,如果兩張圖像包含相似的項,它們就應該被映射到相似的表征上,否則它們的嵌入應該距離很遠。
圖 16:關于 grasp2vec 學習以物體為中心的狀態(tài)嵌入的方法的概念示意圖(圖片來源:Jang 和 Devin 等人于 2018 年發(fā)表的論文「Grasp2Vec: Learning Object Representations from Self-Supervised Grasping」)
一個抓取系統(tǒng)可以判斷出它是否移動了一個物體,但是不能判斷移動的究竟是哪個物體。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 年發(fā)表的論文「Grasp2Vec: Learning Object Representations from Self-Supervised Grasping」)
除了基于嵌入相似度的獎勵函數,還有其它一些在 Grasp2Vec 框架下的技巧可以用來訓練強化學習策略:
事后歸因標簽 P:通過將隨機抓取的物體標記為正確目標來增強數據集,例如 HER(事后經驗回放;詳見 Andrychowicz 等人于 2017 年發(fā)表的論文「Hindsight Experience Replay」,論文鏈接:https://papers.nips.cc/paper/7090-hindsight-experience-replay.pdf)
輔助目標增強:通過使用未完成的目標重新標記變換操作,進一步增強回放緩沖區(qū)。在每一輪迭代中,抽樣得到兩個目標,并且用這兩個目標來增加新的變換得到回放緩沖區(qū)中。
TCN(時間對比網絡,詳見 Sermanet 等人于 2018 年發(fā)表的論文「Time-Contrastive Networks: Self-Supervised Learning from Video」,論文鏈接:https://arxiv.org/abs/1704.06888)根據多個攝像機的視角拍攝的視頻進行學習,作者直觀上認為,同一場景同一時間的不同視點在嵌入時間不同的情況下,應該共享相同的嵌入(類似于FaceNet),即使是對于統(tǒng)一攝像機視點也應該是如此。因此,嵌入捕獲的是底層狀態(tài)的語義,而不是視覺相似性。TCN 嵌入使用三元組損失進行訓練。
圖 18:用于學習狀態(tài)嵌入的時間對比方法的示意圖。藍色框包圍的幀是從同一時間的兩個不同攝像機視角中選取出來的 anchor 樣本和正樣本,而紅色框包圍的幀是在另一個時間選出的負樣本。
TCN 嵌入抽取出了對于攝像機配置具有不變性的視覺特征。它可以被用來為基于演示視頻和潛在空間觀測值之間歐氏距離的模仿學習構建一個獎勵函數。
我們還可以對 TCN 進行進一步的改進,同時從多個幀中學習嵌入,而不是根據單個幀學習,從而得到 mfTCN(多幀時間對比網絡;詳見 Dwibedi 等人于 2019 年發(fā)表的論文「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 年發(fā)表的論文「Learning Actionable Representations from Visual Observations」)
訓練數據根據下面的方式采樣得到:
1. 我們首先構建兩對視頻片段。每一對包含兩個在同步的時間步上從不同攝像機視角拍攝的片段。這兩組視頻在時間上距離應該很遠。
2. 以相同的步長,同時從從屬于同一對的每一個視頻片段中采樣出一定數量的幀。
3. 將相同時間步上的幀作為 n-pair 損失中的正樣本進行訓練,而從屬于不同對的樣本作為負樣本訓練。
而 mfTCN 嵌入可以捕獲場景中物體的位置和速度(例如在車擺系統(tǒng)中),也可以作為策略的輸入。
2、自主目標生成
RIG(使用假想目標的強化學習;詳見 Nair 等人于 2018 年發(fā)表的論文「Visual Reinforcement Learning with Imagined Goals」,論文鏈接:https://arxiv.org/abs/1807.04742)介紹了一種通過無監(jiān)督表征學習訓練一種以目標為條件的策略的方法。這種策略通過首先假想一些「虛構」目標然后試著實現它們的自監(jiān)督方式進行學習。
圖 20:RIG 的工作流程(圖片來源:Nair 等人于 2018 年發(fā)表了的論文「Visual Reinforcement Learning with Imagined Goals」)
該任務是控制一個機器手把一個小球推到設想的位置。這個設想的位置(或稱目標),會出現在圖像中。在訓練階段,它通過 β-VAE 自編碼器同時學習狀態(tài) s 和目標 g 的潛在嵌入,控制策略完全在潛在空間中進行操作。
假設 β-VAE 擁有一個編碼器 q?,該編碼器將輸入狀態(tài)映射到潛變量 z 上,而我們通過一個高斯分布對 z 建模,同時還有一個解碼器 pψ 將 z 映射回輸入狀態(tài)。RIG 中的狀態(tài)編碼器被設置為 β-VAE 的均值。
這里的獎勵是狀態(tài)和目標嵌入向量之間的歐氏距離:r(s,g)=?‖e(s)?e(g)‖。類似于 Grasp2Vec,RIG 也通過重新標記潛在目標進行數據增強:準確地說,一半的目標是根據先驗隨機生成的,另一半目標是使用 HER 選擇的。與 Grasp2Vec 一樣,這里的獎勵也不依賴于任何真實狀態(tài),僅僅依賴于學到的狀態(tài)編碼,因此它可以被用來訓練真實的機器人。
圖 21:RIG 的算法(圖片來源:Nair 等人于 2018 年發(fā)表了的論文「Visual Reinforcement Learning with Imagined Goals」)
RIG 存在的問題是:假想出的目標圖片缺乏物體變化。如果一個 β-VAE 僅僅使用一個黑球來訓練,它就不能使用其它物體(比如形狀和顏色不同的方塊)來創(chuàng)建一個目標。受到 CVAE(條件 VAE,詳見 Sohn,Lee 和 Yan 等人于 2015 年發(fā)表的論文「Learning Structured Output Representation using Deep Conditional Generative Models」,論文鏈接:https://papers.nips.cc/paper/5775-learning-structured-output-representation-using-deep-conditional-generative-models)的啟發(fā),一個后續(xù)的改進方案使用了 CC-VAE(以上下文環(huán)境為條件的變分自編碼器,詳見 Nair 等人于 2019 年發(fā)表的論文「Contextual Imagined Goals for Self-Supervised Robotic Learning」,論文鏈接:https://arxiv.org/abs/1910.11670)進行目標生成。
圖 22:以上下文環(huán)境為條件的 RIG 的工作流程(圖片來源:Nair 等人于 2019 年發(fā)表的論文「Contextual Imagined Goals for Self-Supervised Robotic Learning」)
一個 CVAE 是以上下文變量 c。它會訓練一個編碼器 q?(z|s,c) 和一個解碼器 pψ(s|z,c),請注意它們都需要用到變量 c。CVAE 損失懲罰從輸入狀態(tài) s 傳過信息瓶頸的信息,但是允許從 c 傳遞到編碼器和解碼器的不受限的信息流。
為了創(chuàng)建合理的目標,CC-VAE 以一個起始狀態(tài) s0 為條件,從而使生成的目標與 s0 中的物體保持類型一致。這種目標一致性是很有必要的;例如,如果當前場景包含一個紅色的小球,但是目標中包含一個藍色的方塊,這樣就會迷惑我們的策略。
除了狀態(tài)編碼器 e(s)?μ?(s),CC-VAE 還會訓練第二個卷積編碼器 e0(.),將狀態(tài) s0 轉換為一個緊湊的上下文表征 c=e0(s0)。我們故意讓兩個編碼器 e(.) 和 e0(.) 不要共享權值,期望它們對圖像變化的不同要素進行編碼。除了 CVAE的損失函數,CC-VAE 加入了額外的項來學習將 c 重建為
圖 23 :通過以上下文圖像(第一行)為條件的 CVAE 生成的假想目標的示例,而 VAE 則不能捕獲到物體的一致性(圖片來源:「Contextual Imagined Goals for Self-Supervised Robotic Learning」)
在自監(jiān)督表征學習過程中,存在一些常見的情況:
將多種 pretext 任務組合起來可以提升性能;
更深的網絡可以提升表征的質量;
至今,監(jiān)督式學習對比基準仍然優(yōu)于其它方法。
[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
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。