OpenAI科學家一文詳解自監督學習
- 2019 年 11 月 22 日
- 筆記

來源:kguttag
編輯:張佳、鵬飛
【新智元導讀】本文中,OpenAI機器人科學家介紹了自監督學習。自監督學習為以監督學習提供了巨大的機會,可以更好地利用未標記數據。這篇文章涵蓋了關於影像,影片和控制問題的自我監督學習任務的許多有趣的想法。
自監督學習為監督學習方式提供了巨大的機會,可以更好地利用未標記的數據。這篇文章涵蓋了關於影像、影片和控制問題的自監督學習任務的許多有趣想法。
對於給定任務,使用足夠的數據標籤,監督學習可以很好地解決問題。要想實現良好的性能,通常需要相當數量的數據標記,但是收集手工標記數據的成本很高(如ImageNet),並且難以擴展。
考慮到未標記的數據量(例如,免費文本,網上的所有影像)遠遠超過了數量有限的人類標記的數據集,對這些數據棄置不用是一種很大的浪費。但是,無監督學習並不容易,並且通常比監督學習效率低得多。
如果我們可以免費獲得未標記數據,並以監督方式訓練無監督數據集,應該如何做?可以通過一種特殊的形式來安排有監督的學習任務,使其僅依賴剩餘的資訊來預測一部分資訊,從而實現訓練目標。這就是所謂的自監督學習。

為什麼要進行自監督學習?
自監督學習使我們能夠免費利用數據附帶的各種標籤。用乾淨的標籤生產數據集很昂貴,但未標記的數據卻無時無刻不在產生。為了利用大量的未標記數據,一種方法是正確設置學習目標,以便從數據本身獲得監督。
提到自監督任務(也稱為pretext任務)就要提到監督損失函數。但是,我們通常不關心任務的最終執行情況;而只對學習的中間表示感興趣,我們期望這些中間表示可以涵蓋良好的語義或結構含義,並且能夠有益於各種下游的實際任務。
廣義上講,所有生成模型都可以被認為是自監督的,只不過目標不同:生成模型側重於創建各種逼真的影像,而自監督的表示學習的側重點是如何產生對多個任務有用的良好特徵。
基於影像的自監督表示學習
對於影像的自監督表示學習,已經提出了許多想法。常見的工作流程是在一個或多個帶有未標記影像的pretext任務上訓練模型,然後使用該模型的一個中間特徵層,為ImageNet分類提供多項邏輯回歸分類器。
最近,一些研究人員提議在標記數據上訓練監督學習,在未標記數據上使用共享權重,並同時訓練自監督的pretext任務。
失真
我們期望影像上的輕微失真不會改變其原始語義或幾何形式。帶有輕微失真的影像可以認為與原始影像相同,因此預計學習到的特徵並不會失真。使用Exemplar-CNN創建帶有未標記影像修補程式的替代訓練數據集。

上圖:一隻可愛的鹿的原始修補程式在左上角。應用隨機變換,導致各種失真的修補程式。在pretext任務中,所有這些都應歸為同一類
旋轉整個影像是另一種有趣且低成本的方法,可在語義內容保持不變的情況下修改輸入影像。每個輸入影像首先隨機旋轉90度的倍數,分別對應於[0∘,90∘,180∘,270∘]。模型經過訓練可以預測應用了哪種旋轉角度,從而得出4類分類問題。
為了識別旋轉了不同角度的同一影像,模型必須學會識別高級對象部分,如頭部,鼻子和眼睛,以及這些部分的相對位置,讓使模型以這種方式學習對象的語義概念。

修補程式
第二類自監督學習任務從一張影像中提取多個修補程式,並要求模型預測這些修補程式之間的關係。

除了諸如邊界圖案或紋理之類的瑣碎訊號不斷出現之外,還發現了另一個有趣且瑣碎的解決方案,稱為「色差」。它是由穿過透鏡的不同波長的光的不同焦距觸發的。在此過程中,顏色通道之間可能存在微小偏移。
因此,該模型可以通過簡單比較綠色和品紅色在兩個不同色塊中的區分方式,來學習分辨相對位置。這是一個簡單的解決方案,與影像內容無關。


