如何在開放世界進行測試段訓練?基于動態原型擴展的自訓練方法
提高模型泛化能力是推動基于視覺的感知方法落地的重要基礎,測試段訓練和適應(Test-Time Training/Adaptation)通過在測試段調整模型參數權重,將模型泛化至未知的目標域數據分布段。現有 TTT/TTA 方法通常著眼于在閉環世界的目標域數據下提高測試段訓練性能。
可是,在諸多應用場景中,目標域容易受到強域外數據 (Strong OOD) 數據的污染,例如不相關的語義類別數據。在該場景又可稱為開放世界測試段訓練 (OWTTT),在該場景下,現有 TTT/TTA 通常將強域外數據強行分類至已知類別,從而最終干擾對如收到噪聲干擾圖像的弱域外數據(Weak OOD)的分辨能力。
近日,來自華南理工大學和 A*STAR 團隊首次提出開放世界測試段訓練的設定,并推出了針對開放世界測試段訓練的方法。
- 論文:https://arxiv.org/abs/2308.09942
- 代碼:https://github.com/Yushu-Li/OWTTT
本文首先提出了一種自適應閾值的強域外數據樣本過濾方法,提高了自訓練 TTT 方法的在開放世界的魯棒性。該方法進一步提出了一種基于動態擴展原型來表征強域外樣本的方法,以改進弱 / 強域外數據分離效果。最后,通過分布對齊來約束自訓練。
本文的方法在 5 個不同的 OWTTT 基準上實現了最優的性能表現,并為 TTT 的后續研究探索面向更加魯棒 TTT 方法的提供了新方向。研究已作為 Oral 論文被 ICCV 2023 接收。
引言
測試段訓練(TTT)可以僅在推理階段訪問目標域數據,并對分布偏移的測試數據進行即時推理。TTT 的成功已經在許多人工選擇的合成損壞目標域數據上得到證明。然而,現有的 TTT 方法的能力邊界尚未得到充分探索。
為促進開放場景下的 TTT 應用,研究的重點已轉移到調查 TTT 方法可能失敗的場景。人們在更現實的開放世界環境下開發穩定和強大的 TTT 方法已經做出了許多努力。而在本文工作中,我們深入研究了一個很常見但被忽略的開放世界場景,其中目標域可能包含從顯著不同的環境中提取的測試數據分布,例如與源域不同的語義類別,或者只是隨機噪聲。
我們將上述測試數據稱為強分布外數據(strong OOD)。而在本工作中被稱為弱 OOD 數據則是分布偏移的測試數據,例如常見的合成損壞。因此,現有工作缺乏對這種現實環境的研究促使我們探索提高開放世界測試段訓練(OWTTT)的魯棒性,其中測試數據被強 OOD 樣本污染。
圖 1 :現有的 TTT 方法在 OWTTT 設定下的評估結果
如圖 1 所示,我們首先對現有的 TTT 方法在 OWTTT 設定下進行評估,發現通過自訓練和分布對齊的 TTT 方法都會受到強 OOD 樣本的影響。這些結果表明,應用現有的 TTT 技術無法在開放世界中實現安全的測試時訓練。我們將它們的失敗歸因于以下兩個原因。
- 基于自訓練的 TTT 很難處理強 OOD 樣本,因為它必須將測試樣本分配給已知的類別。盡管可以通過應用半監督學習中采用的閾值來過濾掉一些低置信度樣本,但仍然不能保證濾除所有強 OOD 樣本。
- 當計算強 OOD 樣本來估計目標域分布時,基于分布對齊的方法將會受到影響。全局分布對齊 [1] 和類別分布對齊 [2] 都可能受到影響,并導致特征分布對齊不準確。
考慮到現有 TTT 方法失敗的潛在原因,我們提出了兩種技術相結合來提高自訓練框架下開放世界 TTT 的魯棒性。
首先,我們在自訓練的變體上構建 TTT 的基線,即在目標域中以源域原型作為聚類中心進行聚類。為了減輕自訓練受到錯誤偽標簽的強 OOD 的影響,我們設計了一種無超參數的方法來拒絕強 OOD 樣本。
為了進一步分離弱 OOD 樣本和強 OOD 樣本的特征,我們允許原型池通過選擇孤立的強 OOD 樣本擴展。因此,自訓練將允許強 OOD 樣本圍繞新擴展的強 OOD 原型形成緊密的聚類。這將有利于源域和目標域之間的分布對齊。我們進一步提出通過全局分布對齊來規范自我訓練,以降低確認偏差的風險。
最后,為了綜合開放世界的 TTT 場景,我們采用 CIFAR10-C、CIFAR100-C、ImageNet-C、VisDA-C、ImageNet-R、Tiny-ImageNet、MNIST 和 SVHN 數據集,并通過利用一個數據集為弱 OOD,其他為強 OOD 建立基準數據集。我們將此基準稱為開放世界測試段訓練基準,并希望這能鼓勵未來更多的工作關注更現實場景中測試段訓練的穩健性。
方法
論文分了四個部分來介紹所提出的方法。
1)概述開放世界下測試段訓練任務的設定。
2)介紹了如何通過原型聚類實現 TTT 以及如何擴展原型以進行開放世界測試時訓練。
3)介紹了如何利用目標域數據進行動態原型擴展。
4)引入分布對齊與原型聚類相結合,以實現強大的開放世界測試時訓練。
圖 2 :方法概覽圖
任務設定
TTT 的目的是使源域預訓練模型適應目標域,其中目標域可能會相對于源域有分布遷移。在標準的封閉世界 TTT 中,源域和目標域的標簽空間是相同的。然而在開放世界 TTT 中,目標域的標簽空間包含源域的目標空間,也就是說目標域具有未見過的新語義類別。
為了避免 TTT 定義之間的混淆,我們采用 TTAC [2] 中提出的順序測試時間訓練(sTTT)協議進行評估。在 sTTT 協議下,測試樣本被順序測試,并在觀察到小批量測試樣本后進行模型更新。對到達時間戳 t 的任何測試樣本的預測不會受到到達 t+k(其 k 大于 0)的任何測試樣本的影響。
原型聚類
受到域適應任務中使用聚類的工作啟發 [3,4],我們將測試段訓練視為發現目標域數據中的簇結構。通過將代表性原型識別為聚類中心,在目標域中識別聚類結構,并鼓勵測試樣本嵌入到其中一個原型附近。原型聚類的目標定義為最小化樣本與聚類中心余弦相似度的負對數似然損失,如下式所示。
我們開發了一種無超參數的方法來濾除強 OOD 樣本,以避免調整模型權重的負面影響。具體來說,我們為每個測試樣本定義一個強 OOD 分數 os 作為與源域原型的最高相似度,如下式所示。
圖 3 離群值呈雙峰分布
我們觀察到離群值服從雙峰分布,如圖 3 所示。因此,我們沒有指定固定閾值,而是將最佳閾值定義為分離兩種分布的的最佳值。具體來說,問題可以表述為將離群值分為兩個簇,最佳閾值將最小化中的簇內方差。優化下式可以通過以 0.01 的步長窮舉搜索從 0 到 1 的所有可能閾值來有效實現。
動態原型擴展
擴展強 OOD 原型池需要同時考慮源域和強 OOD 原型來評估測試樣本。為了從數據中動態估計簇的數量,之前的研究了類似的問題。確定性硬聚類算法 DP-means [5] 是通過測量數據點到已知聚類中心的距離而開發的,當距離高于閾值時將初始化一個新聚類。DP-means 被證明相當于優化 K-means 目標,但對簇的數量有額外的懲罰,為動態原型擴展提供了一個可行的解決方案。
為了減輕估計額外超參數的難度,我們首先定義一個測試樣本,其具有擴展的強 OOD 分數作為與現有源域原型和強 OOD 原型的最近距離,如下式。因此,測試高于此閾值的樣本將建立一個新的原型。為了避免添加附近的測試樣本,我們增量地重復此原型擴展過程。
隨著其他強 OOD 原型的確定,我們定義了用于測試樣本的原型聚類損失,并考慮了兩個因素。首先,分類為已知類的測試樣本應該嵌入到更靠近原型的位置并遠離其他原型,這定義了 K 類分類任務。其次,被分類為強 OOD 原型的測試樣本應該遠離任何源域原型,這定義了 K+1 類分類任務。考慮到這些目標,我們將原型聚類損失定義為下式。
分布對齊約束
眾所周知,自訓練容易受到錯誤偽標簽的影響。目標域由 OOD 樣本組成時,情況會更加惡化。為了降低失敗的風險,我們進一步將分布對齊 [1] 作為自我訓練的正則化,如下式。
實驗
我們在 5 個不同的 OWTTT 基準數據集中進行測試,包括人工合成的損壞數據集和風格變化的數據集。實驗主要使用了三個評價指標:弱 OOD 分類準確率 ACCS、強 OOD 分類準確率 ACCN 和二者的調和平均數 ACCH。
表 1 不同方法在 Cifar10-C 數據集的表現
表 2 不同方法在 Cifar100-C 數據集的表現
表 3 不同方法在 ImageNet-C 數據集的表現
表 4 不同方法在 ImageNet-R 數據集的表現
表 5 不同方法在 VisDA-C 數據集的表現
如上表所示,我們的方法在幾乎所有數據集上相較于目前最優秀的方法都有比較大的提升,可以有效地識別強 OOD 樣本,并減小其對弱 OOD 樣本分類的影響。我們的方法可以在開放世界的場景下實現更加魯棒的 TTT。
總結
本文首次提出了開放世界測試段訓練(OWTTT)的問題和設定,指出現有的方法在處理含有和源域樣本有語義偏移的強 OOD 樣本的目標域數據時時會遇到困難,并提出一個基于動態原型擴展的自訓練的方法解決上述問題。我們希望這項工作能夠為 TTT 的后續研究探索面向更加魯棒的 TTT 方法提供新方向。