<em id="oqmgd"><label id="oqmgd"></label></em>

  • <div id="oqmgd"></div>

    <em id="oqmgd"></em>

      1. 申請試用
        登錄
        核心技術
        以原創技術體系為根基,SenseCore商湯AI大裝置為核心基座,布局多領域、多方向前沿研究,
        快速打通AI在各個垂直場景中的應用,向行業賦能。

        【商湯泰坦公開課】AutoML知多少

        2020-05-06

        導讀


        AutoML(自動機器學習)以及NAS(神經架構搜索)是深度學習領域目前最具潛力和影響力的方向之一,其目的是更加自動化地實現神經網絡的結構設計以及超參優化等方面。


        2020年5月7日,商湯泰坦公開課第010期、CVPR2020論文解讀第二期的線上課程,由商湯四位研究員分享了團隊在AutoML方面最新的研究工作,小助手已為大家做了圖文整理,快來一睹為快吧~


        Part 1  AutoML領域綜述

        Part 2  商湯AutoML團隊相關研究進展

         2.1 Augmentation

         2.2 NAS

         2.3 LossFunction

        Part 3  Q&A問答

        Part 4  答疑交流

        課程PPT及視頻回放獲取方式見文末提示~


        Part 1 AutoML綜述


        深度學習是一個在2013年被引爆的概念,自從AlexNet推出以來,在很多CV任務的benchmark上會看到深度學習為核心的算法的身影,如今可以稱作是“深度學習的時代”,因為一些傳統的算法已經淡出了視野,常說的“深度學習三巨頭”在2018年憑借在深度學習方向上的貢獻獲得了圖靈獎,足以見得深度學習是目前非常火熱的方向。


        深度學習是一個在2013年被引爆的概念,并在整個機器學習領域占據了主導地位。深度學習和非深度學習的主要區別在于用于做物體識別的feature是手工設計還是自動設計,深度學習提供了一個從data中獲取feature的方式,對于深度學習來說,下一步的走向會是哪里?


        目前認為深度學習的下一步是自動化的深度學習。深度學習解決了一個從data中挖掘合適的feature的問題,研究人員在整個訓練過程中會遇到很多問題:是否要使用數據增強?要使用什么數據增強?是否用了合適的loss function?有沒有辦法尋找更好的loss function?深度學習的架構要用多少層?層與層的拓撲關系要如何確定?如何分配計算量?


        在深度學習框架下這些問題仍然需要手調,我們希望從數據中獲取答案,那么AutoML就是其中一種技術路線。目前它遇到的主要問題是計算量需求非常大,從一些工作可以看出,在NASNet中提到其需要的GPU Days是1800天,雖然可以獲得不錯的結果,但開銷對于一些小公司來講是無法接受的。其后續工作AmoebaNet利用了Evolution的方式做網絡結構搜索,其GPU Days甚至比1800還要高。如何解決computational budget是大家在做AutoML時非常關心的問題。


        目前認為AutoML完整的流程,主要分為data、model和optimization三個部分,其關系如下圖所示:


        從Data set到最終的模型會經歷很長的過程,首先要對data進行清洗,然后確定模型結構,最后是對模型進行optimization。目前團隊不僅在NAS方面有較豐富的成果,同時也在Augmentation和Loss Function方面有一定嘗試,并取得不錯的進展。


        下面將根據以上介紹的AutoML的三方面,分別介紹商湯研究團隊近期取得的成果。


        Part 2 論文解讀

        1 Augmentation


        這篇的工作由google首次實現,pipeline會和他們的NAS方法非常接近,首先有一個RNN Controller generated strategy,其中包括了做Augmentation的概率和幅度,在得到了Augmentation policy后會訓練一個網絡,從初始化訓練到收斂,收斂后會在validation set上獲得reward。通過reward來監督RNN Controller,使得RNN Controller采樣reward更高的strategy。這個流程中的第一個問題就是evaluation很慢,過程非常耗時,其次如果Reinforce Learning搭配RNN Controller進行參數的訓練,迭代次數非常多,綜合起來會讓時間開銷非常大。為了解決耗時的問題,他們采樣了數據集,對CIFAR-10僅采樣8%,對IMAGENET僅采樣0.5%。并且,只能對單一結構進行搜索,期待搜索結果在別的網絡上獲得好的效果。這些都是以上工作的一些弊端。我們采用了不同的視角,把augmentation policy search看作一個超參優化。傳統超參優化的問題也出現在迭代上,我們提出了Online Hyper-parameter Learning的方法來解決此問題。OHL與傳統方式的區別是,只進行單個模型的訓練,single run是我們主要的特點,且并不需要模型做retrain,當搜索完成后可獲得最終想要的模型。將單個模型的訓練過程切成碎片,運行多個模型,每個GPU在跑一個小trunk時的初始參數是相同的,采樣不同的augmentation policy,運用在不同的模型上,獲得不同的reward,監督P0走向好的augmentation policy分布。

        結果:可以看到除了AMOEBANET-B對比Google會稍遜一籌外,其他的幾個模型都可以穩定超過google的結果。

        03.png

        在ImageNet上的測試結果:

        04.png

        論文地址:https://arxiv.org/abs/1905.07373


        2 Network Architecture

        1)EcoNAS: 為傳統網絡搜索方法尋找最佳的代理


        在網絡搜索中非常重要的部分就是評估候選子結構的優劣。我們通常要使用代理,如何評估代理的好壞呢?我們常用的方法是去衡量代理條件下得到模型的精度和模型真實的精度排序的一致性。我們的實驗采樣了50個網絡,把他們訓練到完全收斂,用得到的最終精度的排序和在代理環境下排序的斯皮爾曼排序相關系數(Spearman ranking coeffficient)來評估他們之間的關聯性,相關系數越高則代理環境保持網絡排序的能力(也稱保序性)越高,對于NAS算法越有利。可以給出下圖,橫軸是代理的加速比例:

        05.png

        對上圖的實驗結果進行分析后得知,更長的訓練迭代和使用全部數據進行訓練對保序是有利的,降低分辨率對保序的影響并不規律,可以適當降低分辨率,同時通道降低對保序有利。基于我們上述的觀察,我們使用了使得訓練快速但相關系數大的設置,并設計了EcoNAS。EcoNAS采用了搜索得到的高效設置,在這個設定下,單模型訓練20 epoch只需要單卡數分鐘。對于訓練迭代,我們設計了一套分層算法,對早期表現不好的備選網絡進行早停,從而進一步減少計算資源:

        06.jpg

        這三個集合隨著搜索的進行大小由此降低,也就是說只有很少的模型會被訓練到3N次迭代,這是基于我們之前發現的epoch越多,對模型的評估越好的觀察設計的算法。


        在8 GPU Days內EcoNAS即可搜索,我們搜索到的參數在將AMOEBANET加速近260倍的同時對性能也有一定提升,加入層次化代理后還會帶來兩倍的速度提升和更高的性能,我們的研究表明了代理保序性對NAS算法的重要性。

        論文地址:https://arxiv.org/abs/2001.01233


        2)PC-NAS: 基于參數后驗分布特性提高網絡結構搜索中代理的有效性

        當前網絡結構搜索算法大量的計算量需求成為了其應用中最大的問題。然而解決計算量問題的方法目前還不完美,使用共享參數的超網做代理成為了目前比較普遍的選擇。但這類方法受限于代理和真實情況的偏差。通過分析隨機梯度優化求解的參數后驗分布的KL散度,我們得出了減少搜索空間內網絡結構數量可以提高one-shot相關性的結論。

        07.png

        為了在訓練權重共享的同時,減小權重共享的網絡結構數量,我們提出一種訓練時的空間修剪方法。假設我們目前有一個如上圖所示的超網,每一層擁有一個mixop(mixop是n個候選op的合稱)于是該超網中總共包含n^層數個不同的結構。為了進行搜索空間的修剪,我們提出了部分結構池的概念(partial model pool)。假設網絡結構有L層,部分結構池在整個搜索過程中將會有L個狀態(Stage)。每從L-1狀態到L狀態,部分結構池中的子結構的層數將增長1。

        08.png

        改進后的proxy和原來的one-shot proxy的對比。PC-NAS最終的搜索空間很小,所以獲得的最終精度非常接近單獨訓練時的排序。

        論文地址:https://arxiv.org/abs/1910.02543


        3)GreedyNAS: 基于貪?超?絡的One-Shot NAS?法

        我們提出一種貪心超網絡來減輕supernet的評估壓力,使得supernet更加貪心地注重于有潛力的好結構,提高搜索的精度。


        先前的方法首先構造一個超網絡,包含搜索空間里的所有OP和參數,同時在每一次超網絡訓練時sample出一個小的子網絡進行訓練。巨大的搜索空間帶來的評估壓力使supernet難以準確地區分結構的好壞,由于所有結構的權重都是在supernet中高度共享的,如果一個差的結構被訓練到了,好的結構的權重也會受到干擾。這樣的干擾會削弱好網絡的最終評估精度,影響網絡的搜索結果。同時,對差的結構進行訓練相當于對權重進行了沒有必要的更新,降低supernet的訓練效率。


        因此我們希望降低搜索空間的大小,提升它的評估性能。

        09.png

        假設搜索空間可以如上劃分為好的空間與差的空間,且好空間中每一個結構的ACC均大于差空間,然而確定所有結構中哪些是來自好空間需要遍歷整個搜索空間,計算開銷是無法接受的。


        為了解決這一問題,我們提出了一種multi-path sampling with rejection的多分支過濾采樣方法。在介紹這個方法前,我們首先對目前的均勻采樣方法進行分析。


        因為分支的采樣是均勻且獨立的,那么每個path來自好空間的概率為:

        10.png

        為了得到需要的來自于好空間的結構,我們進一步考慮一個多維的Bernoulli實驗,那么有如下的結論:

        11.png

        我們取m = 10和m = 20,對定理1的概率進行繪制,如Figure 2所示,可見這種采樣下得到來自好空間中的path的概率是很高的。

        12.png

        于是,我們可以對采樣到的多個結構進行評估篩選的方法提升采樣到“好”結構的概率,即每次采樣m個結構,從中選取評估指標最高的k個結構進行訓練。為了減少評估網絡的消耗,我們從驗證集中隨機選取了一小部分(如1000張圖)組成小驗證集,并使用在小驗證集上的loss作為結構的排序指標。使用小驗證集進行評估,在保證評估準確性的前提下,相較uniform sampling方法只增加了很少的計算代價。


        在前面提到的路徑濾波中,我們通過評估可以區分出較好的結構,為了進一步提升訓練效率,我們提出使用一個路徑候選池用于存放訓練過程中評估過的“好”結構,并進行重復利用。具體而言,候選池可以看作是一個固定大小的有序隊列,其只會存儲所有評估過結構中得分前n(候選池大小) 的結構。


        在網絡剛開始訓練時評估過的結構較少,候選池中存儲的結構是好結構的可信度不高,因此從候選池中采樣的概率 ? 在開始時設為0,并線性增加至一個較高的值,若候選池中的結構都來自好空間,通過使用候選池,采樣10個結構,至少有5個好結構的概率由88.38%提升至99.36% 。


        候選池主要有以下優點:

        ● 提升訓練效率

        ● 提升采樣精度

        ● 可以通過候選池更新頻率判斷supernet是否具備足夠的評估性能,因而可以用作停止訓練的參考

        ● 使進化算法有更好的初始,提高搜索到結構的整體精度

        論文地址:https://arxiv.org/abs/2003.11236


        4)CRNAS: 檢測中的算力重分配

        我們換了一個研究的視角,從檢測這個問題本身去考慮NAS。之前在NAS上做檢測的文章更多的是直接把分類的經驗拿到檢測上做搜索,我們的工作是基于檢測的任務去做NAS,而不是將NAS直接應用到檢測的任務上來。


        對Res50分類而言,ImageNet輸入大小是224*224,但是對于檢測而言,拿COCO為例,輸入可能到800*1333,而且還需要去handle各個尺度的物體。

        13.png

        這個時候,我們將網絡的有效感受野ERF與網絡算力分配模式聯系了起來。在Faster RCNN + FPN這一經典baseline中,我們希望FPN的各層有合適能力去檢測對應大小的物體(Anchor Size)。當我們畫出R50-FPN的各層的ERF時,發現對于P3而言(小物體),ERF挺大有冗余,但對于P5而言(大物體),ERF又不夠有點稀疏,見下圖Figure 1右上角。這也就是直接應用Res50作為backbone的問題。


        經過我們的stage的重分配之后,可以明顯看到各層FPN有更加平衡的ERF,保證了最后的性能。


        為了進行算力重分配,我們構建了一個兩級搜索來配合這個龐大的搜索空間。我們先進行stage的搜索,然后進行spatial的搜索。簡單來說,先搜索各個stage的block number,再搜索各個位置的dilated conv的rate,因為dilated conv通過改變采樣點的稀疏程度,可以改變網絡的感受野。


        我們利用One-shot NAS的方式構建超圖,當超圖訓練完成后,我們去測試各種組合的性能,從其中挑選中最好的組合。

        14.png

        我們也設計了可以重復利用的超圖,也就是你訓練了一個超圖之后,我們可以從中挑選出這個系列中任何計算量下最好的模型,如Res18到Res101。


        在得到stage的結果之后,我們利用dilated conv來完成不同位置稀疏的采樣。與第1步一樣,我們也是利用One-shot NAS的方式構建超圖。

        15.png

        從結果上面來看,經過我們的CRNAS,所有的模型在COCO上均有1.5-1.9 mAP左右的提升,而且這些提升都沒有帶來任何的計算量增長。且模型有較好的遷移性能。

        論文地址:https://arxiv.org/abs/1912.11234


        3 Network Architecture

        1)AM-LFS:AutoML for Loss Function Search


        Loss function是在很多圖像任務上比較重要的調參的對象,目前存在的Loss function有很多問題,適宜用AutoML解決,可以通過數據確定Loss function的形式。機器是否能學習Loss function?將過去的Loss function放在loss空間中,發現了一個統一的表達:

        16.png

        在選用不同的具體表達時,會應對原空間中不同的loss function。在有了這一表達后,對這一函數的搜索我們采取了簡單的分段函數,在分段內部是簡單的線段。


        我們提出了將loss function search轉化為另外兩個函數的搜索,使用了前面提到的OHL framework,用不同的trunk更新兩個函數的超參,使分段函數可以擬合上目標函數。最后在Cifar10上實驗對比baseline在noisy ratio的情況下可以提升2各點左右,帶有noise的情況下會提升更多。

        論文地址:https://arxiv.org/abs/1905.07375


        Part 3 Q&A

        Q:通道數降低可以獲得更好的性能評估,這一點對于不同的網絡結構和loss function都適用嗎?

        A:這是一個比較反直覺的現象,遇到新的任務時可以往這個方向嘗試,但未必會找到一個哪里都適用的規律。

        Q:loss的搜索實質上是對確定好的幾種loss進行系數的自動尋優嗎?

        A:不是的。我們參考了幾組loss function的特征,抽象成了loss function的空間,由兩個單獨的函數確定最終的方式,我們把loss function search的函數轉化到了前面提到的兩個函數上,然后用分段線性函數的參數來搜索新的空間。

        Q:Paper中提到,用1000張圖片評價是不太少了?

        A:在paper中,我們對各種大小的驗證集與完整驗證集的排序相關性做了詳細的分析,選擇1000張是因為圖片數量到1000時排序相關性已經可以穩定到90%以上,再增加也不會有更大的提升,因此為了兼顧效率,我們選擇了1000張圖片。

        Q:候選池中的結構有更大可能性被多次訓練,這對one shot方法最終評估會有較大影響,怎么保證找到的結構不是因為偶然因素而被訓練最多的結構?

        A:如果從候選池中采樣,可以提升效率,但也會丟失搜索結構的多樣性,所以在實現中為了保證從大空間采樣的多樣性與池中搜索效率的平衡,我們一開始只會從完整的搜索空間進行sample,公平地采樣所有結構,當訓練輪數達到一定程度再引入候選池進行搜索,且從候選池中采樣的概率會由0線性增加至0.8。這樣從公平到貪心訓練逐漸演變的過程,可以減少訓練不均衡、結構不公平的情況,同時得到貪心帶來的效率提升。

        Q:NAS會不會在搜索的數據集上過擬合,導致在實際場景中表現沒那么好?

        A:絕大部分CV任務都基于ImageNET,如果NAS能在ImageNET基礎上搜出一個好的模型,大概率可以遷移到其他實際任務上的。在一些Task specific research中,有可能針對不同的搜索時會擬合到你搜索的數據集。

        「商湯泰坦公開課」公眾號后臺回復“010”,即可獲取相應的課程資料哦!


        推薦閱讀
        • 11月2日,為期七天的計算機視覺頂會ICCV 2019落幕。商湯科技以57篇論文(11篇Oral),13項冠軍的成績創造新“高度”(詳見文章《商湯科技57篇論文入選ICCV 2019,13項競賽奪冠》),讓世界見證商湯研究技術積累的“厚度”,在大會現場也能切身感受商湯AI+行業應用落地的“廣度”
          2019-11-03
        • 近日,由阿里巴巴集團、商湯科技及香港科技園公司攜手成立的香港人工智能及數據實驗室(HKAI Lab)在香港科學園正式開幕。商湯科技創始人、香港中文大學教授湯曉鷗、阿里巴巴集團首席技術官張建鋒和香港科技園公司行政總裁黃克強分別發表了講話,祝愿HKAI Lab能夠助力香港初創人工智能企業生態發展。
          2018-10-18

        <em id="oqmgd"><label id="oqmgd"></label></em>

      2. <div id="oqmgd"></div>

        <em id="oqmgd"></em>

          1. 日韩在线视频