論文閱讀 AAAI 2021 — Curriculum Labeling: Revisiting Pseudo-Labeling for Semi-Supervised Learning

提出 「 Curriculum labeling 」增強 Self-Supervised Learning 的「 Pseudo-labeling 」方法,在資料分布不一致的真實情境中,能有與實驗結果較一致的表現 。

Ken Huang
人工智慧,倒底有多智慧?
24 min readMar 30, 2021

--

論文連結 : 《 Curriculum Labeling: Revisiting Pseudo-Labeling for Semi-Supervised Learning 》

作者與出處:

Abstract & Introduction

目前使用 Labeled data 進行訓練的作法,已有了顯著的進步,並廣泛應用於電腦視覺這領域。然而標注資料因為需要花費昂貴的人力成本,所以不易取得,而模型的成效也會因此而受限 。

Semi-supervised learning

Semi-supervised learning 的出現,就是為了借助額外的 Unlabeled data 來訓練模型,並藉此獲得更好的表現 。所以這種訓練過程僅有部分 Data 具備 Label ,其餘則使用特定演算法挖掘 Data 本身的差異性來輔助訓練過程 。

近期在影像分類的常規資料集上,Semi-supervised learning 的作法已有驚人的成果,這些作法通常結合了 Supervised 和 Unsupervised 的優化目標來進行訓練 。

Pseudo-labeling

當訓練一個 Classifier 時,通常假設 Decision boundary 最後會落在一個 Low-density 的區域,所以每一筆給模型訓練的資料如果越接近這個 Boundary ,那所帶來的資訊量就越大,也就越有可能讓模型更具備泛化能力。

為了在 Unlabeled data 中找出這種有幫助的資料,常會先用少量的 Labeled data 訓練出一個 Classifier,再用這 Classifier 對 Unlabeled data 進行採樣。

採樣標準是對預測結果的 Confidence 設定一個 Threshold,超過 Threshold 的預測結果,會在下個訓練週期以此預測值作為 Label 並加入訓練資料 ,這種 Label 就稱為「 Pseudo-label 」

這個程序會不斷重複到一開始設定的 Epoch 數,或者這個 Classifier 再也無法找出更多超過 Threshold 的 Unlabeled data 。

這種不斷在疊代過程混入 Pseudo-label 的作法,會讓模型自己篩選 Unlabeled data 並給予模型自己認為是對的 Label 作為擴充的訓練資料,藉此不斷地提升模型表現 ,這過程通常稱為「 Self-training 」

Current methods

當前在 Self-supervised learning 的作法上,大多傾向使用 Consistency regularization 這種技巧,結合不同 Style 的 Self-supervised loss,像是這篇 ECCV 2020 的論文:《 Adversarial Self-Supervised Learning for Semi-Supervised 3D Action Recognition 》,就有用到 Consistency regularization 這方法,詳細介紹可參考我之前寫的這篇文章

Curriculum learning

這篇論文借鑒了 ICML 2009 的這篇論文:《 Curriculum learning 》

當時的作法是在訓練模型時先使用 Easy sample ,並逐漸加入更多 Hard sample ,這樣的流程可以改善模型的整體表現 。

而主要的挑戰在於:如何設計那個 Curriculum?

控制那從 Easy 到 Hard 的步調是一個重要的關鍵

太慢的話,可能會導致學習無效;太快的話,又可能容易讓模型混淆!

而這篇 Curriculum Labeling 的論文,透過後面的實驗證明,以人工方式挑選 Threshold 的作法,並不能確保模型訓練的好,因此改以「 Extreme Value Theory ( EVT ) 」作為準則,並對 Unlabeled data 的預測結果分佈進行分析 ,進而提出「 Self-paced 」策略 。

再結合前人提出的 Pseudo-labeling ,在每個訓練週期重新啟動模型參數,作者們將此作法稱為「 Curriculum labeling 」,整體訓練流程的圖說如下:

透過這樣的設計可達到與近期 SOTA 作法相近的成果 。

Realistic scenario

當前衡量 Semi-supervised learning 方法的標準被這篇論文 ( Oliver, A.; Odena, A.; Raffel, C. A.; Cubuk, E. D.; and Goodfellow, I. J. 2018. Realistic Evaluation of Deep SemiSupervised Learning Algorithms. In NeurIPS. ) 嚴厲的批評 。

該論文指出,許多現有的作法會故意使 Label data 與 Unlabeled data 之間在類別分佈一致,然而現實總是殘酷的,許多真實場景的資料分佈並不會與現有資料集的資料分佈一致,而該論文也用許多實驗證明了現有方法在資料分佈不一致的時候表現並不好 。

而這篇 Curriculum Labeling 的論文也透過實驗證明,其作法在資料分佈不一致的情況下,仍能保持其強健的表現 。