另一個想法是將「功能」或「視覺圖元」視為一個標量值屬性,可以對多個修補程式進行匯總,並在不同修補程式之間進行比較。然後通過計算特徵和簡單的算術來定義修補程式之間的關係。

著色
著色可以用來完成強大的自監督任務:訓練模型以對灰度輸入影像進行著色;確切的任務是,將該影像映射到量化的色彩值輸出上的分布。
為了在常見顏色和可能與影像中的關鍵對象相關聯的稀有顏色之間取得平衡,可以通過權重項對損失函數進行重新平衡。
生成建模
生成建模的pretext任務是在學習有意義的潛在表示的同時重建原始輸入。
去噪自動編碼器的任務是學習從部分損壞或帶隨機雜訊的影像中恢復原影像。該設計的靈感源於這樣一個事實:即使有雜訊,人類也可以輕鬆識別圖片中的對象,這表明,演算法可以提取關鍵的視覺特徵,並將其與雜訊分離。

生成對抗網路(GAN)能夠學習從簡單的潛在變數映射到任意複雜的數據分布。研究表明,此類生成模型的潛在空間可以捕獲數據中的語義變化;比如在人臉上訓練GAN模型時,一些潛在變數與面部表情,是否戴眼鏡,性別不同等因素相關。

基於影片的自監督學習
影片包含一系列語義關聯幀,而相鄰幀在時間上更接近、這些相鄰幀比距離更遠的的幀更具相關性。演算法框架的順序描述了推理和物理邏輯的某些規則:例如物體的運動應該是平穩的,重力是向下的。
常見的流程是,在一個或多個帶有未標記影片的pretext任務上訓練模型,然後提供該模型的一個中間特徵層,在基於動作分類、分段或對象跟蹤的下游任務對模型進行微調。
追蹤
物體的運動情況可以通過一系列影片幀進行跟蹤。在臨近幀中捕獲同一物體的特徵方式之間的差異並不大,這些差異通常是由物體或攝像機的微小運動觸發的。Wang&Gupta在2015年提出了一種通過跟蹤影片中的移動對象來實現無監督學習視覺表示的方法。
也可以在一個較小的時間窗口(如30幀)內精確跟蹤目標運動。選擇第一個修補程式x和最後一個修補程式x+並將其用作訓練數據點。
如果直接訓練模型,在對兩個特徵向量之間的差異實現最小化,那麼該模型可能只會學會將所有內容映射到相同的值。

其損失函數為:

+權重衰減正則項
幀的順序
影片幀會自然地按時間順序排列。研究人員提出了一些自監督的任務,期望能夠足夠精確地表示應學習的正確幀序列。
一種方法是對幀的順序進行驗證。pretext任務是確定影片中的幀序列是否以正確的時間順序排列。模型需要跟蹤並推斷物體在整個框架中的微小運動,才能完成此任務。
顯示影片幀順序驗證的pretext任務,可在用作預訓練步驟時,提高執行動作識別等下游任務的性能。

有趣的是,數據集中存在一些人工提示。如果處理不當,它們可能會導致影像分類過於瑣碎,而不能有效反映影片內容,比如由於影片壓縮,黑色幀可能不是完全黑色,而是可能包含按時間順序排列的某些資訊。因此,在實驗中應消除黑框。
影片著色
Vondrick等提出將影片著色作為一種自監督學習課題,從而產生了豐富的表示形式,可用於影片分割和未標記的視覺區域跟蹤,而無需進行額外的微調。
與基於影像的著色不同,此處的任務是通過利用影片幀之間顏色的自然時間一致性,將顏色從正常的參考幀複製到另一個灰度目標幀(因此,這兩個幀不應相距太遠)。為了一致地複製顏色,該模型旨在學習跟蹤不同幀中的相關像素。

基於參考框的標記方式,該模型可用於完成一些基於顏色的下游任務,例如跟蹤分割或及時的人體姿勢。無需微調。

最後是幾個常見的結果:
- 組合多個pretext任務可以提高性能。
- 使用更深層次的網路可以提高了表示品質;
- 到目前為止,監督學習的基準仍然優於所有其他基準。
由於篇幅所限,完整文章請移步:
https://lilianweng.github.io/lil-log/2019/11/10/self-supervised-learning.html