圖解自監督學習(CV)

圖解自監督學習(CV)

譯自:https://amitness.com/2020/02/illustrated-self-supervised-learning/

作者:Amit Chaudhary

注:譯者在某些地方對原文的表述做了調整,使其適合漢語的閱讀習慣,并在某幾處有譯者自己的理解。大家有能力的話可以看一下英文原文。

在 Yann Lecun 的一次演講中,作者首次了解到了自監督學習,他在那里介紹了“蛋糕類比”來說明自監督學習的重要性。 在談話中,他說:

“If intelligence is a cake, the bulk of the cake is self-supervised learning, the icing on the cake is supervised learning, and the cherry on the cake is reinforcement learning (RL).”

“如果人工智能是一塊蛋糕,那么大部分蛋糕是自監督學習,監督學習是蛋糕上的冰激凌,而強化學習則是蛋糕上的櫻桃。”

盡管這個類比存在爭議,但我們已經看到了自監督學習在自然語言處理領域的影響,其中最近的(Word2Vec、Glove、ELMO、BERT)已經取得了SOTA的結果。

為了了解計算機視覺領域自監督學習的現狀,作者通過 Jing 等人最近的一篇綜述論文了解了現有的關于將自監督學習應用于計算機視覺的工作。

本文將解釋什么是自監督學習,總結并通過圖示的方式直觀地展示自監督學習中的一些問題的建模方式。

自監督學習簡介

為什么要自監督學習

要在深度神經網絡中進行有監督學習,我們需要足夠的標注數據。 但是人工標注數據是一個既耗時又昂貴的過程。 還有一些領域,例如醫療領域,獲取足夠的數據本身就很困難。 因此,當前有監督學習范式的一個主要瓶頸是如何獲得大量的標注數據。

在這里插入圖片描述

什么是自監督學習

自監督學習是通過下面這種方式,將無監督學習問題轉化為有監督問題的方法:

我們能否以這樣一種方式設計任務:即我們可以從現有圖像中生成幾乎無限的標簽,并使用它來學習特征表示?
在這里插入圖片描述

在自監督學習中,我們通過創造性地利用數據的某些屬性來設置偽監督任務來替換人工注釋的部分。 例如,這里不是將圖像標記為貓/狗,而是將它們旋轉 0/90/180/2700/90/180/2700/90/180/270 度并訓練模型來預測旋轉。不同于標注貓 / 狗,對圖像進行旋轉并記錄旋轉標簽可以有機器自動完成,因此,我們可以從互聯網上的數百萬張圖像中生成幾乎無限的訓練數據。下圖展示了整個端到端自監督訓練的工作流。
在這里插入圖片描述

在我們從數以百萬計的圖像中學習好特征表示后,我們可以利用遷移學習在一些有監督的任務(如僅有少量樣本的貓狗分類任務)上進行微調。

在這里插入圖片描述

自監督學習方法綜述

現在讓我們了解一下研究人員提出的各種方法來,利用圖像和視頻特性并將自監督學習應用于表征學習。

至于自監督學習任務如何設計,Yann LeCun 在 AAAI 2020 上的演講也提到過:

  1. 根據所有待預測部分之外的信息預測任意一部分信息。
  2. 根據過去預測未來。
  3. 根據過去最近的情況預測未來。
  4. 根據現在預測過去。
  5. 根據底層信息預測頂層信息。
  6. 根據可見的信息預測不可見的信息。
  7. 假設有一部分輸入數據未知,并且對其進行預測。

對該演講有興趣的讀者,可參考:https://www.bilibili.com/video/BV1V7411573v?from=search&seid=12729545036652967460

A 基于圖像的自監督學習

Pattern 1 重構

1 圖像著色

如果我們通過將灰度應用于數百萬免費提供的圖像來構建訓練樣本對對(灰度、彩色)圖像會怎樣?

在這里插入圖片描述

我們可以使用基于全卷積神經網絡的編碼器-解碼器架構(自編碼器),來計算預測和實際彩色圖像之間的 L2 損失。

在這里插入圖片描述