Two key factors

該論文重溫了 Semi-supervised learning 的 Pseudo-label 做法,並指出下列 2 個因素,是達到接近 SOTA 表現的關鍵:

  1. 應用該論文提出的 Curriculum learning principles
  2. 在每個 Self-training 的週期重啟模型參數

Summary of contributions

這邊總結一下這篇論文的 3 個貢獻:

  1. 提出「 Curriculum Labeling 」,基於 Extreme Value Theory (EVT) 對Curriculum 做選擇,並藉此增強 Pseudo-labeling 的作法
  2. 在 CIFAR-10 和 Imagenet ILSVRC 資料集的 Top-1 accuracy 和 SVHN 的表現,都與近期的 SOTA 接近
  3. 與先前作法相比,該論文提出的方法在面對真實場景的資料分佈時,能有更連貫的表現

Related Work

過去有幾篇論文也仰賴參數化模型來對 Unlabeled data 生成 Pseudo-label,像是 ICML 2013 的:
《 Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks 》
以及 ECCV 2018 的:
《 Transductive Semi-Supervised Deep Learning using Min-Max Features 》

而這篇 Curriculum Labeling 的論文與它們的差異在於加入了 Self-pacing 的機制,在訓練過程的前幾個 Iteration 只加入 Confidence 夠高的資料,後續則根據訓練資料的 Score 分佈來決定 Threshold 。

與該論文最相關的一篇是 2019 年的這篇論文:
《 Pseudo-Labeling and Confirmation Bias in Deep Semi-Supervised Learning 》

2019 這篇論文在 Pseudo-labeling 的採用上,結合了 ICLR 2018 的 《 Mixup: Beyond Empirical Risk Minimization 》所提出的技巧,使用 Mixup augmentation 作為一種有效的 Regularization,對於有時模型在生成 Pseudo-labeling 有錯的情況時,有比較好的改善。

前述問題通常稱為 Confirmation bias ,在這篇 Curriculum Labeling 的論文對此現象採取另一種策略:在每個 Self-training 的週期內,都會重新初始化模型,就可避免來自過去 Epoch 的 Pseudo-label 對最終模型有太大的影響 。

Method : Pseudo-Labeling under Curriculum

該論文的作法有提供 Pseudocode:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021.

其中關鍵在決定哪些 Unlabeled data 要被加入到 Training set ,對應到上方的 Pseudocode 是在第 8 行的 Percentile( ) ,這邊作者引入「 Extreme Value Theory 的觀點來分析預測結果的機率分佈 。

Extreme Value Theory

該理論來自統計學,常被應用來預測極端事件的發生機率。而這篇論文將模型對全部 Unlabeled data 的預測結果 ( 各類別機率的最大值 ) 視為「 Pareto distribution 」,取代以往將 Threshold 設為定值或人工微調的作法,透過對預測結果的分析來決定要對哪些 Unlabeled data 在下次訓練時給予對應的 Pseudo-label 並加入 Training set 。再更仔細一點看 Pseudocode:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021.

前面提到的關鍵在第 8 行的 Percentile( ) ,這邊給予 2 項參數 P(D) 與 Tr ,分別為「 預測結果的機率分佈 」與「 初始的 Threshold 」 ( 一開始是 80 就是俗稱的八二法則 ),這個 Function 會回傳一個百分位數 r-th ,接著在第 11 行的時候透過這個 r 篩選 Unlabeled data ,並在第 12 行給予 Pseudo-label,第 13 行便是將這些 Pseudo-label 加入到下個 Iteration 做訓練 。

Theoretical Analysis

為了選擇可能誤差最小的 Predictor ,在 Loss function 的定義上,該論文採用 Regularized Empirical Risk Minimization (ERM) 作為框架,公式如下:

這邊的 N 是 N 筆 Labeled examples,每筆 Pair data 定義為 ( Xi, Yi );M 則是 M 筆 Unlabeled examples 每筆資料只有 Xj

L(θ) 就是該論文主要的 Pseudo-labeling regularized empirical loss,優化目標則是最小化這個 Loss:

這邊的 CEE 指的是 Cross entropy,接著參考其他論文的方法改寫 θ head:

再來為了簡化上方的 Notions ,該論文重新將優化目標定義為最大化效益目標,並以U()表示:

這邊的 δ 指的是 Indicator

而整個 Loss 就可重新改寫成:

而該論文的 Pseudo curriculum 中的 Pacing function 可有效地為採樣的 Unlabeled samples 提供一個 Bayesian prior ,因此可加上 p( Xj ) 並改寫為:

