1. 程式人生 > 其它 >【AutoAugment】2019-CVPR-AutoAugment: Learning Augmentation Strategies from Data-論文閱讀

【AutoAugment】2019-CVPR-AutoAugment: Learning Augmentation Strategies from Data-論文閱讀

AutoAugment: Learning Augmentation Strategies from Data

2019-CVPR-AutoAugment: Learning Augmentation Strategies from Data

來源:ChenBong 部落格園

Introduction

AutoML除了網路結構的自動搜尋, 有一個分支做的是資料增強的自動搜尋.

深度學習/CV領域大部分的工作都是在設計更好的網路結構, 很少有工作關注在資料增強的改進上, 例如ImageNet資料集上廣泛使用還是2012年ImageNet比賽中提出的資料增強方法.

資料增強包含不同的操作, 每個操作執行的先後順序, 執行概率, 執行的強度, 都是需要手工設計的, 不同的資料集對不同的資料增強組合有不同的需求(例如水平翻轉在MNIST 手寫數字資料集上是不適用的), 自動資料增強就是針對不同的資料集, 搜尋適合該資料集的資料增強pipeline (順序, 概率, 強度等)

本文的資料增強op的搜尋空間包含16個操作, 每個操作都有概率範圍[0-1], 等距離散化為11個值; 有的操作還包含強度範圍, 等距離散化為10個值 (例如, Invert 反色: 畫素值v=>255-v 不包含強度範圍);

本文的資料增強pipeline由5個policy組成, 每個policy又由5個sub-policy組成, 每個sub-policy包含2個op, 但搜尋目標是針對該資料集的最佳policy, 因此搜尋空間大致為 \((16×10×11)^{10}≈2.9×10^{32}\) , 最終的pipeline由最佳的5個policy連線起來, 組成最終的pipeline (長度為50個op)

Contribution

Method

作者使用強化學習作為搜尋演算法, 控制器是一個RNN, 每次控制器RNN從搜尋空間中選擇1個policy(10個op), 在一個固定的網路上訓練到收斂, 網路的準確率作為控制器RNN的獎勵, 更新控制器RNN, 以產生更好的policy

(其實可以看做接近窮舉的搜尋, 作者也說了, 除了使用強化學習, 也可以使用其他的超參優化演算法例如EA等)

Experiments

CIFAR-10, reduced CIFAR-10, CIFAR-100

為了減少搜尋開銷, 作者不是在完整的訓練集(50000 個樣本)上進行訓練-搜尋最佳策略, 而是在一個訓練集的子集(4000 個樣本)上訓練-搜尋最佳策略, 該資料集稱為 "Reduce CIFAR-10"; 這麼做的動機是, 作者發現, 對於固定的訓練時間, 在子資料集上訓練更多的epoch的效果比在完整資料集上訓練較少的epoch效果更好.

然後再將在reduce CIFAR-10上找到的最佳策略應用到 CIFAR-10, reduce CIFAR-10, CIFAR-100 資料集上, 這裡的模型用的是Wide-ResNet-28-10, 訓練120個epoch

在 Reduce CIFAR-10上找到的最佳策略, 最終的pipeline:

在CIFAR-10上,AutoAugment主要挑選基於顏色的轉換。例如,在CIFAR-10上最常挑選的變換是Equalize、AutoContrast、Color和Brightness. 像ShearX和ShearY這樣的幾何變換很少出現在好的policy中。此外,在一個成功的policy中幾乎從未應用過反轉這一變換。

以下的最佳策略都是在 Reduce CIFAR-10上找到的:

本文的方法是第1個在CIFAR-10資料集上突破<2%錯誤率的方法;

同樣也打破了CIFAR-100上錯誤率 12.2 的最佳紀錄

半監督實驗: 在reduce CIFAR-10資料集(4000個樣本)上訓練, 在完整的CIFAR-10上驗證, 提升的效果更為顯著(18.8=>14.1, 17.1=>10.0)

SVHN, reduced SVHN

SVHN(街景門牌號)資料集, 10個類別對應數字0-9, 73257個訓練影象, 531131個additional 訓練影象, 26032個測試影象.

同樣是構建一個 reduce SVHN (1000個訓練樣本) 來搜尋最佳策略, 最終的pipeline:

在reduced SVHN上搜索到最常用的op是 Invert, Equalize, ShearX/Y, and Rotate;

