【論文解讀】【半監督學習】【Google教你水論文】A Simple Semi-Supervised Learning Framework for Object Detection

洪山鳥王發表於2020-12-01

題記:最近在做LLL(Life Long Learning),接觸到了SSL(Semi-Supervised Learning)正好讀到了谷歌今年的論文,也是比較有點開創性的,淺顯易懂,對比實驗豐富,非常適合缺乏基礎科學常識和剛剛讀研不會寫論文的同學讀一讀,觸類旁通嘛。

  這篇論文思路等等也非常適合剛剛開始做學術時候寫文論參考使用,你看,它有創造性(半監督學習用在了目標檢測上),理論基礎紮實(體現在專業詞彙豐富,也介紹了其他相關論文,做個小綜述論文都夠了),工作量夠夠的(大量的對比試驗),實驗效果好(map對比有所提升),與此同時他還不是特別大的改變(對loss公式的修改非常簡單易懂)。筆者認為,如果一個人在讀研的時候發這樣一篇論文足以表明學習的很紮實。

該筆記適合:希望對SSL有所理解的同學、剛剛讀研且不知如何做科研的同學。

arxiv:

code:https://github.com/google-research/ssl_detection

---------------------------------------------------------------------------------------

介紹:

  該文章介紹了一種半監督學習策略(包括模型+資料增強方法),開創性的在目標檢測領域使用半監督學習(之前都是在分類領域使用的),提出了STAC(自訓練和一致正則化驅動的增強策略)(這破名字太難理解了,簡單來說就是用偽標籤做自訓練,訓練中加入了一致正則化為原理的資料增強,很多小夥伴可能不理解什麼是一致正則化,通俗點就是說影像和影像+干擾應該在網路的輸出結果是相同的,即抗噪聲干擾的能力,也可以理解為魯棒性,那麼這個一致正則化很厲害嗎?反正筆者覺得資料增強不就是幹這個用的嗎,就好比為了攝取能量的進食行為一樣的平凡,沒什麼高大上,只不過有人沒接觸過這倆詞語罷了。那麼這個STAC就可以理解為自訓練和資料增強了,說明了什麼?說明水論文要會高大上的詞彙量,但這個詞彙量也不僅僅是裝13用的,還向審稿人顯示了你紮實的基礎理論,如果審稿人不懂的話就是不明覺厲。)

  那STAC具體的模型是啥呢?在這裡,這篇論文介紹的STAC是一種方法,pipeline,不是具體的某個模型,文章裡面使用的是Faster-RCNN作為一個具有代表性的模型來展示STAC。

  STAC 流程:

    1、用已有的標籤影像訓練一個教師模型(teacher model)用來生成偽標籤(有點知識蒸餾那味了,這個模型是Faster-RCNN)。

    2、用訓練好的模型推理剩餘的未標註的影像,生成偽標籤。

    3、對未標註的資料進行增強,同步偽標籤(影像旋轉的時候也要將標籤的座標同步呀,不然不都錯位了嗎)。

    4、使用半監督Loss來訓練檢測器(半監督loss在後面會介紹,就是加兩個超參的faster-rcnn本身的loss而已,沒啥大區別)(原文中Compute unsupervised loss and supervised loss to train a detector.筆者認為,這個detector就不是之前的教師模型了,從新訓練的,這個在GitHub的https://github.com/google-research/ssl_detection/issues/7裡面也得到了證明)

  STAC兩大法寶:

    1、自訓練

      1)使用教師模型訓練學生模型,訓練學生模型的時候使用雙Loss,即總Loss = 標註資料的Loss+偽標籤資料的Loss,其中比重為1:2(論文用實驗做了一個引數尋優)

      2)就一個問題,標註的資料理論上來說是少數,那未標註的是多數,看論文裡面1:10比較好,那問題來了,訓練是一幫一(每次各推理一個batch再更新一次權重),偽標籤資料訓練10個epoch那標籤資料就是100個epoch。介標註資料不就過擬合了嘛?作者說:我沒考慮,這是個問題,有待解決。

    2、資料增強

      1)論文裡面說,這是很重要的,好吧,旋轉、跳躍,我不停歇,模糊了眼神。反正就是色彩轉換、影像整體或者bbox旋轉再加上隨機的灰框填充。

  STAC最後結論:

    1、效果肯定是比不加偽標籤的資料訓練結果好,最多5個點的提升

    2、還單獨驗證資料增強香不香,那是真香。

    3、文章在原有loss基礎上加了兩個超參,用實驗擬合超參曲線,求得區域性最優解

 

文章結論:

  讀了這個文章,分析分析我總結的發論文的幾個點:

  1、基礎紮實,主要體現在相關領域涉獵足夠廣泛,領域內進展清晰。數學當然也是很重要的,但這篇文章數學,也就那樣吧,沒什麼特別大的改動。

  2、實驗豐富,讀文章就知道作者做了相當詳實的實驗,得出的結論很具有參考意義。

  3、有個小小的創新點,你說文章提出的自學習那些東西以前有沒有?有的,它這是攢卜攢卜,整一起了。你說資料增強算創新嗎?說算的肯定是想發論文想瘋了。但兩個結合起來,馬馬虎虎也能算個創新。這其實對很多剛讀研的同學來說挺重要的,你導師最近幾年蹭熱度帶你做CS,組內無底蘊要怎麼搞研究?多讀讀論文,很多人都是在學習過程中萌生創新點,有了點就做做看,行就完善實驗。

相關文章