計算機視覺研究院專欄
Column of Computer Vision Institute
本文主要介紹剛剛被IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)錄用的一篇文章:EfficientTrain++: Generalized Curriculum Learning for Efficient Visual Backbone Training。
近年來,「scaling」是電腦視覺研究的主角之一。隨著模型尺寸和訓練資料規模的增大、學習演算法的進步以及正則化和資料增強等技術的廣泛應用,透過大規模訓練得到的視覺基礎網路(如ImageNet1K/22K 上訓得的Vision Transformer、MAE 、DINOv2 等)已在視覺辨識、目標偵測、語意分割等許多重要視覺任務上取得了令人驚豔的表現。
然而,「scaling」往往會帶來令人望而卻步的高昂模型訓練開銷,顯著阻礙了視覺基礎模型的進一步發展和工業應用。
面向解決這個問題,清華大學的研究團隊提出了一種廣義課程學習(generalized curriculum learning)演算法:EfficientTrain++。其核心思想在於,將「篩選和使用由易到難的數據、逐步訓練模型」的傳統課程學習範式推廣至「不進行資料維度的篩選,一直使用全部訓練數據,但在訓練過程中逐步揭示每個資料樣本的由易到難的特徵或模式(pattern)」。
EfficientTrain++ 有幾個重要的亮點:
接下來,我們一起來看看研究的細節。
近年來,大型基礎模型(foundation models)的蓬勃發展極大地促進了人工智慧和深度學習的進步。在電腦視覺領域,Vision Transformer(ViT)、CLIP、SAM、DINOv2等代表性工作已經證明了,同步增大(scaling up)神經網路尺寸和訓練資料規模能夠顯著拓展識別、檢測、分割等重要視覺任務的性能邊界。
然而,大型基礎模型往往具有高昂的訓練開銷,圖 1 給出了兩個典型例子。以使用 8 塊 NVIDIA V100 或性能更強的 GPU 為例,GPT-3、ViT-G 僅完成一次訓練即需要等效為數年甚至數十年的時間。如此高昂的訓練成本,無論是對學術界或工業界而言,都是較難負擔的巨大開銷,往往只有少數頂尖機構消耗大量資源才能推動深度學習的進展。因此,一個亟待解決的問題是:如何有效提升大型深度學習模式的訓練效率?
圖1 範例:大型深度學習基礎模型的高昂訓練開銷
對於電腦視覺模型而言,一個經典的想法是課程學習(curriculum learning),如圖2 所示,即模仿人類漸進式、高度結構化的學習過程,在模型訓練過程中,從最「簡單」的訓練資料開始,逐步引入由易到難的數據。
圖2 經典課程學習典範(圖片來源:《A Survey on Curriculum Learning》,TPAMI'22)
#然而,儘管動機比較自然,課程學習並沒有被大規模應用為訓練視覺基礎模型的通用方法,其主要原因在於存在兩個關鍵的瓶頸,如圖3 所示。其一,設計有效的訓練課程(curriculum)並非易事。區別「簡單」、「困難」樣本往往需要藉助額外的預訓練模型、設計較複雜的 AutoML 演算法、引入強化學習等,且通用性較差。其二,課程學習本身的建模存在一定不合理性。自然分佈中的視覺資料往往具有高度的多樣性,圖3 下方給出了一個例子(從ImageNet 中隨機抽取的鸚鵡圖片),模型訓練資料中包含大量不同動作的鸚鵡、離鏡頭不同距離的鸚鵡、不同視角、不同背景的鸚鵡、以及鸚鵡與人或物的多樣化的交互等,將如此多樣化的數據數據僅以“簡單”、“困難”的單一維度指標進行區分,事實上是一個比較粗糙和牽強的建模方式。
圖 3 阻礙課程學習大規模應用於訓練視覺基礎模型的兩個關鍵瓶頸
受到上述挑戰的啟發,本文提出了一種廣義課程學習(generalized curriculum learning)範式,其核心思想在於,將「篩選和使用由易到困難的資料、逐步訓練模型」的傳統課程學習範式推廣至「不進行資料維度的篩選,一直使用全部訓練數據,但在訓練過程中逐步揭示每個資料樣本的由易到難的特徵或模式」,這樣就有效避開了因資料篩選範式引發的局限和次優設計,如圖4 所示。
圖4 傳統課程學習(樣本維度) v.s.廣義課程學習(特徵維度)
這個範式的提出主要基於一個有趣的現象:在一個自然的視覺模型訓練過程中,雖然模型總是可以隨時獲取數據中包含的全部信息,但模型總是會自然地先學習識別數據中包含的某些比較簡單的判別特徵(pattern),而後在此基礎上再逐步學習識別更難的判別特徵。而且,這個規律是比較普遍的,「比較簡單」的判別特徵在頻域和空域都可以較方便地找到。本文設計了一系列有趣的實驗來證明上述發現,如下所述。
從頻域的角度來說,「低頻特徵」對於模型而言「比較簡單」# 。在圖5 中,本文作者使用標準ImageNet-1K 訓練資料訓練了一個DeiT-S 模型,並使用頻寬不同的低通濾波器對驗證集進行濾波,只保留驗證影像的低頻分量,在此基礎上報告DeiT-S 在訓練過程中、在低通濾波的驗證資料上的準確率,所得準確率相對訓練過程的曲線顯示於圖5 右側。
我们可以看到一个有趣的现象:在训练早期阶段,仅使用低通滤波的验证数据不会显著降低准确性,且曲线与正常验证集准确率间的分离点随滤波器带宽的增大而逐渐右移。这一现象表明,尽管模型始终可以访问训练数据的低频和高频部分,但其学习过程自然地从仅关注低频信息开始,识别较高频特征的能力则在训练后期逐步习得(这一现象的更多证据可参考原文)。
图 5 频域角度上,模型自然倾向于先学习识别低频特征
这一发现引出了一个有趣的问题:我们是否可以设计一个训练课程(curriculum),从只为模型提供视觉输入的低频信息开始,而后逐渐引入高频信息?
图 6 研究了这个想法,即仅在特定长度的早期训练阶段对训练数据执行低通滤波,训练过程的其余部分保持不变。从结果中可以观察到,尽管最终性能提升有限,但有趣的是,即使在相当长的一段早期训练阶段中仅向模型提供低频分量,模型的最终精度也可以在很大程度上得到保留,这也与图 5 中「模型在训练初期主要关注学习识别低频特征」的观察不谋而合。
这一发现启发了本文作者关于训练效率的思考:既然模型在训练初期只需要数据中的低频分量,且低频分量包含的信息小于原始数据,那么能否使模型以比处理原始输入更少的计算成本高效地仅从低频分量中学习?
图 6 在相当长的一段早期训练阶段中仅向模型提供低频分量并不会显著影响最终性能
事实上,这一思路是完全可行的。如图 7 左侧所示,本文作者在图像的傅里叶频谱中引入了裁切操作,裁切出低频部分,并将其映射回像素空间。这一低频裁切操作准确地保留了所有低频信息,同时减小了图像输入的尺寸,因此模型从输入中学习的计算成本可以呈指数级降低。
如果使用这一低频裁切操作在训练早期阶段处理模型输入,可以显著节省总体训练成本,但由于最大限度地保留了模型学习所必要的信息,仍然可以获得性能几乎不受损失的最终模型,实验结果如图 7 右下方所示。
图 7 低频裁切(low-frequency cropping):使模型高效地仅从低频信息中学习
在频域操作之外,从空域变换的角度,同样可以找到对于模型而言「比较简单」的特征。例如,没有经过较强数据增强或者扭曲处理的原始视觉输入中所包含的自然图像信息往往对于模型而言「比较简单」、更容易让模型学习,因为它们是从现实世界的分布中得出的,而数据增强等预处理技术所引入的额外信息、不变性等往往对于模型而言较难学习(图 8 左侧给出了一个典型示例)。
事实上,现有研究也已观察到,数据增强主要在训练较晚期阶段发挥作用(如《Improving Auto-Augment via Augmentation-Wise Weight Sharing》, NeurIPS’20)。
在这一维度上,为实现广义课程学习的范式,可以简单地通过改变数据增强的强度方便地实现在训练早期阶段仅向模型提供训练数据中较容易学习的自然图像信息。图 8 右侧使用 RandAugment 作为代表性示例来验证了这个思路,RandAugment 包含了一系列常见的空域数据增强变换(例如随机旋转、更改锐度、仿射变换、更改曝光度等)。
可以观察到,从较弱的数据增强开始训练模型可以有效提高模型最终表现,同时这一技术与低频裁切兼容。
圖8 從空域的角度尋找模型「較容易學習」 的特徵:一個資料增強的視角
到此處為止,本文提出了廣義課程學習的核心框架與假設,並透過揭示頻域、空域的兩個關鍵現象證明了廣義課程學習的合理性和有效性。在此基礎上,本文進一步完成了一系列系統性工作,並在下面列出。由於篇幅所限,關於更多研究細節,可參考原論文。
本文最終得到的 EfficientTrain++ 廣義課程學習方案如圖 9 所示。 EfficientTrain++ 以模型訓練總計算開銷的消耗百分比為依據,動態調整頻域低頻裁切的頻寬和空域資料增強的強度。
值得注意的是,作為一種即插即用的方法,EfficientTrain++ 無需進一步的超參數調整或搜尋即可直接應用於多種視覺基礎網路和多樣化的模型訓練場景,效果較穩定顯著。
圖 9 統一、整合的廣義課程學習方案:EfficientTrain++
作為一種即插即用的方法,EfficientTrain++ 在ImageNet-1K 上,在基本上不損失或提升效能的條件下,將多種視覺基礎網路的實際訓練開銷降低了1.5 倍左右。
圖10 ImageNet-1K 實驗結果:EfficientTrain++ 在多種視覺基礎網路上的表現
#EfficientTrain++ 的增益通用於不同的訓練開銷預算,嚴格相同表現的情況下,DeiT/Swin 在ImageNet-1K 上的訓加速比在2-3 倍左右。
圖11 ImageNet-1K 實驗結果:EfficientTrain++ 在不同訓練開銷預算下的表現
#EfficientTrain++ 在ImageNet-22k 上可以取得2-3 倍的效能無損預訓練加速。
圖12 ImageNet-22K 實驗結果:EfficientTrain++ 在更大規模訓練資料上的表現
對於較小的模型,EfficientTrain++ 可以實現顯著的效能上界提升。
圖13 ImageNet-1K 實驗結果:EfficientTrain++ 可以顯著提升較小模型的效能上界
EfficientTrain++ 對於自監督學習演算法(如MAE)同樣有效。
圖 14 EfficientTrain++ 可以應用在自監督學習(如 MAE)
EfficientTrain++ 訓練得的模型在目標偵測、實例分割、語意分割等下游任務上同樣不損失效能。
圖 15 COCO 目標偵測、COCO 實例分割、ADE20K 語意分割實驗結果
以上是簡單通用:視覺基礎網路最高3倍無損訓練加速,清華EfficientTrain++入選TPAMI 2024的詳細內容。更多資訊請關注PHP中文網其他相關文章!