為了完成著色任務,模型必須了解圖像中存在的不同對象和相關部分,如此它才可以用相同的顏色繪制這些部分。 這樣,學習到的表征對于下游任務會很有用。

在這里插入圖片描述

可參考的相關工作:

  • Colorful Image Colorization
  • Real-Time User-Guided Image Colorization with Learned Deep Priors
  • Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic Image Colorization with Simultaneous Classification

2 圖像超分辨

如果我們通過對數百萬圖像進行下采樣來構造訓練樣本對(小圖像放大)圖像會怎樣?

在這里插入圖片描述

基于 GAN 的模型(例如 SRGAN)在此任務中很常見。 生成器使用全卷積網絡獲取低分辨率圖像并輸出高分辨率圖像。 使用均方誤差和內容損失來比較實際和生成的圖像,以模仿人類的圖像感知質量比較。 二分類鑒別器獲取圖像并對其進行分類,它是實際的高分辨率圖像 (1) 還是假生成的超分辨率圖像 (0)。 兩個模型之間的這種相互對抗作用會使得生成器學習能夠生成具有精細細節的圖像。

在這里插入圖片描述

學習到語義特征的生成器和鑒別器都可以用于下游任務階段。

可參考的相關工作:

  • Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

3 圖像修復

如果我們通過隨機刪除部分圖像來構建訓練樣本對(損壞的、固定的)圖像會怎樣?

在這里插入圖片描述

與超分辨率類似,我們可以利用基于 GAN 的架構,其中生成器可以學習如何重構圖像,而鑒別器學習將真實圖像和生成的圖像分開。

在這里插入圖片描述

對于其在下游任務的表現,Pathak 等人。 已經表明,這樣的生成器學習的語義特征在 PASCAL VOC 2012 語義分割比賽上比隨機初始化的模型提高了 10.2%,同時對分類和對象檢測有< 4% 的提升。

可參考的相關工作:

  • Context encoders: Feature learning by inpainting

4 Cross-Channel 預測

如果我們從圖像的一個通道預測另一個通道并將它們組合起來重構原始圖像會怎樣?

Zhang 等人在他們名為 Split-Brain Autoencoder 的工作中應用了這個想法。 為了理解論文的idea,讓我們以番茄的彩色圖像為例。

在這里插入圖片描述

對于這張彩色圖像,我們可以將其拆分為灰度和顏色通道。 然后,對于灰度通道,我們預測顏色通道,對于顏色通道部分,我們預測灰度通道。 將兩個預測通道 X1X_1X1?X2X_2X2? 組合起來以完成對原始圖像的重構。 我們可以將此重構與原始彩色圖像進行比較,以計算損失并更新模型。

同樣的想法也可以應用于具有深度的圖像,我們使用來自 RGB-HHA 圖像的顏色通道和深度通道來相互預測并比較輸出圖像和原始圖像。

在這里插入圖片描述

可參考的相關工作:

  • Split-Brain Autoencoders: Unsupervised Learning by Cross-Channel Prediction

Pattern 2 常識任務

1 拼圖任務

如果我們通過隨機打亂圖像塊來構建訓練樣本對(打亂、有序)拼圖會怎樣?

在這里插入圖片描述

即使只有 9 個圖像塊,也可以有 362880 個可能的 puzzles。 為了解決這個問題,僅使用所有可能排列的一個小子集,例如具有最高漢明距離的 64 個排列。

在這里插入圖片描述

假設我們使用一個排列來打亂圖像,如下所示。 讓我們使用總共 64 個可用排列中的排列數 64。

在這里插入圖片描述

現在,為了復原出原始圖像塊關系,Noroozi 等人 提出了一種稱為上下文無關網絡(CFN)的神經網絡,如下所示。 在這里,單個圖像塊通過具有共享權重的相同孿生卷積層。 然后,將這些特征組合,并送入一個全連接層中。 在輸出中,模型必須從 64 個可能的類中預測使用了哪種排列。

在這里插入圖片描述