與CIFAR-10不同的是, CIFAR-10幾乎不選擇 Invert, ShearX/Y這樣的幾何變換和Rotate

在SVHN上選擇幾何變換/旋轉是有道理的, 因為資料集中的的樣本天然地就是傾斜/不同角度的

以下是其中1個policy的視覺化:

SVHN上的實驗結果:

半監督實驗: 在Reduced SVHN上訓練, 在SVHN上測試, 接近SOTA的半監督方法(5.42%-3.86%)

在半監督實驗中, Cutout的資料增強不但沒有提點的作用, 反而對效能有損害

ImageNet, reduced ImageNet

reduced ImageNet: 120個類, 6000個樣本

Wide-ResNet 40-2, 200 epoch

在reduced ImageNet上搜索到的1個policy的視覺化:

和CIFAR-10類似, 主要是基於顏色的變換, 一個區別是, ImageNet中會使用幾何變換(旋轉)

最終的pipeline同樣是將最好的5個policy連線起來, 一共有25個sub-policy(50個op):

最後的實驗是在ResNet-50和ResNet-200上訓練270個epoch:

可以看出, 搜尋到的AutoAugment對不同的結構都有提點的效果, 考慮到這只是在5000張 (&&6000張?) 圖片上搜索的結果, 如果用更多的圖片進行搜尋效果應該會更好

We expect the results to be even better when more compute is available so that AutoAugment can use more images to discover even better augmentation policies.

AutoAugment Transfer

直接在感興趣的目標資料集上進行資料增強的策略搜尋是資源密集的, 作者想了解是否可以將搜尋到的策略從1個數據集遷移到另一個數據集 (將搜尋到的資料增強策略直接應用到新的資料集上), 有2個目的:

  1. 可以克服AutoAugment "資源密集" 的缺點
  2. 可以驗證AutoAugment並不是對目標資料集的過擬合, 而是找到了對於不同資料集的通用pipeline

將在ImageNet上搜索到的策略, 應用到5個新資料集上:

使用Inception v4, 訓練1000個epoch

可以發現, 在ImageNet上搜索到的增強策略, 對5個不同資料集都有提點的作用, 且在Standford Cars資料集上取得了新的SOTA (之前的SOTA是5.9%)

Ablation

Randomizing the probabilities and magnitudes in the augmentation policy

在CIFAR-10上, 使用AutoAugment搜尋到的policy序列(50個op), 但op的概率和強度隨機化, 結果比AutoAugment差0.4%

Performance of random policies

在CIFAR-10上, 對policy也隨機化, 即隨機抽樣相同長度的policy, 結果比AutoAugment差0.5%

以上2組消融實驗說明, AutoAugment找到的policy序列中op的概率和強度更重要

Conclusion

AutoAugment有價值的部分應該是跨模型, 跨資料集的可遷移性, 例如: 在Wide-ResNet-40-2 on Reduced CIFAR-10上搜索的結果, 可以直接應用到完整CIFAR-10/100及不同的模型結構上; 在Wide-ResNet-40-2 on Reduced ImageNet上搜索的結果, 可以直接應用在完整的ImageNet以及其他5個數據集上, 甚至可以達到新資料集的SOTA; 無論是全量資料集還是半監督都有一致的提點的作用(Cutout 在SVHN上的半監督實驗不但沒有提點還會掉點)

Summary

  • 資料增強與半監督
  • 開創了自動化的資料增強這一新的方向, 類似Google的NAS with RL開創了NAS這一方向, 利用大算力驗證一個方向的價值

資料增強與半監督

CutOut

MixUp

2019-CVPR-AutoAugment

2019-ICML-PBA population based augmentation

2019-NIPS-Fast AutoAugment

2019-ICLR-Adversarial AutoAugment

2020-NIPS-RandAugment

和AutoAugment同一批作者團隊, 與AutoAugment的主要區別是大大減小了搜尋空間, 只保留2個引數:

  • N: 要用幾個op
  • M: 每個op的統一強度是多少

Reference

樣本增廣自動化-AutoAugment論文解讀 - 知乎 (zhihu.com)

AutoAugment: Learning Augmentation Strategies from Data | Cugtyt

【強化學習 108】AutoAugment - 知乎 (zhihu.com)

深度學習資料增廣技術一覽 - 知乎 (zhihu.com)

街景門牌號碼(SVHN)資料集 - Heywhale.com

偽標籤還能這樣用?半監督力作UPS(ICLR 2021)大揭祕! - AMiner