解決Batch Norm層等短板的開放環境解決方案
測試時自適應(Test-Time Adaptation, TTA)方法在測試階段指導模型進行快速無監督 / 自監督學習,是目前用於提升深度模型分佈外泛化能力的一種強有效工具。然而在動態開放場景中,穩定性不足仍是現有 TTA 方法的一大短板,嚴重阻礙了其實際部署。為此,來自華南理工大學、騰訊AI Lab 及新加坡國立大學的研究團隊,從統一的角度對現有TTA 方法在動態場景下不穩定原因進行分析,指出依賴於Batch 的歸一化層是導致不穩定的關鍵原因之一,另外測試資料流中某些具有雜訊/ 大規模梯度的樣本容易將模型最佳化至退化的平凡解。基於此進一步提出銳利度敏感且可靠的測試時熵最小化方法 SAR,實現動態開放場景下穩定、高效的測試時模型在線遷移泛化。本工作已入選 ICLR 2023 Oral (Top-5% among accepted papers)。
- 論文標題:Towards Stable Test-time Adaptation in Dynamic Wild World
- 論文網址:https://openreview.net/forum?id=g2YraF75Tj
- 開源程式碼:https://github.com/ mr-eggplant/SAR
什麼是Test-Time Adaptation?
傳統機器學習技術通常在預先收集好的大量訓練資料上進行學習,之後固定模型進行推理預測。這種範式在測試與訓練資料來自相同資料分佈時,往往會取得十分優異的表現。但在實際應用中,測試資料的分佈很容易偏離原始訓練資料的分佈(distribution shift),例如在擷取測試資料的時候:1)天氣的變化使得影像中包含有雨雪、霧的遮蔽;2)由於拍攝不當使得影像模糊,或感測器退化導致影像中包含雜訊;3)模型基於北方城市擷取資料進行訓練,卻被部署到了南方城市。以上種種情況十分常見,但對於深度模型而言往往是很致命的,因為在這些場景下其性能可能會大幅下降,嚴重製約了其在現實世界中(尤其是類似於自動駕駛等高風險應用)的廣泛部署。
#圖1 Test-Time Adaptation 示意圖(參考[5])及其與現有方法特點對比
不同於傳統機器學習範式,如圖1 所示在測試樣本到來後,Test-Time Adaptation (TTA) 首先基於該資料利用自監督或無監督的方式對模型進行精細化微調,而後再使用更新後的模型做出最終預測。典型的自 / 無監督學習目標包括:旋轉預測、對比學習、熵最小化等等。這些方法均展現出了優異的分佈外泛化(Out-of-Distribution Generalization)效能。相較於傳統的 Fine-Tuning 以及 Unsupervised Domain Adaptation 方法,Test-Time Adaptation 能夠做到線上遷移,效率更高也更普適。另外完全測試時適應方法 [2] 其可以針對任意預訓練模型進行適應,無需原始訓練資料也無需干涉模型原始的訓練過程。以上優點極大增強了 TTA 方法的現實通用性,再加上其展現出來的優異性能,使得 TTA 成為遷移、泛化等相關領域極為熱點的研究方向。
為什麼要 Wild Test-Time Adaptation?
儘管現有TTA 方法在分佈外泛化方面已表現出了極大的潛力,但這種優異的性能往往是在一些特定的測試條件下所獲得的,例如測試資料流在一段時間內的樣本均來自於同一種分佈偏移類型、測試樣本的真實類別分佈是均勻且隨機的,以及每次需要有一個mini-batch 的樣本後才可以進行適應。但事實上,以上這些潛在假設在現實開放世界中是很難被一直滿足的。在實際中,測試資料流可能以任意的組合方式到來,而理想情況下模型不應對測試資料流的到來形式做出任何假設。如圖2 所示,測試資料流完全可能遇到:(a)樣本來自不同的分佈偏移(即混合樣本偏移);(b)樣本batch size 非常小(甚至為1);(c)樣本在一段時間內的真實類別分佈是不均衡的且會動態變化的。本文將上述場景下的 TTA 統稱為 Wild TTA。但不幸的是,現有 TTA 方法在這些 Wild 場景下經常會表現得十分脆弱、不穩定,遷移效能有限,甚至可能損壞原始模型的效能。因此,若想真正實現 TTA 方法在實際場景中的大範圍、深度化應用部署,則解決 Wild TTA 問題即是其中不可避免的重要一環。
圖2 模型測試時自適應中的動態開放情境
解決想法與技術方案
本文從統一角度對TTA 在眾多Wild 場景下失敗原因進行分析,進而給出解決方案。
1. 為何 Wild TTA 會不穩定?
(1)Batch Normalization (BN) 是動態場景下TTA 不穩定的關鍵原因之一:現有TTA 方法通常是建立在BN 統計量自適應基礎之上的,即使用測試資料來計算BN 層中的平均值及標準差。然而,在3 個實際動態場景中,BN 層內的統計量估計準確度都會出現偏差,進而引發不穩定的TTA:
- ##場景(a) :由於BN 的統計量實際上代表了某一種測試資料分佈,使用一組統計量參數同時估計多個分佈不可避免會獲得有限的效能,請參閱圖3; ##場景(b):BN 的統計量依賴batch size 大小,在小batch size 樣本上很難得到準確的BN 的統計量估計,參見圖4;
- 情境(c):非均衡標籤分佈的樣本會導致BN 層內統計量有偏差,即統計量偏向某一特定類別(此batch 中佔比較大的類別),參見圖5;
batch 無關的 Norm 層(Group 和 Layer Norm)一定程度上規避了 Batch Norm 局限性,更適合在動態開放場景中執行 TTA,其穩定性也更高。因此,本文也將以搭載 GroupLayer Norm 的模型進行方法設計。
#圖3 不同方法與模型(不同歸一化層)在混合分佈偏移下性能表現
#######圖4 不同方法與模型(不同歸一化層)在不同batch size 下效能表現。圖中陰影區域表示此模型效能的標準差,ResNet50-BN 和 ResNet50-GN 的標準差太小導致在圖中不顯著(下圖同)############
圖5 不同方法與模型(不同歸一化層)在線上不平衡標籤分佈偏移下效能表現,圖中橫軸Imbalance Ratio 越大代表的標籤不平衡程度越嚴重
#(2)在線熵最小化易將模型優化至退化的平凡解,即將任意樣本預測到同一個類別:根據圖6 (a) 和(b) 顯示,在分佈偏移程度嚴重(level 5)時,在線自適應過程中突然出現了模型退化崩潰現象,即所有樣本(真實類別不同)被預測到同一類;同時,模型梯度的 範數在模型崩潰前後快速增大而後降至幾乎為0,見圖6(c),側面說明可能是某些大尺度/ 雜訊梯度破壞了模型參數,進而導致模型崩潰。
圖6 線上測試時熵最小化中的失敗案例分析
2. 銳利度敏感且可靠的測試時熵最小化方法
為了緩解上述模型退化問題,本文提出了銳利度敏感且可靠的測試時熵最小化方法(Sharpness-aware and Reliable Entropy Minimization Method, SAR)。其從兩個方面緩解此問題:1)可靠熵最小化從模型自適應更新移除部分產生較大/ 雜訊梯度的樣本;2)模型銳利度最佳化使得模型對剩餘樣本中所產生的某些雜訊梯度不敏感。具體細節闡述如下:
可靠熵最小化:基於Entropy 建立梯度選擇的替代判斷指標,將高熵樣本(包含圖6 (d) 中區域1 和2 的樣本)排除在模型自適應之外不參與模型更新:
其中x 表示測試樣本,Θ 表示模型參數,表示指示函數,
表示樣本預測結果的熵,
為超參數。只有當
時樣本才會參與反向傳播計算。
銳利度敏感的熵優化:透過可靠樣本選擇機制過濾後的樣本中,無法避免仍含有圖6 (d) 區域4中的樣本,這些樣本可能產生雜訊/ 較大梯度繼續幹擾模型。為此,本文考慮將模型最佳化至一個flat minimum,使其能夠對雜訊梯度帶來的模型更新不敏感,即不影響其原始模型效能,最佳化目標為:
上述目標的最終梯度更新形式如下:
其中 受启发于 SAM [4] 通过一阶泰勒展开近似求解得到,具体细节可参见本论文原文与代码。
至此,本文的总体优化目标为:
此外,为了防止极端条件下上述方案仍可能失败的情况,进一步引入了一个模型复原策略:通过移动监测模型是否出现退化崩溃,决定在必要时刻对模型更新参数进行原始值恢复。
实验评估
在动态开放场景下的性能对比
SAR 基于上述三种动态开放场景,即 a)混合分布偏移、b)单样本适应和 c)在线不平衡类别分布偏移,在 ImageNet-C 数据集上进行实验验证,结果如表 1, 2, 3 所示。SAR 在三种场景中均取得显著效果,特别是在场景 b)和 c)中,SAR 以 VitBase 作为基础模型,准确率超过当前 SOTA 方法 EATA 接近 10%。
表 1 SAR 与现有方法在 ImageNet-C 的 15 种损坏类型混合场景下性能对比,对应动态场景 (a);以及和现有方法的效率对比
表 2 SAR 与现有方法在 ImageNet-C 上单样本适应场景中的性能对比,对应动态场景 (b)
表 3 SAR 与现有方法在 ImageNet-C 上在线非均衡类别分布偏移场景中性能对比,对应动态场景(c)
消融实验
与梯度裁剪方法的对比:梯度裁剪避免大梯度影响模型更新(甚至导致坍塌)的一种简单且直接的方法。此处与梯度裁剪的两个变种(即:by value or by norm)进行对比。如下图所示,梯度裁剪对于梯度裁剪阈值 δ 的选取很敏感,较小的 δ 与模型不更新的结果相当,较大的 δ 又难以避免模型坍塌。相反,SAR 不需要繁杂的超参数筛选过程且性能显著优于梯度裁剪。
图 7 与梯度裁剪方法的在 ImageNet-C(shot nosise, level 5) 上在线不平衡标签分布偏移场景中的性能对比。其中准确率是基于所有之前的测试样本在线计算得出
不同模块对算法性能的影响:如下表所示,SAR 的不同模块协同作用,有效提升了动态开放场景下测试时模型自适应稳定性。
表 4 SAR 在 ImageNet-C (level 5) 上在线不平衡标签分布偏移场景下的消融实验
Loss 表面的銳利度視覺化:透過在模型權重增加擾動對損失函數視覺化的結果如下圖所示。其中,SAR 相較於 Tent 在最低損失等高線內的區域(深藍色區域)更大,表明 SAR 獲得的解更加平坦,對於噪聲 / 較大梯度更加魯棒,抗干擾能力更強。
圖8 熵損失表面視覺化
結語
本文致力於解決在動態開放場景中模型線上測試時自適應不穩定的難題。為此,本文首先從統一的角度對已有方法在實際動態場景失效的原因進行分析,並設計完整的實驗進行深度驗證。基於這些分析,本文最終提出銳利度敏感且可靠的測試時熵最小化方法,透過抑制某些具有較大梯度/ 雜訊測試樣本對模型更新的影響,實現了穩定、高效的模型在線測試時自適應。
以上是解決Batch Norm層等短板的開放環境解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

