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