這邊的 pj = p( Xj )是用來決定如何對 Unlabeled samples 做採樣的機率,在演算法中是由 Pacing function 來決定的,因此 p( Xj ) 有著 Indicator function 的作用,如果該筆資料是在 top µ 的百分位之內,則為 1/M ,反之則是 0。因此可將上式改寫為:

根據這公式可看出,當演算法在篩選 Unlabeled data 時,其實是根據其機率與預測結果的 Confidence 要成正相關。在此機制底下,若最小化整體的 Loss ,變越有可能選取到 Xj 。這證明了如果想採樣更多的 Unlabeled data ,模型對其預測結果的 Confidence 要越高 。

Experiments

Experimental Settings

Datasets

  • CIFAR-10:
    Training and validation set: 4,000 Labeled samples,46,000 Unlabeled samples
    Testing set:10,000 Samples
    另外在此資料集上,也有對 Labeled sample 只有 500, 1,000, 2,000 的情況做實驗
  • Street View House Numbers (SVHN):
    Training set: 1,000 Labeled samples,71,257 Unlabeled samples
    Validation set:1,000 Samples
    Testing set:26,032 Samples
  • ImageNet ILSVRC:
    在此資料集上使用低於 10% 的資料
    Training set: 102,000 Labeled samples,1,253,167 Unlabeled samples
    Validation set:26,000 Samples
    Testing set:50,000 Samples

Model Details

在 CIFAR-10 和 SVHN 這 2 個資料集上,使用的是 CNN-13 、WideResNet-28 ,在 ImageNet 資料集上則是使用 ResNet-50 。

優化器使用的是 Stochastic Gradient Descent ( SGD ) ,這邊在 Momentum 的設定上比較特別一些,使用的是 Nesterov momentum 。

相較於一般的 Momentum 而言,Nesterov 的作法是將一般 Momentum 已經看到的修正方向也納入考量,並做出更進一步的修正,對應到數學定義的話就是透過二階導數在修正 Gradient 的方向,所以可以收斂的更快,詳細介紹可以參考這個網站

其餘常見的 Hyper-parameter 設定整理在這邊:

  • Initial learning rate:0.1
  • Learning rate schedule:Cosine annealing
  • Weight decay:0.0005
  • Momentum factor:0.9

以上在所有實驗都是共同的設定,只有在 Batch-size 的設定上,因應 Data augmentation 的強度不同而有所差異。若採用較緩和的 Data augmentation ( Random cropping, padding, whitening and horizontal flipping ) Batch-size 設定為 64 ~ 100 是比較好的。另外如果使用比較強烈的 Data augmentation ( 透過 Reinforcement Learning 訓練模型來做 Augmentation ) 則需要比較大的 Batch-size ,例如:512 ~ 1024 。

在 Epoch 的設定上,在 CIFAR-10 和 SVHN 資料集是 750,並且在第 500 個 Epoch 後,有使用 Stochastic weight averaging ( SWA ) 。在 ImageNet 資料集上一共訓練了 220 個 Epochs, SWA 的應用則是從第 100 個 Epoch 開始 。

SWA 這技巧就如同其命名,是在訓練過程對經過優化器的權重做平均 。這種作法可讓訓練過程更穩定,通常在整個訓練過程的中後期才會使用,能幫助模型在平緩區域達到接近中心的位置 。

Data Augmentation

近期在 Data augmentation 的作法上,開始仰賴 Reinforcement Learning 的作法,讓那些 Augmentation 的 Policy 是被模型學出來的。像這篇 CVPR 2019 的論文《 AutoAugment: Learning Augmentation Policies from Data 》在 ImageNet 的實做效果如下:

Cubuk, E. D., Zoph, B., Mane, D., Vasudevan, V., and Le, Q. V. Autoaugment: Learning augmentation policies from data. CVPR, 2019. Figure 3.

或是另一篇 NIPS 2019 的論文《 Fast AutoAugment 》基於 AutoAugment 的想法,提出速度更快的 Density matching:

Sungbin Lim, Ildoo Kim, Taesup Kim, Chiheon Kim, and Sungwoong Kim. Fast autoaugment. In NeurIPS, 2019. Figure 2.

透過類似 K-fold Cross-validation 的方法將資料集切成許多 Sub set ( 圖中的 D train ),接著有兩組模型進行學習,DM 是一般的模型訓練方式, DA 則是以不同 Augmentation 的批配方法做訓練,期望找出一套 Policy ( T∗ ) 是在 DM 和 DA 表現都很好的 Augmentation 方法。

除了上述自動化的方法外,也有些技巧是對原始數據加入一些擾動產生 Adversarial examples ,或是內插隨機的 Sample 。

該論文在實驗中以隨機的方式嘗試了前述的 Augmentation 方法,得到了不錯的效果,並稱之為 Random Augmentation (RA) 。

