计算机视觉研究新方向:自监督表示学习总结(建议收藏)
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達為什么需要自監督學習
隨著深度模型的興起,基于監督的圖像特征提取方式已經成為主流。然而這種方法需要大量的有標簽數據,標注成本過高,在小樣本數據集上面臨著過擬合等問題。如何減少算法對高質量標簽數據集的需求?如何利用大量的無標簽圖像數據進行特征提取?如何讓模型提取的特征具有更加泛化的表達能力?
自監督表示學習算法應運而生。公眾號上一篇自監督學習在計算機視覺中的應用為大家介紹了自監督學習的基本概念和一些應用,本篇文章參考Lilian Weng在其博客(lilianweng.github.io)中總結的自監督表示學習在圖像,視頻和控制領域的進展,將摘選其中圖像和視頻部分的內容進行分享。內容較多,建議先收藏~
自監督學習在圖像任務上的特征表示
Distortion(扭曲,變形)
Exemplar-CNN(Dosovitskiy et al., 2015)《Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks》用圖像中的patch創建數據集:
1.從包含大量梯度的位置選取“exemplary” patch
2.每個補丁都通過應用各種隨機轉換(即、平移、旋轉、縮放等)所有產生的失真補丁都被認為屬于同一個代理類
3.pretext任務是區分一組代理類(每一個patch就是一個代理類)。
Rotation《Unsupervised Representation Learning by Predicting Image Rotations》提出了一種簡單的圖像旋轉分類的代理任務。為了用不同的旋轉來識別相同的圖像,模型必須學會識別高層次的物體部分,如頭、鼻子和眼睛,以及這些部分的相對位置,而不是局部模式。這個接口任務驅動模型以這種方式學習對象的語義概念。
Patches
一幅圖像中提取多個patch,并要求模型預測這些patch之間的關系
relative position《Unsupervised Visual Representation Learning by Context Prediction》讓模型預測patch的相對位置
1.隨機采樣patch
2.考慮到第一個patch被放置在一個3x3的網格的中間,第二個patch被采樣于它周圍的8個相鄰的位置
3.引入一些噪音
4.該模型被訓練來預測第二個patch是從8個相鄰位置中的哪一個中選擇出來的,這是一個超過8類的分類問題(就是說看第二個patch的相對于第一個patch 的位置是1,還是2,3….8)
在《Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles》是將9個patch打亂然后讓模型將其放回,實際實現時讓模型預測其屬于每個位置的概率,當然可以用GCN來加速訓練。
另一種想法是在論文《Representation Learning by Learning to Count》中提出的,將“feature”或“visual primitives”看作一個標量值屬性,它可以在多個patch上求和,并在不同的patch之間進行比較。然后通過計數特征和簡單的算法來定義patch之間的關系。
具體操作如下:
簡單來說,就是對原始圖像進行上采樣和分塊操作(2*2分塊,得到4塊),希望上采樣后計算出的數目和原圖計算出的數目一致,希望地磚分塊操作后計算出的數目是原圖計算出的數目的4倍。
Colorization
《Colorful Image Colorization》這篇論文為灰度圖著色為彩色(在CIE LAB color space)思想也很簡單。Momentum Contrast
《Momentum Contrast for Unsupervised Visual Representation Learning》提出一種新的無監督學習框架:動態字典查找。
對quuery(x_q)通過encoder有一個對應的表達q,對于key(x_k)通過momentum encoder有一個對應的表達k,這些k構成一個list字典。假設字典中有一個k和q匹配。在論文中k是通過x的數據增強得來的。使用了InfoNEC contrastive loss 學習 1個positive和K個negative樣本:
訓練偽代碼:
同樣《A Simple Framework for Contrastive Learning of Visual Representations》中也提出了一個簡單的框架用于對比學習。它通過潛在空間的對比損失,最大限度地提高相同樣本的不同增強視圖之間的一致性,從而學習視覺輸入的表示。
訓練偽代碼:
《CURL: Contrastive Unsupervised Representations for Reinforcement Learning》借鑒了SimCLR的想法用于強化學習。
自監督學習在視頻任務上的特征表示
Video-Based
視頻中包含連續的,語義相近的幀,且框架的順序描述了一定的推理規則和物理邏輯;例如,物體的運動應該是平穩的,重力是向下的。
一個常見的工作流程是,用無標簽的視頻對一個模型進行一個或多個pretext任務的訓練,然后將該模型的一個中間特征層輸入對動作分類、分割或目標跟蹤等下游任務進行finetune。Tracking
物體的運動由一系列視頻幀來跟蹤。在近距離的畫面中,同一個物體在屏幕上被捕捉的方式通常差別不大,通常是由物體或相機的微小運動觸發的。因此,對同一物體學習的任何跨越近幀的視覺表征都應該在潛在特征空間中是接近的。在這個想法的啟發下,Wang & Gupta, 201《Unsupervised Learning of Visual Representations using Videos》)提出了一種通過跟蹤視頻中移動的物體來實現視覺表征的無監督學習的方法。
具體做法:在一個小的window中(30幀)追蹤一個patchX,有個和X接近的patchX+,還有一個隨機選取的patchX-。這個loss像triple loss
patch的獲取:
Frame Sequence(幀序列)
視頻幀是按時間順序自然放置的。研究人員提出了幾個自我監督的任務,他們期望良好的表現應該學習幀的正確順序。《Shuffle and Learn: Unsupervised Learning using Temporal Order Verification》中提出的pretext任務為:判斷一段視頻序列的順序是否正確,這樣模型可以獲得追蹤物體和推理的能力。
具體做法為:
類似的,《Self-Supervised Video Representation Learning With Odd-One-Out Networks》中也提出了一種基于視頻序列的無監督學習方法“odd-one-out learning”。要從N+1個序列幀中挑選出某一個古怪的幀。
還有研究給模型播放正序或者倒序的視頻,讓其預測時間的方向 arrow of time(正或負)為了預測時間箭頭,分類器應該同時捕獲低級物理和高級語義。提出的T- cam(時間類激活映射)網絡接受T組,每個T組包含若干個光流幀。每個組的conv層輸出被連接起來并輸入到二元邏輯回歸中以預測時間箭頭。這個pretext任務可以提高動作分類下游任務的性能。
Video Colorization
《Tracking Emerges by Colorizing Videos》提出視頻著色可以作為一個自監督問題,在此基礎上得到豐富的特征表達且對視頻分割和無標簽的區域追蹤很有效果。
和圖片的照射著色的自監督問題不同,視頻著色是將基于一張已知的幀對另外一張幀著色。由于幀相近,具有時間相干性,因此他們之間的像素距離也相近,模型被設計用來跟蹤不同幀中相關的像素。
總結
以上是生活随笔為你收集整理的计算机视觉研究新方向:自监督表示学习总结(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KMP算法理解(参考BILIBILI正月
- 下一篇: 关于回溯法的递归与非递归-----N皇后