AABO:自適應Anchor設置優化,性能榨取的最後一步 | ECCV 2020 Spotlight

論文提出超參數優化方法AABO,該方法核心基於貝葉斯優化和Sub-Sample方法,能夠自適應的搜索最優的anchor設置。從實驗結果來看,AABO能夠僅通過anchor設置優化,為SOTA目標檢測方法帶來1.4%~2.4%的性能提升

來源:曉飛的演算法工程筆記 公眾號

論文: AABO: Adaptive Anchor Box Optimization for Object Detection via Bayesian Sub-sampling

Introduction


  目前,主流的目標檢測演算法使用多種形狀的anchor box作為初始預測,然後對anchor box進行回歸調整,anchor box的配置是檢測演算法中十分重要的超參數。一般而言,anchor box的配置都是簡單地通過人為指定,比如Faster R-CNN經典的的9種形狀,也可以像YOLO一樣通過k-means對數據集進行分析,得出特定的配置。
  為了人工設置超參數的環節,近年來很多關於超參數優化問題(HPO, hyper-parameter optimization)的研究,最有效的方法為貝葉斯優化(BO)和bandit-based策略。在分析了當前方法的優劣後,論文提出一種自適應的anchor box優化方法AABO,該方法基於貝葉斯優化和Sub-Sample方法,能夠自動且高效地搜索到最優的anchor設置,榨乾主流目標檢測演算法的潛力。

Relative Method

  這裡先對論文經常提及的3種超參數搜索方法進行簡單的介紹,方便下面的理解。

Bayesian optimization

  超參數的驗證通常需要進行模型訓練,會耗費大量的時間,所以貝葉斯優化的核心是使用替代模型(prior function)來代理目標模型,替代模型一般為概率分布模型。在得到替代模型後,使用採集函數(acquisition function)從候選集中選擇一組合適的超參數進行測試,採集函數需要能夠很好地平衡exploitation和exploration,測試則是使用目標模型進行正常的訓練和驗證,最後將當前結果加入觀測數據中,用於訓練替代模型,反覆進行上述的操作。

  貝葉斯優化的完整流程如上面所示,在每輪的迭代中基於替代模型和採集函數獲取一組超參數,然後使用目標模型進行驗證,最後將驗證結果加入觀測數據集並更新替代模型。

Hyperband

  Bandit-based方法在限定資源的情況以高效的策略尋找最優超參數,資源可為時間、迭代次數等,而Hyperband是經典的bandit-based方法。Hyperband在Successive Halving演算法的基礎上進行了擴展,每次選取一批超參數進行多輪迭代,每輪迭代將資源B均勻地分配給待驗證的超參數組合,每輪結束時保留$1/\eta$超參數組合進行下一輪。

  Hyperband的完整流程如上面所示,R為單超參數分組可分配的最大資源,包含兩個循環,外循環負責控制每次驗證的初始可分配的資源數r以及驗證的分組數n,逐步增加r和減少n,分組由隨機取樣所得。內循環則進行Successive Halving演算法,共進行s次迭代,逐步增加每組的可分配資源,並且每次保留最優的$1/\eta$分組。

BOHB

  實際上,上面的兩種經典超參數方法都有其各自的優缺點,貝葉斯優化雖然搜索高效,但是容易陷入局部最優解,而Hyperband雖然搜索比較全面,但效率不夠高。所以,BOHB結合了貝葉斯優化和Hyperband進行超參數優化。

圖1

  BOHO的完整流程如上所示,可簡單地認為將Hyperband的隨機取樣替換為貝葉斯優化進行取樣,然後將Hyperband的超參數組合及其對應的輸出加入到觀測數據中,用於更新替代模型。需要注意的是,BOHO的替代模型是一個多維核密度估計(KDE)模型,類似於TPE(Tree Parzen Estimator)。如論文提到的,BOHO有一個比較嚴重的問題,對於難學習的樣本,一般需要較長的訓練周期,而由於BOHO使用HyperBand進行快速驗證,所以不一定能完整地測出超參數的真實準確率,導致最終的結果有偏差。

Preliminary Analysis


Default Anchors Are Not Optimal

圖2

  隨機取樣100組不同的anchor設置,每組包含3種尺寸和3種長寬比,然後與Faster R-CNN的默認anchor配置進行性能對比。結果如上圖所示,紅線為默認設置的性能,可以看到,默認設置並不是最優的。

Anchors Influence More Than RPN Structure