為了完成拼圖任務,模型需要學習識別物體中組件的組裝方式、物體不同部分的相對位置以及物體的形狀。 因此,這些表示對于分類和檢測中的下游任務很有用。

可參考的相關工作:

  • Unsupervised learning of visual representations by solving jigsaw puzzles

2 上下文預測

如果我們通過從大型未標記的圖像集合中隨機獲取一個圖像塊及其周圍的一個相鄰塊來構建訓練樣本對(圖像塊,相鄰圖像塊)會怎樣?

在這里插入圖片描述

為了完成這個輔助任務,Doersch 等人 使用了類似于拼圖任務的結構。圖像塊通過兩個孿生卷積網絡來提取特征,拼接特征并在 8 個類別上進行分類,表示 8 個可能的鄰塊位置。

在這里插入圖片描述

可參考的相關工作:

Unsupervised Visual Representation Learning by Context Prediction

3 幾何變換識別

如果我們通過從大型未標記圖像集合中隨機旋轉圖像(0、90、180、270)來構建訓練樣本對(旋轉圖像、旋轉角度)會怎樣?

在這里插入圖片描述

為了解決這個前置任務,Gidaris 等人 提出一種架構,其中旋轉圖像通過卷積網絡,網絡需要將輸入圖像分類為 4 類(0/90/270/3600/90/270/3600/90/270/360 度)。

在這里插入圖片描述

雖然看起來是一個非常簡單的任務,但該模型必須了解圖像中對象的位置、類型和姿勢才能完成此任務,因此,學習到的表示對于下游任務會很有用。

可參考的相關工作:

Unsupervised Representation Learning by Predicting Image Rotations

Pattern 3 自動生成標簽

1 圖像聚類

如果我們通過對大型未標記圖像集合執行聚類來構建訓練樣本對(圖像,簇數)會怎樣?

在這里插入圖片描述

為了解決這個前置任務,Caron 等人 提出一種稱為深度聚類的架構。 在這里,首先對圖像進行聚類,并將聚類用作類。 模型的任務是預測輸入圖像的集群標簽。

在這里插入圖片描述

可參考的相關工作:

  • Deep clustering for unsupervised learning of visual features
  • Self-labelling via simultaneous clustering and representation learning
  • CliqueCNN: Deep Unsupervised Exemplar Learning

2 影像合成

如果我們通過使用游戲引擎生成合成圖像并使其適應真實圖像來構建訓練樣本對(圖像、屬性)會怎樣?

為了解決這個輔助任務,Ren 等人 提出了一種架構,其中權重共享的卷積網絡在合成圖像和真實圖像上進行訓練,然后將合成圖像和真實圖像送入鑒別器,鑒別器學習分類輸入是合成圖像還是真實圖像。 由于對抗性作用,真實圖像和合成圖像之間的共享表征將會變得更好。

在這里插入圖片描述

B 基于視頻的自監督學習

如果我們通過從運動物體的視頻中混洗幀來構建訓練樣本對(視頻幀,正確/不正確的順序)會怎樣?

在這里插入圖片描述

為了完成這個輔助任務,Misra 等人 提出了一種架構,其中視頻幀通過權重共享的卷積網絡,模型必須確定幀的順序是否正確。 這樣做時,模型不僅需要學習空間特征,還需要考慮時間特征。

在這里插入圖片描述

可參考的相關工作:

  • Shuffle and Learn: Unsupervised Learning using Temporal Order Verification
  • Self-Supervised Video Representation Learning With Odd-One-Out Networks

Citation Info (BibTex)

如果讀者覺得本文對你的研究工作有幫助的話,可以引用原作者的博客:

