0
本文作者: MrBear | 編輯:幸麗娟 | 2019-06-29 19:10 | 專題:ICML 2019 |
雷鋒網(wǎng) AI 科技評(píng)論按:數(shù)據(jù)增強(qiáng)是提升圖像識(shí)別模型性能的重要手段。伯克利 AI 研究院的一篇關(guān)于數(shù)據(jù)增強(qiáng)的論文便被 ICML 2019 收錄為 oral 論文,該論文巧妙地運(yùn)用基于種群的數(shù)據(jù)增強(qiáng)算法,在降低計(jì)算成本的情況下,既能提高學(xué)習(xí)數(shù)據(jù)增強(qiáng)策略的速度,又能提升模型的整體性能。伯克利 AI 研究院也在官方博客上對(duì)論文進(jìn)行了解讀,雷鋒網(wǎng) AI 科技評(píng)論編譯如下。
將基于種群的增強(qiáng)算法應(yīng)用于圖像上的效果,隨增強(qiáng)百分比的變化情況
在本文中,我們將介紹基于種群的增強(qiáng)算法(Population Based Augmentation,PBA),它能夠快速、高效地學(xué)習(xí)到一個(gè)目前最先進(jìn)的應(yīng)用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)增強(qiáng)方法。PBA 能夠在將速度提升 1000 倍的情況下,達(dá)到與之前在 CIFAR 和 SVHN 數(shù)據(jù)集上最佳的效果,這使得研究者和從業(yè)人員可以使用單個(gè)工作站的 GPU 有效地學(xué)習(xí)新的增強(qiáng)策略。研究者可以廣泛地使用 PBA 算法來提升深度學(xué)習(xí)在圖像識(shí)別任務(wù)上的性能。
同時(shí),我們將討論我們最新發(fā)表的論文「Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules」(論文下載地址:https://arxiv.org/abs/1905.05393.pdf)中 PBA 算法的實(shí)驗(yàn)結(jié)果,然后說明如何利用「Tune」(https://ray.readthedocs.io/en/latest/tune.html)框架在新數(shù)據(jù)集上運(yùn)行 PBA 算法(https://github.com/arcelien/pba)。
近年來,深度學(xué)習(xí)模型的進(jìn)步很大程度上歸功于收集到的數(shù)據(jù),在數(shù)量和多樣性上的增加。數(shù)據(jù)增強(qiáng)是一種使從業(yè)人員在無需實(shí)際收集新數(shù)據(jù)的情況下,能夠顯著提升可用于訓(xùn)練模型的數(shù)據(jù)的多樣性的策略。諸如裁剪,填充和水平翻轉(zhuǎn)等數(shù)據(jù)增強(qiáng)技術(shù)通常被用于訓(xùn)練大型神經(jīng)網(wǎng)絡(luò)。然而,用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的的大多數(shù)方法僅僅使用了基本類型的數(shù)據(jù)增強(qiáng)技術(shù)。盡管研究者們已經(jīng)深入研究了神經(jīng)網(wǎng)絡(luò)架構(gòu),但著眼于開發(fā)強(qiáng)大的數(shù)據(jù)增強(qiáng)和能夠捕獲數(shù)據(jù)不變性的數(shù)據(jù)增強(qiáng)策略的工作就相對(duì)較少了。
數(shù)字「3」的原始形式和應(yīng)用了基本的數(shù)據(jù)增強(qiáng)技術(shù)的結(jié)果
最近,谷歌已經(jīng)能夠通過使用 AutoAugment(一種新型的自動(dòng)數(shù)據(jù)增強(qiáng)技術(shù),https://arxiv.org/abs/1805.09501)在諸如 CIFAR-10 之類的數(shù)據(jù)集上達(dá)到目前最高的準(zhǔn)確率。AutoAugment 說明了:之前只使用一系列固定變換(如水平翻轉(zhuǎn)、填充和裁剪)的數(shù)據(jù)增強(qiáng)方法還有很大的提升空間。AutoAugment引入了 16 種幾何變換和基于顏色的變換,并制定了一種可以最多選擇兩個(gè)指定幅度的變換的數(shù)據(jù)增強(qiáng)策略,從而應(yīng)用于每批數(shù)據(jù)。這些具有更高性能的數(shù)據(jù)增強(qiáng)策略是通過直接在數(shù)據(jù)上使用強(qiáng)化學(xué)習(xí)訓(xùn)練模型學(xué)習(xí)到的。
AutoAugment 是一種計(jì)算成本非常大的算法,從開始訓(xùn)練到收斂需要訓(xùn)練 15,000 個(gè)模型以為基于強(qiáng)化學(xué)習(xí)的策略生成足夠的樣本。同時(shí),樣本之間不共享計(jì)算過程,學(xué)習(xí) ImageNet 的增強(qiáng)策略需要在NVIDIA Tesla P100 上訓(xùn)練 15,000 個(gè) GPU 小時(shí),而學(xué)習(xí) CIFAR-10 則需要耗費(fèi) 5,000 個(gè) GPU 小時(shí)。例如,如果使用谷歌云上按需隨選的 P100 GPU,探索 CIFAR 數(shù)據(jù)集上的數(shù)據(jù)增強(qiáng)策略將花費(fèi)大約 7,500 美元,而探索 ImageNet 數(shù)據(jù)集上的數(shù)據(jù)增強(qiáng)策略則需要高達(dá) 37,500 美元!因此,在對(duì)新數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí),更常見的用例是遷移作者證明效果相對(duì)較好的預(yù)先存在的已開發(fā)出來的策略。
我們的數(shù)據(jù)增強(qiáng)策略搜索方法被稱為「基于種群的增強(qiáng)」(PBA),它在各種神經(jīng)網(wǎng)絡(luò)模型上在將計(jì)算成本降低三個(gè)數(shù)量級(jí)的情況下,達(dá)到了相似的測(cè)試準(zhǔn)確度水平。我們通過在 CIFAR-10 數(shù)據(jù)上訓(xùn)練幾個(gè)小型模型副本來學(xué)習(xí)數(shù)據(jù)增強(qiáng)策略,在學(xué)習(xí)過程中需要使用 NVIDIA Titan XP GPU 訓(xùn)練 5 個(gè)小時(shí)。當(dāng)在大型模型架構(gòu)和 CIFAR-100 數(shù)據(jù)上從頭開始進(jìn)行訓(xùn)練時(shí),此策略展現(xiàn)出了強(qiáng)大的性能。
相對(duì)于訓(xùn)練大型 CIFAR-10 網(wǎng)絡(luò)時(shí)動(dòng)輒花費(fèi)好幾天才能收斂的計(jì)算成本而言,事先運(yùn)行 PBA 的計(jì)算成本就微不足道了,并且在實(shí)驗(yàn)結(jié)果上能夠取得顯著的提升。例如,在 CIFAR-10 上訓(xùn)練一個(gè) PyramidNet 需要在一塊 NVIDIA V100 GPU 上花費(fèi)超過 7 天的時(shí)間,因此學(xué)習(xí) PBA 策略僅僅增加了 2% 的預(yù)計(jì)算訓(xùn)練時(shí)間成本。對(duì)于 SVHN 數(shù)據(jù)及而言,這種成本甚至更低,低于 1%。
在 WideResNet(https://arxiv.org/abs/1605.07146),Shake-Shake(https://arxiv.org/abs/1705.07485),以及 PyramidNet(https://arxiv.org/abs/1610.02915)+ShakeDrop(https://arxiv.org/abs/1802.02375)模型上運(yùn)用 PBA、AutoAugment 以及僅僅使用水平翻轉(zhuǎn)、填充和裁剪等操作的對(duì)比基線時(shí),各自在 CIFAR-10 測(cè)試集上產(chǎn)生的誤差。
PBA 利用基于種群的訓(xùn)練算法(若想了解更多關(guān)于該算法的信息,可前往 https://deepmind.com/blog/population-based-training-neural-networks/ 閱讀相關(guān)內(nèi)容)來生成一個(gè)增強(qiáng)策略計(jì)劃,它可以根據(jù)當(dāng)前訓(xùn)練的迭代情況進(jìn)行自適應(yīng)的調(diào)整。這與沒有考慮當(dāng)前訓(xùn)練迭代情況而應(yīng)用相同的變換方式的固定增強(qiáng)策略,形成了鮮明對(duì)比。
這就使得一個(gè)普通的工作站用戶可以很容易地使用搜索算法和數(shù)據(jù)增強(qiáng)操作進(jìn)行實(shí)驗(yàn)。一個(gè)有趣的用例是引入一個(gè)新的數(shù)據(jù)增強(qiáng)操作,它可能針對(duì)的是特定的數(shù)據(jù)集或圖像模態(tài),可以迅速生成一個(gè)定制化的、高性能的數(shù)據(jù)增強(qiáng)計(jì)劃。通過模型簡(jiǎn)化實(shí)驗(yàn),我們發(fā)現(xiàn)學(xué)到的超參數(shù)和計(jì)劃順序?qū)τ诘玫胶玫膶?shí)驗(yàn)結(jié)果非常重要。
我們使用了基于種群的訓(xùn)練,該種群由 16 個(gè)小型 WideResNet 模型構(gòu)成。種群中的每個(gè)個(gè)體會(huì)學(xué)習(xí)到不同的候選超參數(shù)計(jì)劃。我們將性能最佳的計(jì)劃進(jìn)行遷移,從而從頭開始訓(xùn)練更大的模型,而我們將從中得到測(cè)試誤差指標(biāo)。
基于種群的訓(xùn)練示意圖,它通過訓(xùn)練一個(gè)神經(jīng)網(wǎng)路的種群來探索超參數(shù)計(jì)劃。它將隨機(jī)搜索(探索)和拷貝高性能個(gè)體的模型權(quán)重(利用)結(jié)合起來(https://deepmind.com/blog/population-based-training-neural-networks/)。
我們?cè)诟信d趣的數(shù)據(jù)集上訓(xùn)練種群模型,一開始將所有的增強(qiáng)超參數(shù)設(shè)置為「0」(不應(yīng)用任何數(shù)據(jù)增強(qiáng)技術(shù))。通常而言,一個(gè)「探索-利用」過程會(huì)通過將高性能個(gè)體的模型權(quán)重拷貝給性能較低的個(gè)體來「利用」高性能個(gè)體,并且會(huì)通過擾動(dòng)個(gè)體的超參數(shù)來進(jìn)行「探索」。通過這個(gè)過程,我們可以讓個(gè)體之間大量共享超參數(shù),并且在訓(xùn)練的不同區(qū)域針對(duì)于不同的增強(qiáng)超參數(shù)。因此,PBA 可以節(jié)省訓(xùn)練上千個(gè)模型才能達(dá)到收斂以實(shí)現(xiàn)高性能的計(jì)算成本。
我們使用了「TUNE」內(nèi)置的 PBT 的實(shí)現(xiàn)來直接使用 PBA 算法。
我們使用自定義的探索函數(shù)來調(diào)用「Tune」對(duì) PBT 的實(shí)現(xiàn),而這將會(huì)創(chuàng)建出 16 份 WideResNet 模型的副本,并且在時(shí)分多工模式下訓(xùn)練它們。每個(gè)模型副本使用的策略計(jì)劃將會(huì)被保存到磁盤中,并且可以再程序終止后被檢索,用于訓(xùn)練新模型。
感興趣的人可以按照 Github 中「README」文件的指示運(yùn)行 PBA 算法,地址如下:
在一塊 Titan XP 顯卡上,你只需一個(gè)小時(shí)就可以學(xué)到一個(gè)作用于 SVHN 數(shù)據(jù)集的高性能數(shù)據(jù)增強(qiáng)策略計(jì)劃。你也可以很輕易地在自定義的數(shù)據(jù)集上使用 PBA 算法:只需簡(jiǎn)單定義一個(gè)數(shù)據(jù)加載器(dataloader),其它的部分就會(huì)自動(dòng)就緒。
ICML 2019 oral 論文:Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules
論文作者:Daniel Ho, Eric Liang, Ion Stoica, Pieter Abbeel, Xi Chen
Via https://bair.berkeley.edu/blog/2019/06/07/data_aug/ 雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章