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

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

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

該筆記適合:但願對SSL有所理解的同窗、剛剛讀研且不知如何作科研的同窗。網絡

arxiv:學習

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

---------------------------------------------------------------------------------------spa

介紹:code

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

  那STAC具體的模型是啥呢?在這裏,這篇論文介紹的STAC是一種方法,pipeline,不是具體的某個模型,文章裏面使用的是Faster-RCNN做爲一個具備表明性的模型來展現STAC。ssl

  STAC 流程:get

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

    二、用訓練好的模型推理剩餘的未標註的圖像,生成僞標籤。

    三、對未標註的數據進行加強,同步僞標籤(圖像旋轉的時候也要將標籤的座標同步呀,否則不都錯位了嗎)。

    四、使用半監督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)使用教師模型訓練學生模型,訓練學生模型的時候使用雙Loss,即總Loss = 標註數據的Loss+僞標籤數據的Loss,其中比重爲1:2(論文用實驗作了一個參數尋優)

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

    二、數據加強

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

  STAC最後結論:

    一、效果確定是比不加僞標籤的數據訓練結果好,最多5個點的提高

    二、還單獨驗證數據加強香不香,那是真香。

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

 

文章結論:

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

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

  二、實驗豐富,讀文章就知道做者作了至關詳實的實驗,得出的結論很具備參考意義。

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

相關文章
相關標籤/搜索