CVPR 2022|U2PL:使用不可靠偽標簽的半監督語義分割
本文轉自商湯學術
導讀
半監督任務的關鍵在于充分利用無標簽數據,商湯科技聯合上海交通大學、香港中文大學,基于「 Every Pixel Matters」的理念,有效利用了包括不可靠樣本在內的全部無標簽數據,大幅提升了算法精度。目前 U2PL 已被 CVPR 2022 接收,相關代碼已開源,有任何問題歡迎在 GitHub 提出。
論文標題:Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels
01Self-training: 樣本篩選導致訓練不充分
半監督學習的核心問題在于有效利用無標注樣本,作為有標簽樣本的補充,以提升模型性能。
經典的 self-training 方法大多遵循著 supervised learning → pseudo labeling → re-training 的基本流程,但學生網絡會從不正確的偽標簽中學習到錯誤的信息,因而存在 performance degradation 的問題。
常規作法是通過樣本篩選的方式只留下高置信度預測結果,但這會將大量的無標簽數據排除在訓練過程外,導致模型訓練不充分。此外,如果模型不能較好地預測某些 hard class,那么就很難為該類別的無標簽像素分配準確的偽標簽,從而進入惡性循環。
我們認為「 Every Pixel Matters」,即使是低質量偽標簽也應當被合理利用,過往的方法并沒有充分挖掘它們的價值。
02Motivation: Every Pixel Matters
具體來說,預測結果的可靠與否,我們可以通過熵 (per-pixel entropy) 來衡量,低熵表示預測結果可靠,高熵表示預測結果不可靠。我們通過 Figure 2 來觀察一個具體的例子,Figure 2(a) 是一張蒙有 entropy map 的無標簽圖片,高熵的不可靠像素很難被打上一個確定的偽標簽,因此不參與到 re-training 過程,在 Figure 2(b) 中我們以白色表示。Figure 2. Illustration on unreliable pseudo-labels.我們分別選擇了一個可靠的和不可靠的預測結果,在 Figure 2(c) 和 Figure 2(d) 中將它們的 category-wise probability 以柱狀圖的形式畫出。黃色十字叉所表示的像素在 person 類上的預測概率接近于 1,對于這個預測結果模型非常確信,低熵的該像素點是典型的 reliable prediction。而白色十字叉所表示的像素點在 motorbike 和 person 兩個類別上都具有不低的預測概率且在數值上較為接近,模型無法給出一個確定的預測結果,符合我們定義的 unralibale prediction。對于白色十字叉所表示的像素點,雖然模型并不確信它具體屬于哪一個類別,但模型在 car 和 train 這兩個類別上表現出極低的預測概率,顯然很確信不屬于這些類別。
因而,我們想到即使是不可靠的預測結果,雖然無法打上確定的偽標簽,但仍可以作為部分類別的負樣本,從而參與到模型的訓練,從而讓所有的無標簽樣本都能在訓練過程中發揮作用。
03Method
● OverviewFigure 3. An overview of our proposed U2PL method網絡結構上,U2PL 采用 self-training 技術路線中常見的 momentum teahcer 結構,由 teacher 和 student 兩個結構完全相同的網絡組成,teacher 通過 EMA 的形式接受來自 student 的參數更新。單個網絡的具體組成參考的是 ReCo (ICLR'22)[1],包括三個部分: encoder , decoder , 表征頭 。損失函數優化上,有標簽數據直接基于標準的交叉熵損失函數 進行優化。無標簽數據則先靠 teacher 給出預測結果,然后根據 pixel-level entropy 將預測結果分成 reliable pixels 和 unreliable pixels 兩大部分 (分流的過程在 Figure 2 有所體現),最后分別基于 和 進行優化。
如上三個部分構成了 U2PL 全部的損失函數,熟悉 self-training 的話就只需要關注對比學習 部分,是經典的 InfoNCE Loss[2],細節會在后續具體討論。● Pseudo-Labeling本節主要探討無標簽樣本中可靠預測結果的利用方式,即損失函數中的 部分。我們通過熵:
對預測結果的可靠性進行衡量,將最可靠的部分篩選出來,再通過常規方式打上偽標簽:
隨著訓練過程的推進,我們認為模型的性能在不斷攀升,不可靠預測結果的比例相適應地也在不斷下降,因此在不同的訓練時刻我們對可靠部分的定義是不斷變化的,這里我們簡單采用了線性變化策略,并未作過多探索:
需要注意的是,由于并非所有的無標簽像素都會參與這部分的計算,因此需要計算一個權重對這部分損失進行調節。● Using Unreliable Pseudo-Labes本節主要探討無標簽樣本中不可靠預測結果的利用方式,即損失函數中的 部分。U2PL 以對比學習為例介紹了如何將不可靠偽標簽用于提升模型精度。既然是對比學習,那不可避免的問題就是討論如何構建正負樣本對。接下來的有關對比學習內容的實現細節大量參考了 ReCo[1],因此如果要深入了解 U2PL,建議可以先看下這篇論文。首先是 anchor pixels (queries) ,我們會給訓練過程中出現在 mini-batch 中的每一個類別都采樣一系列的 anchor pixel 用于對比學習。然后是構建 anchor pixel 的 positive sample,我們會給每一個類別都算一個特征中心,同一類的 anchor pixel 會 share 共同的特征中心作為 postive sample。具體地,我們先從 mini-batch 分類別篩選出可用于計算特征中心的像素點,對于有標簽樣本和無標簽樣本,篩選的標準是一致的,就是該樣本在真值標簽類別或偽標簽類別上的預測概率大于一個閾值,對篩選出來的像素點的表征 的集合 求一個均值作為各類別的特征中心 。這里可以參見如下公式:
最后是構建 anchor pixel 的 negative sampe,同樣的也需要分成有標簽樣本和無標簽樣本兩個部分去討論。對于有標簽樣本,我們明確知道其所屬的類別,因此除真值標簽外的所有類別都可以作為該像素的負樣本類別;而對于無標簽樣本,由于偽標簽可能存在錯誤,因此我們并不完全卻行確信標簽的正確性,因而我們需要將預測概率最高的幾個類別過濾掉,將該像素認作為剩下幾個類別的負樣本。這部分對應的是論文中公式 13-16,但說實話這一段內容用公式去描述還是比較晦澀的。
Algorithm 1: Using Unreliable Pseudo-Labels由于數據集中存在長尾問題,如果只使用一個 batch 的樣本作為對比學習的負樣本可能會非常受限,因此我們采用 MemoryBank 來維護一個類別相關的負樣本庫,存入的是由 teacher 生成的斷梯度特征,以先進先出的隊列結構維護。
04Comparison with Existing Alternatives
本文所有的實驗結果均是基于 ResNet-101 + Deeplab v3+ 的網絡結構完成的,所采用的的數據集構成和評估方式請參見論文描述。我們在 Classic VOC, Blender VOC, Cityscapes 三種數據集上均和現存方法進行了對比,在全部兩個 PASCAL VOC 數據集上我們均取得了最佳精度。在 Cityscapes 數據集上,由于我們沒能很好地解決長尾問題,落后于致力解決類別不平衡問題的 AEL (NeurIPS'21)[3],但我們將 U2PL 疊加在 AEL 上能夠取得超越 AEL 的精度,也側面證明了 U2PL 的通用性。值得一提的是,U2PL 在有標簽數據較少的劃分下,精度表現尤為優異。
05Ablation Studies
● Effectiveness of Using Unreliable Pseudo-Labels
我們在 PSACAL VOC 和 CItyscapes 等多個數據集的多個劃分上驗證了使用不可靠偽標簽的價值。● Alternative of Contrastive Learning我們增加了通過二分類去利用不可靠樣本的對比實驗,證明利用低質量偽標簽并不是只能通過對比學習去實現,只要利用好低質量樣本,即使是二分類方法也能取得不錯的精度提升。
06附錄
● U2PL 與 negative learning 的區別這里需要著重強調下我們的工作和 negative learning 的區別, negative learning 選用的負樣本依舊是高置信度的可靠樣本[4],相比之下,我們則提倡充分利用不可靠樣本而不是把它們過濾掉。比如說預測結果 由于其不確定性會被 negative learning 方法丟棄,但在 U2PL 中卻可以被作為多個 unlikely class 的負樣本,實驗結果也發現 negative learning 方法的精度不如 U2PL。● U2PL 技術藍圖這里貼出技術藍圖,便于大家更好地理解論文的核心 story 和實驗設計:
U2PL 技術藍圖
傳送門
U2PL 的相關代碼目前已經開源,歡迎各位同學使用和交流。
論文地址
https://haochen-wang409.github.io/U2PL/resources/U2PL_CVPR_2022.pdf
項目地址
https://haochen-wang409.github.io/U2PL/
代碼地址
https://github.com/Haochen-Wang409/U2PL
References
[1] Bootstrapping Semantic Segmentation with Regional Contrast https://arxiv.org/abs/2104.04465
[2] Representation Learning with Contrastive Predictive Coding https://arxiv.org/abs/1807.03748
[3] Semi-Supervised Semantic Segmentation via Adaptive Equalization Learning https://arxiv.org/abs/2110.05474
[4] In Defense of Pseudo-Labeling: An Uncertainty-Aware Pseudo-label Selection Framework for Semi-Supervised Learning https://openreview.net/pdf/c979bcaed90f2b14dbf27b5e90fdbb74407f161b.pdf
本文僅做學術分享,如有侵權,請聯系刪文。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。