這個AI輔助程式工具在這個AI快速發展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設計工具能夠提升開發效率、提升程式碼品質、降低bug率,是現代軟體開發過程中的重要助手。今天大姚給大家分享4款AI輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協作上。 Git

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显著提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显著降低了使用AI

這篇論文探討了在自動駕駛中,從不同視角(如透視圖和鳥瞰圖)準確檢測物體的問題,特別是如何有效地從透視圖(PV)到鳥瞰圖(BEV)空間轉換特徵,這一轉換是透過視覺轉換(VT)模組實施的。現有的方法大致分為兩種策略:2D到3D和3D到2D轉換。 2D到3D的方法透過預測深度機率來提升密集的2D特徵,但深度預測的固有不確定性,尤其是在遠處區域,可能會引入不準確性。而3D到2D的方法通常使用3D查詢來採樣2D特徵,並透過Transformer學習3D和2D特徵之間對應關係的注意力權重,這增加了計算和部署的

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

Go語言開發行動應用程式教學隨著行動應用程式市場的不斷蓬勃發展,越來越多的開發者開始探索如何利用Go語言開發行動應用程式。作為一種簡潔高效的程式語言,Go語言在行動應用開發中也展現了強大的潛力。本文將詳細介紹如何利用Go語言開發行動應用程序,並附上具體的程式碼範例,幫助讀者快速入門並開始開發自己的行動應用程式。一、準備工作在開始之前,我們需要準備好開發環境和工具。首

