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

AutoAugment: Learning Augmentation Strategies from Data

2019-CVPR-AutoAugment: Learning Augmentation Strategies from Datahtml

來源:ChenBong 博客園git

image-20210718120909020

image-20210718120954406

image-20210718122403442

image-20210718184018554

image-20210718121825891

Introduction

AutoML除了網絡結構的自動搜索, 有一個分支作的是數據加強的自動搜索.github

深度學習/CV領域大部分的工做都是在設計更好的網絡結構, 不多有工做關注在數據加強的改進上, 例如ImageNet數據集上普遍使用仍是2012年ImageNet比賽中提出的數據加強方法.算法

數據加強包含不一樣的操做, 每一個操做執行的前後順序, 執行機率, 執行的強度, 都是須要手工設計的, 不一樣的數據集對不一樣的數據加強組合有不一樣的需求(例如水平翻轉在MNIST 手寫數字數據集上是不適用的), 自動數據加強就是針對不一樣的數據集, 搜索適合該數據集的數據加強pipeline (順序, 機率, 強度等)網絡

image-20210718145925745

本文的數據加強op的搜索空間包含16個操做, 每一個操做都有機率範圍[0-1], 等距離散化爲11個值; 有的操做還包含強度範圍, 等距離散化爲10個值 (例如, Invert 反色: 像素值v=>255-v 不包含強度範圍);dom

本文的數據加強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)ide

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:

image-20210718154504432

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

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

image-20210718154149342

本文的方法是第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個測試圖像.

Image Name

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

image-20210718170435099

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

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

在SVHN上選擇幾何變換/旋轉是有道理的, 由於數據集中的的樣本自然地就是傾斜/不一樣角度的

如下是其中1個policy的可視化:

image-20210718170851900

SVHN上的實驗結果:

image-20210718171017499

半監督實驗: 在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的可視化:

image-20210718171714770

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

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

image-20210718172118181

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

image-20210718172403069

能夠看出, 搜索到的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

image-20210718173410344

能夠發現, 在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這一方向, 利用大算力驗證一個方向的價值

數據加強與半監督

img

CutOut

MixUp

2019-CVPR-AutoAugment

preview preview

2019-ICML-PBA population based augmentation

img

2019-NIPS-Fast AutoAugment

preview preview

2019-ICLR-Adversarial AutoAugment

preview

2020-NIPS-RandAugment

和AutoAugment同一批做者團隊, 與AutoAugment的主要區別是大大減少了搜索空間, 只保留2個參數:

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

Reference

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

AutoAugment: Learning Augmentation Strategies from Data | Cugtyt

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

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

街景門牌號碼(SVHN)數據集 - Heywhale.com

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

相關文章
相關標籤/搜索