日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AutoML数据增广

發(fā)布時(shí)間:2024/8/23 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AutoML数据增广 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


DeepAugment是一個(gè)專注于數(shù)據(jù)擴(kuò)充的自動(dòng)化工具。 它利用貝葉斯優(yōu)化來發(fā)現(xiàn)針對您的圖像數(shù)據(jù)集定制的數(shù)據(jù)增強(qiáng)策略。 DeepAugment的主要優(yōu)點(diǎn)和特點(diǎn)是:

  • 降低CNN模型的錯(cuò)誤率(WRN-28-10顯示CIFAR10的錯(cuò)誤率降低了60%)
  • 通過自動(dòng)化流程可以節(jié)省時(shí)間
  • 比谷歌之前的解決方案——AutoAugment——快50倍

完成的包在PyPI上。你可以通過運(yùn)行以下命令來在終端上安裝它:

$ pip install deepaugment

你也可以訪問項(xiàng)目的自述文件或運(yùn)行谷歌Colab筆記本教程。要想了解更多關(guān)于我是如何構(gòu)建這個(gè)的,請繼續(xù)閱讀!

引言

數(shù)據(jù)是人工智能應(yīng)用中最關(guān)鍵的部分。沒有足夠的標(biāo)記數(shù)據(jù)常常導(dǎo)致過度擬合,這意味著模型將無法歸納為未發(fā)現(xiàn)的示例。這可以通過數(shù)據(jù)擴(kuò)充來緩解,數(shù)據(jù)擴(kuò)充可以有效地增加網(wǎng)絡(luò)所看到的數(shù)據(jù)的數(shù)量和多樣性。它是通過對原始數(shù)據(jù)集(如旋轉(zhuǎn)、裁剪、遮擋等)應(yīng)用轉(zhuǎn)換,人為地生成新數(shù)據(jù)來實(shí)現(xiàn)的。然而,確定哪種增強(qiáng)對手頭的數(shù)據(jù)集最有效并不是一項(xiàng)簡單的任務(wù)。為了解決這個(gè)問題,谷歌去年發(fā)布了AutoAugment,它通過使用強(qiáng)化學(xué)習(xí)發(fā)現(xiàn)了給定數(shù)據(jù)集的優(yōu)化增強(qiáng)。
由于強(qiáng)化學(xué)習(xí)模塊的存在,使用谷歌的AutoAugment需要強(qiáng)大的計(jì)算資源。由于獲得所需的計(jì)算能力代價(jià)高昂,因此我開發(fā)了一種新的方法——DeepAugment,它使用貝葉斯優(yōu)化而不是強(qiáng)化學(xué)習(xí)。

如何獲得更好的數(shù)據(jù)

努力改進(jìn)數(shù)據(jù)質(zhì)量通常比努力改進(jìn)模型獲得更高的投資回報(bào)。改進(jìn)數(shù)據(jù)有三種主要方法:收集更多的數(shù)據(jù)、合成新數(shù)據(jù)或擴(kuò)展現(xiàn)有數(shù)據(jù)。收集額外的數(shù)據(jù)并不總是可行的,而且可能很昂貴。GANs所做的數(shù)據(jù)合成是很有前途的,但也很復(fù)雜,可能與實(shí)際的例子有所不同。


另一方面,數(shù)據(jù)擴(kuò)充簡單且影響很大。它適用于大多數(shù)數(shù)據(jù)集,并通過簡單的圖像轉(zhuǎn)換完成。然而,問題是確定哪種增強(qiáng)技術(shù)最適合當(dāng)前的數(shù)據(jù)集。發(fā)現(xiàn)正確的方法需要耗時(shí)的實(shí)驗(yàn)。即使經(jīng)過多次實(shí)驗(yàn),機(jī)器學(xué)習(xí)(ML)工程師仍然可能找不到最佳選擇。
對于每個(gè)圖像數(shù)據(jù)集,有效的增強(qiáng)策略是不同的,一些增強(qiáng)技術(shù)甚至可能對模型有害。例如,如果使用MNIST digits數(shù)據(jù)集,應(yīng)用旋轉(zhuǎn)會(huì)使模型變得更糟,因?yàn)樵凇?”上180度旋轉(zhuǎn)會(huì)使它看起來像“9”,而仍然被標(biāo)記為“6”。另一方面,對衛(wèi)星圖像應(yīng)用旋轉(zhuǎn)可以顯著改善結(jié)果,因?yàn)闊o論旋轉(zhuǎn)多少次,從空中拍攝的汽車圖像仍然是一輛汽車。

DeepAugment:閃電般迅速的autoML

