圖1自動數(shù)據(jù)增強算法建模思路歸類
1)強化學(xué)習(xí): AutoAugment(Autoaugment: Learning augmentation policies from data)借鑒了基于強化學(xué)習(xí)的架構(gòu)搜索算法,在離散化的搜索空間內(nèi)通過PPO (Proximal Policy Optimization)算法來訓(xùn)練一個policy generator, policy generator的獎勵信號是其生成的policy應(yīng)用于子網(wǎng)絡(luò)訓(xùn)練完畢后的驗證集準(zhǔn)確率。其問題在于AutoAugment的搜索成本非常高,還無法滿足工業(yè)界的業(yè)務(wù)需求,難以應(yīng)用在業(yè)務(wù)模型開發(fā)中。
2)密度匹配:Fast AutoAugment(Fast autoaugment)采用了密度匹配的策略,希望驗證數(shù)據(jù)通過數(shù)據(jù)增強后的數(shù)據(jù)點能與原始訓(xùn)練數(shù)據(jù)集的分布盡量匹配。這個思路直覺上可以排除一些導(dǎo)致數(shù)據(jù)集畸變的增強策略,但沒有解決“如何尋找最優(yōu)策略”這一問題。
3)遺傳進化: PBA(Population based augmentation: Efficient learning of augmentation policy schedules)采用了PBT的遺傳進化策略,在多個網(wǎng)絡(luò)的并發(fā)訓(xùn)練中不斷“利用”和“擾動”網(wǎng)絡(luò)的權(quán)重,以期獲得最優(yōu)的數(shù)據(jù)增強調(diào)度策略。這個思路直覺上是可以通過優(yōu)勝劣汰來搜索到最優(yōu)策略。
4)網(wǎng)格搜索: RandAugment(Randaugment: Practical automated data augmentation with a reduced search space)通過統(tǒng)一的強度和概率參數(shù)來大幅減小搜索空間,期望能用網(wǎng)格搜索就解決數(shù)據(jù)增強搜索的問題。但這一技術(shù)并不具備策略的可解釋性,拋開實現(xiàn)手段不談,這篇論文更像是對AutoAugment的自我否定(注: RandAugment也是Google出品的論文)。
5)對抗學(xué)習(xí): Adversarial AutoAugment(Adversarial autoaugment)在AutoAugment的基礎(chǔ)上借鑒了GAN的對抗思想,讓policy generator不斷產(chǎn)生難樣本,并且使policy generator和分類器能并行訓(xùn)練,降低了搜索時長。但整體搜索成本還是非常高。
6)可微分: DADA(DADA: Differentiable Automatic Data Augmentation)借鑒了DARTS的算法設(shè)計思路,將離散的參數(shù)空間通過Gumbel-Softmax重參數(shù)化成了可微分的參數(shù)優(yōu)化問題,大大降低了搜索成本。
在上述的建模思路中,遺傳進化和可微分的建模思路更適合應(yīng)用到模型開發(fā)中,因為這兩種思路將自動數(shù)據(jù)增強搜索的成本降低到了線上業(yè)務(wù)承受的資源范圍內(nèi),并且具備較好的策略可解釋性?;趯K悸返脑u估和判斷,百度工程師決定將遺傳進化和可微分思路應(yīng)用到零門檻AI開發(fā)平臺EasyDL中,便于開發(fā)者進一步優(yōu)化模型效果。
EasyDL面向企業(yè)開發(fā)者提供智能標(biāo)注、模型訓(xùn)練、服務(wù)部署等全流程功能,針對AI模型開發(fā)過程中繁雜的工作,提供便捷高效的平臺化解決方案,并且內(nèi)置了豐富的預(yù)訓(xùn)練模型與優(yōu)化的多種算法網(wǎng)絡(luò),用戶可在少量業(yè)務(wù)數(shù)據(jù)上獲得高精度的模型效果。EasyDL面向不同人群提供了經(jīng)典版、專業(yè)版、行業(yè)版三種產(chǎn)品形態(tài)。
目前,遺傳進化PBA技術(shù)已經(jīng)在EasyDL平臺中的成功實現(xiàn),可微分的技術(shù)思路在EasyDL業(yè)務(wù)中的實踐也在持續(xù)探索中。
PBA采用了PBT(Population based training of neural networks)的遺傳進化策略,通過訓(xùn)練一群神經(jīng)網(wǎng)絡(luò)(種群, Trials)來找出超參數(shù)調(diào)度。Trials之間會周期性地將高性能Trial的權(quán)重復(fù)制給低性能的Trial(exploit),并且會有一定的超參擾亂策略(explore),如圖2的PBT流程圖。
圖2 PBT算法流程圖
然而實際將能力落地到平臺中并不容易,工程師們在復(fù)現(xiàn)論文開源代碼的過程中發(fā)現(xiàn)了一些問題:
1)開源代碼采用了Ray的Population Based Training實現(xiàn),但這個接口并不能保證并行的Trials一定能實現(xiàn)同步的exploit,尤其在資源受限的情況下,很大概率會出現(xiàn)進化程度較高的Trial和進化程度較低的Trial之間的exploit,這樣的錯誤進化是不可接受的。
2)開源代碼僅實現(xiàn)了單機多卡版本的搜索能力,想擴展到多機多卡能力,需要基于Ray做二次開發(fā)。
3)開源代碼僅實現(xiàn)了圖像分類的自動數(shù)據(jù)增強搜索,并未提供物體檢測等其他任務(wù)的數(shù)據(jù)增強搜索能力。
4)開源代碼現(xiàn)有增強算子實現(xiàn)方式比較低效。
綜合以上考慮,最終百度工程師從零開始構(gòu)建了基于PBA的自動數(shù)據(jù)增強搜索服務(wù)。
這一自研自動數(shù)據(jù)增強搜索服務(wù)有以下幾個特點:
實現(xiàn)了標(biāo)準(zhǔn)的PBT算法,支持種群Trials的同步exploit、explore,保證公平進化。
支持分布式拓展,可不受限的靈活調(diào)節(jié)并發(fā)種群數(shù),支持。
搜索服務(wù)與任務(wù)解耦,已支持飛槳深度學(xué)習(xí)平臺的圖像分類、物體檢測任務(wù),并且可擴展到其他的視覺任務(wù)與文本任務(wù)。
數(shù)據(jù)增強算子基于C++高效實現(xiàn)。
自研的能力效果如何呢?在公開數(shù)據(jù)集上,我們基于自研的自動數(shù)據(jù)增強搜索服務(wù)與現(xiàn)有的Benchmark進行了對齊,其中表一的ImageNet Benchmark(https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/image_augmentation/ImageAugment.html#id6)在PaddleClas框架上訓(xùn)練,表二的Coco Benchmark(https://github.com/PaddlePaddle/PaddleDetection/tree/master/configs/autoaugment)在PaddleDetection框架上訓(xùn)練。
結(jié)果顯示,EasyDL自動數(shù)據(jù)增強服務(wù)能達到與AutoAugment同樣高的精度,并有大幅的速度優(yōu)勢。目前,我們用于數(shù)據(jù)增強搜索的分類、檢測算子已經(jīng)與AutoAugment對齊,后續(xù)將會持續(xù)不斷擴充更多更高效的算子,進一步提升模型效果。
表一 ImageNet Benchmark
表二 Coco Benchmark
EasyDL目前已在經(jīng)典版上線了手動數(shù)據(jù)增強服務(wù),在專業(yè)版上線了自動數(shù)據(jù)增強搜索服務(wù)。在圖像分類單標(biāo)簽的任務(wù)上,我們隨機挑選了11個線上任務(wù)進行效果評測。如下圖,使用專業(yè)版自動數(shù)據(jù)增強服務(wù)后,11個任務(wù)準(zhǔn)確率平均提長了5.42%,最高一項任務(wù)獲得了18.13%的效果提升。
圖3圖像分類單分類效果評測
在物體檢測任務(wù)上,我們隨機挑選了12個線上任務(wù)進行效果評測,效果對比如下圖,使用專業(yè)版自動數(shù)據(jù)增強服務(wù)后11個任務(wù)準(zhǔn)確率平均提升了1.4%,最高一項任務(wù)獲得了4.2%的效果提升。
圖4物體檢測效果評測
EasyDL平臺通過交互式的界面,為用戶提供簡單易上手的操作體驗。同樣,使用EasyDL的數(shù)據(jù)增強服務(wù)操作非常簡便。
在經(jīng)典版的訓(xùn)練模型頁面“數(shù)據(jù)增強策略”里選擇“手動配置”,即可輕松實現(xiàn)數(shù)據(jù)增強算子的使用,如圖5。
在專業(yè)版的新建任務(wù)頁面的“數(shù)據(jù)增強策略”里選擇“自動搜索”,再設(shè)置需要搜索的算子范圍,即可立刻實現(xiàn)自動數(shù)據(jù)增強,如圖6。
圖5經(jīng)典版手動數(shù)據(jù)增強使用流程
圖6專業(yè)版自動數(shù)據(jù)增強使用流程
為了讓開發(fā)者使用EasyDL更便捷高效地開發(fā)效果出色的模型,EasyDL在框架設(shè)計中內(nèi)置了多個組件與多種能力。如EasyDL智能搜索服務(wù)的整體架構(gòu)圖(圖7)所示,其底層基礎(chǔ)組件是分布式智能搜索,具備多機多卡搜索、訓(xùn)練容錯、支持多種搜索優(yōu)化算法等特性?;诜植际街悄芩阉魈峁┑暮诵哪芰Γ覀儤?gòu)建了自動數(shù)據(jù)增強搜索、超參搜索、NAS搜索等服務(wù),盡可能讓用戶可以在無需關(guān)心技術(shù)細節(jié)的情況下,簡便使用EasyDL提供的多項搜索服務(wù),獲得模型效果的優(yōu)化。
圖7 EasyDL智能搜索服務(wù)整體架構(gòu)圖
在各行各業(yè)加速擁抱AI的今天,有越來越多的企業(yè)踏上智能化轉(zhuǎn)型之路,借助AI能力完成降本增效。但在AI賦能產(chǎn)業(yè)的過程中,大規(guī)模的商業(yè)化落地十分復(fù)雜,需要企業(yè)投入大量的精力。由于不同行業(yè)、場景存在著差異化與碎片化,對AI的需求也不盡相同。因此,一個能夠隨場景變化定制開發(fā)AI模型的平臺至關(guān)重要。通過零算法門檻的平臺能力覆蓋千變?nèi)f化的場景需求,并提供靈活適應(yīng)具體業(yè)務(wù)的多種部署方式,這就是EasyDL。
EasyDL零門檻AI開發(fā)平臺,目前已在工業(yè)制造、智能安防、零售快消、交通運輸、互聯(lián)網(wǎng)、教育培訓(xùn)等行業(yè)廣泛落地。
百度搜索“EasyDL”訪問官網(wǎng),開發(fā)高精度AI模型。