@misc{chaudhary2020selfsupervised,title   = {The Illustrated Self-Supervised Learning},author  = {Amit Chaudhary},year    = 2020,note    = {\url{https://amitness.com/2020/02/illustrated-self-supervised-learning}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532707.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532707.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532707.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習中的歸納偏置

機器學習中的歸納偏置 帶著偏見看世界&#xff0c;否則你根本沒有看待世界的方式。 本文主要參考整理自知乎問題&#xff1a;如何理解Inductive bias&#xff1f; No-Free-Lunch&#xff08;NLF&#xff09;定理指出學習是不可能的&#xff0c;除非有先驗知識。通常情況下&…

編譯型與解釋型、動態語言與靜態語言、強類型語言與弱類型語言概念辨析

編譯型與解釋型、動態語言與靜態語言、強類型語言與弱類型語言概念辨析 轉自&#xff1a;https://blog.csdn.net/u010533843/article/details/76215487 編譯型和解釋型 我們先看看編譯型&#xff0c;其實它和匯編語言是一樣的&#xff1a;也是有一個負責翻譯的程序來對我們的…

Linux環境變量詳解

Linux環境變量詳解 環境變量是操作系統環境設置的變量&#xff0c;適用于整個系統的用戶進程。 環境變量分類 按照權限分類 系統級&#xff1a;系統級的環境變量是每個登錄到系統的用戶都要讀取的系統變量用戶級&#xff1a;用戶級的環境變量則是該用戶使用系統時加載的環境…

[分布式訓練] 單機多卡的正確打開方式:PyTorch

[分布式訓練] 單機多卡的正確打開方式&#xff1a;PyTorch 轉自&#xff1a;https://fyubang.com/2019/07/23/distributed-training3/ PyTorch的數據并行相對于TensorFlow而言&#xff0c;要簡單的多&#xff0c;主要分成兩個API&#xff1a; DataParallel&#xff08;DP&am…

上學期C語言復習

C語言&#xff1a;面向過程例&#xff1a;完成兩個單元內容的交換 &#xff1a; #include<stdio.h> //定義一個完成兩個數據交換的函數 //void swap(int m,int n) void swap(int*m,int* n) { int temp;//臨時單元 temp*m; *m*n; *ntemp; } int main() {int a5,b10; print…

[分布式訓練] 單機多卡的正確打開方式:Horovod

[分布式訓練] 單機多卡的正確打開方式&#xff1a;Horovod 轉自&#xff1a;https://fyubang.com/2019/07/26/distributed-training4/ 講完了單機多卡的分布式訓練的理論、TensorFlow和PyTorch分別的實現后&#xff0c;今天瓦礫講一個強大的第三方插件&#xff1a;Horovod。 …

【c語言數據結構筆記】1.2 數據結構

1.2數據結構 數據元素并獨立 結構實體關系 形式定義&#xff08;D&#xff0c;S&#xff09; 其中D是數據元素的有限集&#xff0c;S是D上關系的有限集 eg&#xff1a;12位數&#xff1a;132423451233 分成三組四位數 次序關系<a1,a2><a2,a3> 遵守次序關系 eg&…

使用Apex進行混合精度訓練

使用Apex進行混合精度訓練 轉自&#xff1a;https://fyubang.com/2019/08/26/fp16/ 你想獲得雙倍訓練速度的快感嗎&#xff1f; 你想讓你的顯存空間瞬間翻倍嗎&#xff1f; 如果我告訴你只需要三行代碼即可實現&#xff0c;你信不&#xff1f; 在這篇博客里&#xff0c;瓦礫…

【數據結構1.3筆記】研究內容

1.3研究內容 數據結構&#xff08;D&#xff0c;S&#xff09; {邏輯結構&#xff1a; {物理結構&#xff08;存儲結構&#xff09; {數據的運算 1.邏輯結構 1 集合&#xff1a;集合&#xff0c;沒有邏輯關系 2 線性結構 “一對一” 3樹形結構 層次關系 4圖形結構 練習&…

Linux下的LD_PRELOAD環境變量與庫打樁

Linux下的LD_PRELOAD環境變量與庫打樁 LD_PRELOAD是Linux系統的一個環境變量&#xff0c;它可以影響程序的運行時的鏈接&#xff08;Runtime linker&#xff09;&#xff0c;它允許你定義在程序運行前優先加載的動態鏈接庫&#xff0c;一方面&#xff0c;我們可以以此功能來使…

2019年藍橋杯第一題

第一題 標題&#xff1a;組隊&#xff08;本題總分&#xff1a;5 分&#xff09; 作為籃球隊教練&#xff0c;你需要從以下名單中選出 1 號位至 5 號位各一名球員&#xff0c; 組成球隊的首發陣容。 每位球員擔任 1 號位至 5 號位時的評分如下表所示。請你計算首發陣容 1 號位…

深度學習編譯:MLIR初步

深度學習編譯MLIR初步 深度模型的推理引擎 目前深度模型的推理引擎按照實現方式大體分為兩類&#xff1a;解釋型推理引擎和編譯型推理引擎。 解釋型推理引擎 一般包含模型解析器&#xff0c;模型解釋器&#xff0c;模型優化器。 模型解析器負責讀取和解析模型文件&#xff…

深入淺出LLVM

深入淺出LLVM 轉自&#xff1a;https://www.jianshu.com/p/1367dad95445 什么是LLVM&#xff1f; LLVM項目是模塊化、可重用的編譯器以及工具鏈技術的集合。 美國計算機協會 (ACM) 將其2012 年軟件系統獎項頒給了LLVM&#xff0c;之前曾經獲得此獎項的軟件和技術包括:Java、A…

藍橋杯真題訓練 2019.2題

2019第二題 標題&#xff1a;年號字串&#xff08;本題總分&#xff1a;5 分&#xff09; 小明用字母 A 對應數字 1&#xff0c;B 對應 2&#xff0c;以此類推&#xff0c;用 Z 對應 26。對于 27 以上的數字&#xff0c;小明用兩位或更長位的字符串來對應&#xff0c;例如 AA…

一分鐘系列:什么是虛擬內存?

一分鐘系列&#xff1a;什么是虛擬內存&#xff1f; 轉自&#xff1a;https://mp.weixin.qq.com/s/opMgZrXV-lfgOWrNUMKweg 注&#xff1a;一分鐘系列的篇幅都不長&#xff0c;適合吃飯蹲坑、地鐵公交上食用&#xff5e; 內存對于用戶來說就是一個字節數組&#xff0c;我們可…

藍橋杯真題訓練 2019.3題

標題&#xff1a;數列求值 &#xff08;本題總分&#xff1a;10 分&#xff09;### 給定數列 1, 1, 1, 3, 5, 9, 17, …&#xff0c;從第 4 項開始&#xff0c;每項都是前 3 項的和。求 第 20190324 項的最后 4 位數字。 【答案提交】 這是一道結果填空的題&#xff0c;你只需…

11-Kafka

1 Kafka Kafka是一個分布式流式數據平臺&#xff0c;它具有三個關鍵特性 Message System: Pub-Sub消息系統Availability & Reliability&#xff1a;以容錯及持久化的方式存儲數據記錄流Scalable & Real time 1.1 Kafka架構體系 Kafka系統中存在5個關鍵組件 Producer…

虛擬內存精粹

虛擬內存精粹 標題&#xff1a;虛擬內存精粹 作者&#xff1a;潘建鋒 原文&#xff1a;HTTPS://strikefreedom.top/memory-management–virtual-memory 導言 虛擬內存是當今計算機系統中最重要的抽象概念之一&#xff0c;它的提出是為了更加有效地管理內存并且降低內存出錯的概…

藍橋杯真題訓練 2019.4題

標題&#xff1a; 數的分解&#xff08;本題總分&#xff1a;10 分&#xff09; 【問題描述】 把 2019 分解成 3 個各不相同的正整數之和&#xff0c;并且要求每個正整數都不包 含數字 2 和 4&#xff0c;一共有多少種不同的分解方法&#xff1f; 注意交換 3 個整數的順序被視…

深度學習自動編譯和優化技術調研

深度學習自動編譯和優化技術調研 轉自&#xff1a;https://moqi.com.cn/blog/deeplearning/ 作者&#xff1a;墨奇科技全棧開發 在墨奇科技&#xff0c;我們需要將一些包含深度神經網絡&#xff08;DNN&#xff09;的 AI 算法移植到邊緣端的設備&#xff0c; 這些設備往往使用 …