DeepAugment旨在作為一種快速靈活的autoML數(shù)據(jù)擴(kuò)充解決方案。更具體地說,它被設(shè)計(jì)為AutoAugment的更快和更靈活的替代品。(2018年Cubuk等人的博客)AutoAugment是2018年最令人興奮的發(fā)布之一,也是第一種使用強(qiáng)化學(xué)習(xí)來解決這一特定問題的方法。在本文發(fā)表時(shí),AutoAugment的開源版本沒有提供控制器模塊,這阻礙了用戶為自己的數(shù)據(jù)集使用它。此外,學(xué)習(xí)增強(qiáng)策略需要15,000次迭代,這需要巨大的計(jì)算資源。即使源代碼完全可用,大多數(shù)人也無法從中受益。
deepaugmented通過以下設(shè)計(jì)目標(biāo)來解決這些問題:
1.在保證結(jié)果質(zhì)量的前提下,最小化數(shù)據(jù)擴(kuò)充優(yōu)化的計(jì)算復(fù)雜度。
2.模塊化和人性化。
為了實(shí)現(xiàn)第一個(gè)目標(biāo),與AutoAugment相比,DeepAugment的設(shè)計(jì)具有以下差異:

  • 使用貝葉斯優(yōu)化代替強(qiáng)化學(xué)習(xí)(需要更少的迭代)(~100x加速)
  • 最小化子模型大小(降低每次訓(xùn)練的計(jì)算復(fù)雜度)(~20x加速)
  • 減少隨機(jī)擴(kuò)充搜索空間設(shè)計(jì)(減少所需的迭代次數(shù))

為了實(shí)現(xiàn)第二個(gè)目標(biāo),即使DeepAugment模塊化和人性化,用戶界面的設(shè)計(jì)方式為用戶提供了廣泛的可能性配置和模型選擇(例如,選擇子模型或輸入自設(shè)計(jì)的子模型,請參閱配置選項(xiàng))。

設(shè)計(jì)擴(kuò)充策略

DeepAugment旨在為給定的圖像數(shù)據(jù)集找到最佳的擴(kuò)充策略。增強(qiáng)策略被定義為五個(gè)子策略的總和,這兩個(gè)子策略由兩種類型的增強(qiáng)技術(shù)和兩個(gè)實(shí)值[0,1]組成,決定了每種增強(qiáng)技術(shù)的應(yīng)用能力。我使用imgaug包實(shí)現(xiàn)了增強(qiáng)技術(shù),imgaug包以其大量的增強(qiáng)技術(shù)(見下文)而聞名。


當(dāng)多樣化和隨機(jī)應(yīng)用時(shí),增強(qiáng)是最有效的。例如,與其旋轉(zhuǎn)每個(gè)圖像,不如旋轉(zhuǎn)圖像的某些部分,剪切另一部分,然后對另一部分應(yīng)用顏色反轉(zhuǎn)?;谶@一觀察,Deepaugment對圖像隨機(jī)應(yīng)用五個(gè)子策略之一(包括兩個(gè)增強(qiáng))。優(yōu)化過程中,每個(gè)圖像被五個(gè)子策略之一增強(qiáng)的概率(16%)相等,而完全不被增強(qiáng)的概率為20%。
雖然這個(gè)策略設(shè)計(jì)受到了autoaugmented的啟發(fā),但有一個(gè)主要的區(qū)別:我沒有使用任何參數(shù)來應(yīng)用子策略的概率,以便使策略的隨機(jī)性更低,并允許在更少的迭代中進(jìn)行優(yōu)化。


這個(gè)策略設(shè)計(jì)為貝葉斯優(yōu)化器創(chuàng)建了一個(gè)20維的搜索空間,其中10個(gè)維度是分類(增強(qiáng)技術(shù)的類型),其他10個(gè)維度是實(shí)值(大小)。由于涉及到分類值,我將貝葉斯優(yōu)化器配置為使用隨機(jī)森林估計(jì)器。

DeepAugment如何找到最佳策略

DeepAugment的三個(gè)主要組件是控制器(貝葉斯優(yōu)化器),增強(qiáng)器和子模型,整個(gè)工作流程如下:控制器采樣新的增強(qiáng)策略,增強(qiáng)器按新策略轉(zhuǎn)換圖像,子模型是通過增強(qiáng)圖像從頭開始訓(xùn)練。
根據(jù)子模型的訓(xùn)練歷史計(jì)算獎(jiǎng)勵(lì)。獎(jiǎng)勵(lì)返回給控制器,控制器使用此獎(jiǎng)勵(lì)和相關(guān)的增強(qiáng)策略更新代理模型(請參閱下面的“貝葉斯優(yōu)化如何工作”一節(jié))。然后控制器再次采樣新策略,并重復(fù)相同的步驟。此過程循環(huán),直到達(dá)到用戶確定的最大迭代次數(shù)。
控制器(貝葉斯優(yōu)化器)是使用scikit- optimization庫的ask-and-tell方法實(shí)現(xiàn)的。它被配置為使用一個(gè)隨機(jī)森林估計(jì)器作為其基本估計(jì)器,并期望改進(jìn)作為其獲取函數(shù)。