圖3

  使用BOHB同時搜索RPN head結構以及anchor設置,RPN head的搜索空間如上圖所示。

  結果如上表所示,可以看到anchor設置搜索帶來的性能提升在一定程度上要高於RPN head結構搜索。

Search Space Optimization for Anchors


  論文通過分析目標bbox的分布特性,設計了緊密的搜索空間,主要基於以下兩個特性。

Upper and Lower Limits of the Anchors

  論文對COCO數據集目標的尺寸和長寬比進行統計,並且得到了ratio的上界和下界:

圖4

  統計結果如上圖所示,其中藍點為每個目標,黃線分別為上界和下界,中間的黑色長方形為BOHB搜索實驗的搜索空間。可以看到,有一部分的搜索空間在上界和下界之外,是無效的搜索,所以約束搜索空間在上界和下界之間是有必要的。另外,圖中有5個紅色的框,是論文為RPN的每層設定的對應搜索空間,下面會提到。

Adaptive Feature-Map-Wised Search Space

圖5

  論文對FPN每層的輸出進行了統計,結果如上圖所示。可以看到,不同層包含不同數量和不同形狀的輸出,隨著層數的增加,anchor的數量越少,長寬比範圍也越小。

圖6

  基於上面的分析,論文設計了自適應FPN的搜索空間,圖4中的5個紅框與上下界之間的區域即為FPN每層對應的搜索空間。具體搜索如上圖所示,每層都有獨立的搜索空間,層數越大,anchor的數量、尺寸範圍和長寬比範圍越小。實際上,與圖4的黑矩形框搜索空間對比,這種自適應FPN搜索空間更大,而且每層較小的搜索空間有助於HPO演算法的更集中地進行搜索。

Bayesian Anchor Optimization via Sub-sampling


圖7

  論文提出的搜索方法如圖7所示,包含BO和子取樣方法,分別用於選擇潛在的設置以及為不同的設置分配不同的計算資源。整體思路和BOHB類似,將其中的Hyperband替換成了Sub-Sample方法。

Bayesian Optimization

  論文在實現時,BO模組與與BOHB類似,使用TPE(Tree Parzen Estimator)作為核密度函數進行建模,TPE包含兩個概率密度函數:l(x)=p(y<\alpha | x, D)g(x)=p(y>\alpha | x, D),分別表示結果好的概率和結果差的概率,其中D=\{(x_0, y_0), \cdots, (x_n, y_n)\}為當前的觀測數據,\alpha=min\{y_0, \cdots, y_n\}為當前觀測數據的最優結果,取樣時取l(x)/g(x)最大的超參數組合。需要注意的是,由於Hyperband只保證最終輸出的結果的準確性,其它結果由於在中途就停止了,資源不足,輸出不一定準確,直接用這些結果來對g(x)進行訓練會造成很大的誤差,所以需要一個更好的方法來解決這個問題。

Sub-Sample Method

  Sub-Sample也是bandit-based方法,在資源有限的情況,儘可能測試出優質的候選超參數組合。定義\mathcal{I}=\{1,2,\cdots, K\}為候選超參數組合,Sub-Sample方法基於觀測數據Y^{(k)}_1進行選擇, Y^{(k)}_1,Y^{(k)}_2,\cdots,1\le k\le K為當前觀測點相對於上一個觀測點的收益。

  Sub-Sample方法如上所示,首先對所有超參數組合進行最小資源b的測試,得到一批觀測數據,然後每輪選取已使用資源最多超參數組合作為leader,若其它組合優於leader,則賦予其資源b,否則賦予leader資源b,判斷當前組合k^{‘}是否優於leader組合k有以下兩個規則:

  第一條規則根據觀測次數進行判斷,c_n為非負單調閾值,用於控制每個超參數的最小觀測次數,一般設為\sqrt{\log n}。第二條規則根據兩個組合的近期收益進行判斷,收益更高即為優。

Experiment


  COCO數據集上搜索到的最優anchor組合。

  在不同的數據集上進行對比。

  嵌入SOTA方法進行對比。

  與其它方法的對比實驗。

Conclustion


  論文提出超參數優化方法AABO,該方法核心基於貝葉斯優化和Sub-Sample方法,能夠自適應的搜索最優的anchor設置。從實驗結果來看,AABO能夠僅通過anchor設置優化,為SOTA目標檢測方法帶來1.4%~2.4%的性能提升。

參考內容



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】

work-life balance.