論文 : NeurIPS2023
原文 : Switching Temporary Teachers for Semi-Supervised Semantic Segmentation
類別:
teacher-student 之主要概念為:
不需要 pretrain
使用 student 使用一般 back propagation 去更新權重,而 teacher 則用 student 的 EMA 權重更新
EMA (exponential moving average)
moving 的意思為移動,將考慮歷史資料,而 exponential 因在分母,代表越久以前的資料影響越小。
而會這樣使用 teacher-student 是因為標註資料過少,利用 teacher 產生較好的 mask 去作為 pseudo mask 以做訓練,而 student 因為初始是使用標註資料做訓練, teacher 使用 student 權重做更新,因此可以得到自身資料集的 feature 進而產出更好的 mask 。
而作者認為此種方法有以下問題:
此篇沒有提到以下問題解法:
student 會累積誤差預測,在 EMA 更新後會導致 teacher 提供錯誤的 pseudo-labels 給 student 並造成不可挽回的分類錯誤。
因此這篇論文提出了 Dual Teacher ,想要減輕 teacher 及 student 過於親近的問題。
最後可以達到在 PASCAL VOC, Cityscapes 及 ADE20K 皆達到 SOTA 並且使用更少的訓練時間,並且此方法可以用在 CNN 及 transformer 上。
一般 teacher student:
對於 : semantic segmentation 之 labeled data
每一張 labeled image 計算 per-pixel (student predition 對 ground truth) cross entropy 再取平均 ( 皆要做除以 pixel 數及 labeled 圖片數量 )。
對於 : semantic segmentation 之 unlabeled data
將 per-pixel 計算 cross entropy 的對象改為 student predition 對 pseudo label ( 來自 teacher prediction )
將上面兩 loss 合併後對 student model 做 back propagation ,再使用 EMA 更新 teacher model 。
Temporal Ensembling:
此方法參考了 Temporal Ensembling 的概念。
而此方法探討的是 Π model 的缺點,一張圖需要經過不同 augmentation 及 regularization 後 froward (兩種處理都會輸入),希望他們兩個預測出來應要一致,這是相當耗時間的動作。
從這張圖可以看到 Π model 的 Xi 有分支輸入,但 Temporal Ensembling 只有一個,那麼他要跟誰比呢?
注意最底下兩行 : 累積組合預測,這裡會使用 EMA 累積前面所做的 prediction ,再利用誤差修正 (其實就是根據前面的 epoch 可能沒什麼好的 performance 、相近的 epoch 差別不大的概念,去修正組合 prediction ,而因
而模型因此不需要 froward 兩次,僅需一次,卻還有 target ( 組合 prediction ) 可以算 loss 。
目標是緩解 Teacher Student 模型過於緊密導致 performance 瓶頸的問題。
Dual Teacher
作者使用了 2 個 temporary teacher teacher models 及 1 個 student model,每一個 epoch student 從 Strong augmentation pool 選擇不同的 strong aug ,並且會換另一個 teacher 以產生 pseudo label 。
Strong augmentation pool:
顧名思義,裡面有很多種 strong augmentation ,同時也包含不同尺度的 strong augmentation ( 細: fine class-level 例: ClassMix 和 粗: coarse region-level 例: CutMix ),每個 epoch 皆會取一個 Strong augmentation ,並且兩個 epoch 不連續取同一種 strong augmentation 。
Implicit Consistency Learning:
這裡的 implicit 是指使用 stochastic depth ( 隨機去掉一些層數,以克服 resnet 需要大量時間訓練的問題 ) 的 student model 內一部分層,這些稱為 sub-models ,然後作者希望他們能與 teacher models 預測結果一致 (此方法也可用在 transformer )。
其中
這裡的
這裡不同於前面的 student model 輸入 strong aug 、 teacher model 輸入 weak aug ,而是兩者皆輸入 weak aug 。
這裡也是使用 teacher model 之 pseudo-label
而此 loss
在不同資料集中以不同的 labeled 數量幾乎都可以取得 SOTA 的成績。
真的有解決 Teacher Student 模型過於緊密的問題嗎 ?
是的,兩者有著明顯的預測差距,最後才趨於相近。
Teacher 越多越好或輸入圖片的 Aug 使用越多越好嗎 ?
否,左圖很明顯就不是,而右圖可以看出在 ± 號之後的變異性明顯為 Dual teacher 更大,作者認為這是因為 augmentation 沒辦法選到一個好的組合讓他們更有多樣性。
組合 teachers 還是交換 teachers ?
否,組合會因此失去多樣性。
stochastic depth 所使用的 drop rate 策略影響
Performance 及訓練時間比較
跨領域:
在 PASCAL VOC 上可以看到不太會有不同 class 夾雜在一起的問題