DeepAugment的基本工作流程

貝葉斯優(yōu)化是如何工作的

貝葉斯優(yōu)化的目的是找到一組最大化目標(biāo)函數(shù)值的參數(shù)。 貝葉斯優(yōu)化的工作循環(huán)可以概括為:
1.建立目標(biāo)函數(shù)的代理模型
2.查找代理上執(zhí)行得最好的參數(shù)
3.使用這些參數(shù)執(zhí)行目標(biāo)函數(shù)
4.使用這些參數(shù)和目標(biāo)函數(shù)的得分更新代理模型
5.重復(fù)步驟2-4,直到達(dá)到最大迭代次數(shù)
有關(guān)貝葉斯優(yōu)化的更多信息,請閱讀高級的這篇解釋的博客,或者看一下這篇綜述文章。

貝葉斯優(yōu)化的二維描述,其中x和y軸表示增強(qiáng)類型,點(diǎn)(i,j)處的顏色表示用增強(qiáng)i和j所增強(qiáng)的數(shù)據(jù)進(jìn)行訓(xùn)練時(shí)CNN模型的精度。

貝葉斯優(yōu)化的權(quán)衡

目前用于超參數(shù)優(yōu)化的標(biāo)準(zhǔn)方法有隨機(jī)搜索、網(wǎng)格搜索、貝葉斯優(yōu)化、進(jìn)化算法和強(qiáng)化學(xué)習(xí),按方法復(fù)雜度排序。在超參數(shù)優(yōu)化的精度、成本和計(jì)算時(shí)間方面,貝葉斯優(yōu)化優(yōu)于網(wǎng)格搜索和隨機(jī)搜索(參見這里的經(jīng)驗(yàn)比較)。這是因?yàn)樨惾~斯優(yōu)化從先前參數(shù)的運(yùn)行中學(xué)習(xí),與網(wǎng)格搜索和隨機(jī)搜索相反。
當(dāng)貝葉斯優(yōu)化與強(qiáng)化學(xué)習(xí)和進(jìn)化算法進(jìn)行比較時(shí),它提供了具有競爭力的準(zhǔn)確性,同時(shí)需要更少的迭代。例如,為了學(xué)習(xí)好的策略,谷歌的AutoAugment迭代15,000次(這意味著訓(xùn)練子CNN模型15,000次)。另一方面,貝葉斯優(yōu)化在100-300次迭代中學(xué)習(xí)良好的策略。貝葉斯優(yōu)化的經(jīng)驗(yàn)法則是使迭代次數(shù)等于優(yōu)化參數(shù)的次數(shù)乘以10。

超參數(shù)優(yōu)化方法的直觀比較。通過比較類別,加號(+)的數(shù)量表示該方法有多好。

挑戰(zhàn)及對策

挑戰(zhàn)1:優(yōu)化增強(qiáng)需要大量的計(jì)算資源,因?yàn)樽幽P蛻?yīng)該從頭開始反復(fù)訓(xùn)練。大大減慢了我的工具的開發(fā)過程。 盡管使用貝葉斯優(yōu)化使其更快,但優(yōu)化過程仍然不夠快,無法使開發(fā)變得可行。
對策:我開發(fā)了兩種解決方案。首先,我優(yōu)化了子CNN模型(見下圖),這是該過程的計(jì)算瓶頸。其次,我以更確定的方式設(shè)計(jì)了增強(qiáng)策略,使貝葉斯優(yōu)化器需要更少的迭代。

設(shè)計(jì)子CNN模型。它在AWS p3.2x大型實(shí)例(帶有112 TensorFLOPS的Tesla V100 GPU)上以32x32圖像在約30秒(120個(gè)周期)的時(shí)間內(nèi)完成培訓(xùn)。