Android開發是一項繁忙而又令人興奮的工作,而選擇適合的Linux發行版來進行開發則顯得尤為重要。在眾多的Linux發行版中,究竟哪一個最適合Android開發呢?本文將從幾個方面來探討這個問題,並給出具體的程式碼範例。首先,我們來看看目前流行的幾個Linux發行版:Ubuntu、Fedora、Debian、CentOS等,它們都有各自的優點和特點。

23年9月國防科大、京東和北理工的論文「DeepModelFusion:ASurvey」。深度模型整合/合併是一種新興技術,它將多個深度學習模型的參數或預測合併為一個模型。它結合了不同模型的能力來彌補單一模型的偏差和錯誤,以獲得更好的性能。而大規模深度學習模型(例如LLM和基礎模型)上的深度模型整合面臨一些挑戰,包括高運算成本、高維度參數空間、不同異質模型之間的干擾等。本文將現有的深度模型融合方法分為四類:(1)“模式連接”,透過一條損失減少的路徑將權重空間中的解連接起來,以獲得更好的模型融合初

寫在前面&筆者的個人理解基於圖像的3D重建是一項具有挑戰性的任務,涉及從一組輸入圖像推斷目標或場景的3D形狀。基於學習的方法因其直接估計3D形狀的能力而受到關注。這篇綜述論文的重點是最先進的3D重建技術,包括產生新穎的、看不見的視野。概述了高斯飛濺方法的最新發展,包括輸入類型、模型結構、輸出表示和訓練策略。也討論了尚未解決的挑戰和未來的方向。鑑於該領域的快速進展以及增強3D重建方法的眾多機會,對演算法進行全面檢查似乎至關重要。因此,本研究對高斯散射的最新進展進行了全面的概述。 (大拇指往上滑
