自監督學習入門
寫在前面:

這幾天在逛華為云論壇的時候,無意間發現了這個直播活動,一看時間,明天下午2點。海報如下圖:
活動報名鏈接:https://bbs.huaweicloud.com/signup/33652859b28e497ea2e35100f681a485
我尋思著啥是自監督,怎么沒聽過?觸到我知識盲區了?
開發者的特性不就是在大佬講干貨前不能顯得自己很無知,必須私下里先預習嗎?不然大佬直播時細心講解,屏幕前的我摸不著頭腦豈不是辜負了他的一番苦心。所以我特地谷歌一番。篩選幾篇自監督學習文章內容作為預習,然后就有了這篇博客——自監督學習入門。
簡介:
什么是自監督學習?我們先簡單定義為直接從無標簽數據中自行學習,無需標注數據。
自監督學習性能的高低,主要通過模型學出來的特征的質量來評價。特征質量的高低,主要是通過遷移學習的方式,把特征用到其它視覺任務中(例如分類、分割、物體檢測...),然后通過視覺任務結果的好壞來評價。
自監督學習的核心是如何給輸入數據自動生成標簽,就是提出一個新的自動打標簽的前置任務(例如:旋轉圖片、打亂patch順序),自動生成標簽。
正文:
自監督學習源于無監督學習,解決從未標記的數據中學習語義特征的問題。常用的方法是通過設計一個前置將無監督的問題轉換為有監督的任務。 往往前置任務不會有什么新的產出,它的目的是使網絡學習如何從數據中捕獲有用的特征。
前置任務與常見的監督問題有相似之處:
我們知道監督訓練需要標注。依賴人工標注者的不斷努力。 但在許多情況下,標注非常昂貴或無法獲得。 我們也知道模型天生需要數據,這導致大規模的標注數據集已成為學習模型進一步發展的主要壁壘之一。同樣,自監督學習也需要標注來訓練前置任務。然而與前置任務的關鍵不同在于:用于前置任務的標注(偽標注)的特征是不同的。實際上對于自監督訓練,偽標簽僅來自數據特征本身。
換句話說偽數據不需要人工標注!
在自監督的訓練期間,我們挑戰網絡以學習前置任務。同樣,根據數據本身自動生成偽標簽用來訓練目標。 訓練結束后,我們通常將學習到的視覺特征作為知識轉譯給下游任務(downstream task)。通常,下游任務可以是任何監督問題。 目的是用自監督特征改善下游任務的性能。
下游任務的最大問題是數據有限和過度擬合。這里,我們可以看到基于大型標注數據庫(如 ImageNet )預訓練卷積神經網絡的普通遷移學習的相似性。但有一個關鍵的優勢:通過自監督訓練,我們可以在難以置信的大型數據庫上對模型進行預訓練而無需擔心人為標簽。
此外, 前置任務和普通分類任務之間有一個細微差別。在純分類任務中,網絡學習表征是為了分離特征空間中的類。在自監督學習中,前置任務通常會促使網絡學習更多的通用概念。以圖像著色這一前置任務為例:為了擅長圖像著色,網絡必須學習通用用途的特征,這些特征解釋了數據集中對象的特征,包括物體的形狀、一般紋理、怕光、陰影、遮擋等。通過解決前置任務,網絡將學習容易轉譯給學習新問題的語義特征,換句話說:我們的目標是在進行監督之前從未標注的數據中學習有用的表征。
結論:
自監督學習讓我們能夠沒有大規模標注數據也能獲得優質的表征,反而我們可以使用大量的未標注數據并且優化預定義的前置任務。我們可以使用這些特性來學習缺乏數據的新任務。
自監督學習的應用:
下面列舉各種研究人員提出的利用圖像的屬性并以自監督的方式學習表示的方法。
1. 圖像的著色
形式:使用數以百萬計的圖像灰度化來準備成對(灰度,彩色)圖像。
使用一個基于全卷積神經網絡的編譯碼器結構來計算預測和實際彩色圖像之間的L2損失。
為了解決這個問題,模型必須了解圖像中出現的不同物體和相關部分,這樣它才能用相同的顏色繪制這些部分。
2. 圖像超分辨率
形式: 使用圖像下采樣的方式準備訓練對(小的,縮放的)。
基于GAN的模型如SRGAN在此任務中很受歡迎。生成器獲取低分辨率圖像并使用全卷積網絡輸出高分辨率圖像。使用均方誤差和內容損失來模擬類人質量比較,對實際生成的圖像和生成的圖像進行比較。二進制分類鑒別器獲取圖像并對其進行分類,判斷它是實際的高分辨率圖像(1)還是假生成的超分辨率圖像(0)。這兩個模型之間的相互作用導致生成器學習生成具有精細細節的圖像。
生成器和判別器都學到了可以用于下游任務的語義特征。
3. 圖像修復
形式:我們可以通過隨機去掉圖像中的某個部分來生成成對的訓練圖像(損壞的,復原的)。
與超分辨率類似,我們可以利用基于GAN的架構,在此架構中,生成器可以學習如何重構圖像,而discriminator則可以將真實圖像和生成的圖像分開。
對于下游任務,Pathak等人表明,在PASCAL VOC 2012語義分割的比賽上,生成器學到的語義特征相比隨機初始化有10.2%的提升。
4. 圖像拼圖
形式:通過隨機交換圖像塊生成訓練對
即使只有9個小塊,也是個有362880個可能的謎題。為了克服這個問題,只使用了可能排列的一個子集,例如具有最高漢明距離的64個排列。
假設我們使用如下所示的重排來更改圖像。我們用64個排列中的第64個排列。
現在,為了恢復原始的小塊,Noroozi等人提出了一個稱為上下文無關網絡(CFN)的神經網絡,如下圖所示。在這里,各個小塊通過相同的共享權值的siamese卷積層傳遞。然后,將這些特征組合在一個全連接的層中。在輸出中,模型必須預測在64個可能的排列類別中使用了哪個排列。如果我們知道排列的方式,我們就能解決這個難題。
為了解決拼圖問題,模型需要學習識別零件是如何在一個物體中組裝的,物體不同部分的相對位置和物體的形狀。因此,這些表示對于下游的分類和檢測任務是有用的。
5. 上下文預測
形式:我們隨機選取一個圖像塊以及其附近的一個圖像塊來組成訓練圖像對。
為了解決這個文本前的任務,Doersch等人使用了類似于拼圖游戲的架構。我們通過兩個siamese卷積神經網絡傳遞圖像塊來提取特征,連接特征并對8個類進行分類,表示8個可能的鄰居位置。
6. 幾何變換識別
形式:我們通過隨機的旋轉圖像來生成有標注的圖像(旋轉圖像,旋轉角度)。
為了解決這個文本前的任務,Gidaris et al.提出了一種架構,其中旋轉后的圖像通過一個卷積神經網絡,網絡需要把它分成4類(0/90/270/360度)。
雖然這是一個非常簡單的想法,但模型必須理解圖像中物體的位置、類型和姿態才能完成這項任務,因此,學習到的表示方法對后續任務非常有用。
結束語:
大致看完這些內容,會不會對自監督學習有多一點了解呢?
這是直播互動帖的鏈接:https://bbs.huaweicloud.com/forum/thread-70471-1-1.html。
那么,明天下午一起搬凳子坐等大佬的直播吧!
活動報名鏈接:https://bbs.huaweicloud.com/signup/33652859b28e497ea2e35100f681a485
文章里的內容出處:
圖解自監督學習https://bbs.cvmart.net/topics/1559
自監督學習,如何從數據困境中拯救深度學習?
https://www.leiphone.com/news/202001/aova4HLghoUpSROp.html
機器學習 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。