挑戰(zhàn)2:我在DeepAugment的開發(fā)過程中遇到了一個(gè)有趣的問題。在通過一遍又一遍地訓(xùn)練子模型來優(yōu)化增強(qiáng)期間,它們開始過度擬合驗(yàn)證集。當(dāng)我更改驗(yàn)證集時(shí),我發(fā)現(xiàn)的最佳策略表現(xiàn)不佳。這是一個(gè)有趣的例子,因?yàn)樗煌谝话阋饬x上的過度擬合,即模型權(quán)重過度擬合數(shù)據(jù)中的噪聲。
對策:我沒有使用相同的驗(yàn)證集,而是將剩余的數(shù)據(jù)和訓(xùn)練數(shù)據(jù)保留為“種子驗(yàn)證集”,并在每次子CNN模型訓(xùn)練時(shí)對1000個(gè)圖像的驗(yàn)證集進(jìn)行采樣(參見下面的數(shù)據(jù)管道)。這解決了增強(qiáng)過度擬合問題。

如何集成到ML pipeline中

DeepAugment發(fā)布在PyPI上。你可以通過運(yùn)行以下命令來在終端安裝它:

$ pip install deepaugment

并且使用方便:

from deepaugment.deepaugment import DeepAugment deepaug = DeepAugment(my_images, my_labels) best_policies = deepaug.optimize()

通過配置DeepAugment,可以獲得更高級的用法:

from keras.datasets import cifar10 # my configuration my_config = {"model": "basiccnn","method": "bayesian_optimization","train_set_size": 2000,"opt_samples": 3,"opt_last_n_epochs": 3,"opt_initial_points": 10,"child_epochs": 50,"child_first_train_epochs": 0,"child_batch_size": 64 } (x_train, y_train), (x_test, y_test) = cifar10.load_data() # X_train.shape -> (N, M, M, 3) # y_train.shape -> (N) deepaug = DeepAugment(x_train, y_train, config=my_config) best_policies = deepaug.optimize(300)

有關(guān)更詳細(xì)的安裝/使用信息,請?jiān)L問項(xiàng)目的自述文件或運(yùn)行Google Colab筆記本教程。

結(jié)論

據(jù)我們所知,DeepAugment是第一種利用貝葉斯優(yōu)化來尋找最佳數(shù)據(jù)增強(qiáng)的方法。 數(shù)據(jù)增強(qiáng)的優(yōu)化是最近的一個(gè)研究領(lǐng)域,AutoAugment是解決這一問題的首批方法之一。
Deepaugment對開源社區(qū)的主要貢獻(xiàn)在于它使進(jìn)程具有可擴(kuò)展性,允許用戶在不需要大量計(jì)算資源的情況下優(yōu)化擴(kuò)充策略*。它是非常模塊化的,比以前的解決方案AutoAugment快50倍以上。

WideResNet-28-10 CNN模型與CIFAR10圖像在被Deepaugment發(fā)現(xiàn)的策略增強(qiáng)和不增強(qiáng)時(shí)的驗(yàn)證精度比較驗(yàn)證精度提高8.5%,相當(dāng)于減少了60%的誤差。

結(jié)果表明,使用CIFAR-10小圖像數(shù)據(jù)集的WideResNet-28-10模型與不使用增強(qiáng)的模型和數(shù)據(jù)集相比,Deepaugment可以減少60%的誤差。
Deepaugment目前只優(yōu)化圖像分類任務(wù)的增強(qiáng)。它可以擴(kuò)展到優(yōu)化對象檢測或分割任務(wù),如果你愿意,我歡迎你的貢獻(xiàn)。但是,我認(rèn)為最好的增強(qiáng)策略非常依賴于數(shù)據(jù)集的類型,而不是任務(wù)(例如分類或?qū)ο髾z測)。這意味著無論任務(wù)是什么,AutoAugment都應(yīng)該找到類似的策略,但如果這些策略最終變得非常不同,那將是非常有趣的!
雖然DeepAugment目前適用于圖像數(shù)據(jù)集,但將其擴(kuò)展到文本、音頻或視頻數(shù)據(jù)集將非常有趣。同樣的概念也適用于其他類型的數(shù)據(jù)集。
*使用AWS P3.X2Large實(shí)例,DeepAugment在CIFAR-10數(shù)據(jù)集上花費(fèi)4.2小時(shí)(500次迭代),成本約為13美元。

感謝

我在Insight人工智能研究員計(jì)劃期間的三個(gè)星期內(nèi)完成了這個(gè)項(xiàng)目。我感謝程序總監(jiān)Matt Rubashkin和Amber Roberts的非常有用的指導(dǎo),感謝我的技術(shù)顧問Melissa Runfeldt幫助我解決問題。我感謝Amber Roberts,Emmanuel Ameisen,Holly Szafarek和Andrew Forrester在這篇博客文章中提出的建議和編輯工作。
想要提升你在數(shù)據(jù)科學(xué)和人工智能領(lǐng)域的職業(yè)生涯?申請SV和NYC的截止日期是4月1日!在Insight了解更多關(guān)于人工智能程序的信息!


原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的AutoML数据增广的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。