Comparisons with the State-of-the-Art

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Table 2.

在上表中的數據都是 Error rate ,比較了許多在 CIFAR10 和 SVHN 資料集上,使用 WideResnet-28 ( Table 1) /CNN-13 ( Table 2 ) 作為模型架構的 SOTA 數據 。

可看出同樣在 Pseudo-labeling based 方法上,表現已超越過去作法許多,並且與 Consistency regularization 的作法很接近 。

再來是常用來衡量 SSL 演算法的作法,將 Labeled data 的數量減少至每個類別僅有 50, 100, 200 的數量做實驗:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Figure 2.

上圖是以 WideResNet 架構在 CIFAR-10 資料集上的測試結果,為了分數比較上的公平性,採用的是標準 Validation set 設定,共有 5,000 筆資料。而從 X 軸可以看出,實驗過程有將 Labeled data 的數量減少,藉此模擬真實情況。

圖中的實線是 Error rate 的 Mean ,線上下方的色塊區域則是 Standard deviation 。

在不同資料量的情況下,使用的 Hyperparameters 是相同的,而從綠色的線可以看出,該論文的方法在資料量減少的時候,表現並沒有大幅下降,也滿接近當前的 Benchmark UDA 。

另外在 ImageNet 資料集的實驗數據如下:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Table 3.

這邊使用的資料有 10% 是 Labeled data ,90% 是 Unlabeled data ,表現與前面提到的 UDA 非常接近。

Realistic Evaluation with Out-of-Distribution Unlabeled Samples

再更真實的 SSL 設定中,Unlabeled data 不見得會有著與 Labeled data 一樣的類別,所以該論文跟隨前人作法,在 CIFAR-10 資料集上只抽出動物類別 ( bird, cat, deer, dog, frog, horse ) 來做實驗並比較 Error rate:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Figure 3.

可從綠色線看出,在資料分佈並不一致的情況下,該論文的效果特別好,作者們推論是因為 Self-pacing curriculum 這方法的 Threshold 是具備適應性的,所以可在訓練過程過濾掉 Out-of-distribution 的 Unlabeled data 。

Ablation Studies

這部份的實驗主要針對該論文的 2 個特點來做:

  1. Curriculum labeling 的方法有利用百分位數調整 Threshold
  2. 在每個訓練週期重新初始化模型 ( Train from scratch )

Effectiveness of Curriculum Labeling

首先將 Curriculum 的作法拿掉,單純看不同 Data augmentation 與 Mixup 和 SWA 的 Error rate:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Table 4.

只有在強烈的 Data augmentation 有做的時候,才會接近該 Curriculum Labeling 不做任何 Data augmentation 的效果。

另外也對 Threshold 是定值的作法進行比較:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Table 5.

從最後一行 CL ( Curriculum Labeling ) 可看出,同樣的 Data augmentation 底下,確實比較有效 。

再來是對人工選擇 Threshold 的方法做比較:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Table 6.

0.9 和 0.9995 是參照前人作法只選擇最有信心的資料生成 Pseudo-label ,雖然效果不錯,但在第一個 Iteration 之後修正效果就沒有 Self-pacing 的方法好

Effectiveness of Reinitializing vs Finetuning

最後是對模型在每個訓練週期重新初始化的方法做驗證:

P. Cascante-Bonilla, F. Tan, Y. Qi, V. Ordonez, Curriculum labeling: Revisiting pseudo-labeling for semi-supervised learning, in: AAAI Conference on Artificial Intelligence, 2021. Table 7.

為了避免前面提到的 Confirmation bias 產生,該論文在每個訓練週期都會對模型做 Reinitialize ,可從分數看出隨著 Iteration 的次數越多,分數拉的越開,這邊是因為一開始模型並不夠精準,而導致有些 Pseudo-label 不見得正確,若不做 Reinitialize 就可能在後續的訓練中,對整體產生更嚴重的影響。

Conclusion

最後用該論文的 GitHub 動圖來回顧一下整體:

這篇論文把 Pseudo-labeling 方法帶入 Curriculum learning 的概念,在每個訓練週期跟據模型預測結果來篩選 Unlabeled data 並生成 Pseudo-label,另外透過重新初始化模型參數的作法,對初期 Pseudo-label 不穩定的狀態有更好的容忍力 。

在常見的 CIFAR-10 、 SVHN 和 ImageNet ILSVRC 等資料集上,都有與 SOTA 方法接近的表現 。

--

--

Ken Huang
人工智慧,倒底有多智慧?

在網路上自學的過程中,體會到開放式資源的美好,希望藉由撰寫文章記錄研究所的學習過程,同時作為回饋網路世界的一種方式。Email : kenhuang2019iii@gmail.com ,如果有任何問題都歡迎與我聯繫。