日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

AAAI 2020 | NAS+目标检测:AI设计的目标检测模型长啥样?

發(fā)布時間:2024/10/8 140 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AAAI 2020 | NAS+目标检测:AI设计的目标检测模型长啥样? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?PaperWeekly 原創(chuàng) ·?作者|劉暢

學(xué)校|上海交通大學(xué)博士生

研究方向|計算機視覺

太長不看版

論文標題:SM-NAS: Structural-to-Modular Neural Architecture Search for Object Detection

論文來源:AAAI 2020

論文鏈接:https://arxiv.org/abs/1911.09929

背景?

State-of-the-art 的目標檢測方法非常復(fù)雜,它通常由:Backbone、Feature fusion neck(FPN 屬于這類 [1])、RPN RCNN head 等多個模塊組成。每種不同的模塊都有一堆設(shè)計和結(jié)構(gòu)。之前一些 NAS 結(jié)合 Object Detection 問題的論文只關(guān)注設(shè)計一個模塊的設(shè)計(比如 backbone,feature fusion neck),而忽視了整個系統(tǒng)之間的平衡。?

核心假設(shè)?

直覺上,復(fù)雜的模型效果好但速度慢(占計算資源),簡單的模型效果差但速度快。而本文則使用 NAS 方法,在多個模塊之中搜索,權(quán)衡計算資源與精度的矛盾。

主要貢獻?

論文提出了一種兩步的,從粗到細的搜索策略,名為 Structural-to-Modular NAS(SM-NAS)。即首先進行 Structural-level(結(jié)構(gòu)層級)的搜索,尋找高效的模塊組合。之后進行 Modular-level 演化每個特定模塊,并向更快的特定任務(wù)網(wǎng)絡(luò)這一目標,推進帕累托前沿。?

注:帕累托前沿(Pareto front),即 Pareto 解的集合,在這里可理解為一個模型集合,從集合里拉出任意兩個成員出來,節(jié)省資源的一定準確率低。而對于不屬于這個集合的模型,總有一個集合成員比他又節(jié)省資源又準確率高。本文考慮的是一個多目標搜索問題,而搜索空間則是很多熱門的檢測算法。

而由于改進的訓(xùn)練方法,搜索時可以不采用任何的預(yù)訓(xùn)練模型或其他的代理任務(wù),而是直接在數(shù)據(jù)集上跑預(yù)測,使得搜索結(jié)果更準確。

Why SM-NAS?

背景與動機

檢測算法總體上(大多)由 backbone,feature fusion neck(FPN 屬于這類),RPN 和 RCNN head 四種 module 組成,之前有很多工作提出了很多不錯的 module,但是不知如何在硬件資源限制下尋找最優(yōu)組合。

就算可以把所有的組合全在標準數(shù)據(jù)集上訓(xùn)一遍再比較并去除最好的,最終也只是個低效且次優(yōu)(sub-optimal)的組合,因為某個組合可能只適用于特定的數(shù)據(jù)集(比如 COCO 可以,VOC 就不行)。除此之外,現(xiàn)有的 NAS 只關(guān)注最優(yōu)化目標檢測系統(tǒng)的一個部分而不是整體。

與此同時,作者通過大量的復(fù)現(xiàn)?SOTA 的目標檢測模型,在實驗中發(fā)現(xiàn)了兩個有趣的事實:

1. Two-stage 的模型不一定比 One-stage 模型跑得慢;

2. 通過精心組合,一個輸入圖片尺寸較小的復(fù)雜模型,可以在速度和精度上雙重碾壓一個輸入尺寸較大的簡單模型。

影響目標檢測系統(tǒng)效果的要素

總結(jié)一下,本論文致力于建立了一個多目標搜索機制,尋找高效最優(yōu)的目標檢測整體結(jié)構(gòu)。在總結(jié)了 state-of-the-art 的設(shè)計和實驗的現(xiàn)象之后,作者總結(jié)了三個影響目標檢測系統(tǒng)效果的要素:

  • 輸入圖片的大小

  • 檢測器不同?module 的組合

  • 每個 module 的結(jié)構(gòu)

搜索策略

為了在這三個要素中找到一個兼顧效率和準確的權(quán)衡,作者提出了一個從粗到細的搜索策略:1)結(jié)構(gòu)層級(第一步):尋找module的組合以及模型輸入圖片的尺寸;2)模塊層級(第二部):演化每個特定的 module,去獲得一個高效的網(wǎng)絡(luò)。

搜索空間

搜索空間會隨著搜索策略改變,因此每一步都有自己特定的搜索空間:

第一步:包含 one-stage 和 two-stage 的熱門模塊,以及輸入圖片的大小。

第二步:優(yōu)化和搜索第一步確定下來的模塊,以 backbone 為例,本來當分類的模型不太適合直接遷移到目標檢測問題中。以 backbone 為例,本來當分類的模型不太適合直接拿來當檢測(比如每一層的通道數(shù)和中間的空間分辨率),這些也可以通過搜索的辦法微調(diào)。

搜索方法

而對于搜索方法,論文結(jié)合了演化算法和偏序剪枝(Partial Order Pruning)來進行快速搜索(具體搜索算法引用自下面兩篇論文)。

Esteban Real, Alok Aggarwal, Yanping Huang, and Quoc V Le. Regularized evolution for image classifier architecture search. arXiv preprint arXiv:1802.01548, 2018

Esteban Real, Sherry Moore, Andrew Selle, Saurabh Saxena, Yutaka Leon Suematsu, Jie Tan, Quoc V Le, and Alexey Kurakin. Large-scale evolution of image classifiers. In ICML, 2017.

除此之外,作者提出了更好的訓(xùn)練策略,無需 ImageNet 預(yù)訓(xùn)練就可以直接跑,還在分布式訓(xùn)練系統(tǒng)上并行了整個搜索過程。

創(chuàng)新點

  • 首先通過研究不同模塊組合以實現(xiàn)速度精度權(quán)衡

  • 從粗到細的搜索策略,分解成結(jié)構(gòu)-模塊層級以高效推進帕累托前沿

  • 快速訓(xùn)練策略,無需預(yù)訓(xùn)練直接搜索。因此,作者認為有機組合不同模塊與輸入尺寸至關(guān)重要,才有了 SM-NAS 這種從結(jié)構(gòu)到模塊的兩步搜索策略。

方法詳解

NAS Pipeline

如上圖所示,上面是搜索的第一個層級:結(jié)構(gòu)層級。該層級把整個模型分成了 backbone + feature fusion neck + RPN + RCNN head 四個部分,把所有 state-of-the-art 放到了搜索空間里,并且還額外加入了輸入圖片尺寸這一維度。?

1. Backbone: ResNet(18,34,50,101) | ResNeXt(50,101) | Mobilenet V2

注意,結(jié)構(gòu)層級搜索里還是用的 ImageNet 預(yù)訓(xùn)練(說好的所謂快速搜索策略呢)。

2. Feature Fusion Neck: 該 module 旨在融合不同層的特征,也對應(yīng)了圖片中不同大小的目標

NO FPN (Faster RCNN) | FPN(輸入輸出特征層級可調(diào),有多種選項)

3. RPN: NO RPN (即1-stage模型) | RPN | Guided Anchoring RPN?

4. RCNN Heads: Regular | Cascade (幾個輸出待定) | RetinaNet?

5. Input Resolution: 512x512 | 800x600 | 1080x720 | 1333x800?

在第一階段,搜索的指標是精度和推理時間,結(jié)合驗證數(shù)據(jù)集的準確性,生成一個 Pareto 前沿,顯示在不同資源約束下目標檢測模型的最佳結(jié)構(gòu)。?

而下面則是搜索的第二個層級:模塊層級。

當?shù)谝粋€層級生成了一個帕累托前沿時,我們可以選擇幾個不錯的模型,并在第二個階段里對每個模型進行微調(diào),并提升速度/精度的權(quán)衡效果。?

ThunderNet 提出,目標檢測的 backbone,在前面的特征圖更大,充滿描述空間細節(jié)的低級特征。而后面的特征圖則更小,但更具有高層的可描述性。

檢測任務(wù)有定位與分類兩個子任務(wù),定位任務(wù)對低級的細節(jié)特征比較敏感,而分類任務(wù)則高層特征顯得更加關(guān)鍵。因此,一個很自然的問題就是如何在減少計算資源占用的情況下獲得兼顧高底層特征的模型。

因此,在 backbone 中,我們設(shè)計了一個靈活的搜索空間以尋找最優(yōu)的通道數(shù),以及下采樣與通道數(shù)提高的位置。?

順便一提,在搜索 backbone 的過程中,作者根據(jù)前人工作的先驗知識固定了其中的幾個層的類型,并且維持了同一種大類的模型結(jié)構(gòu)(如 ResNet 模型微調(diào)了還是 ResNet,ResNeXt 怎么都是 ResNeXt)。因此 backbone 就可以簡單地使用字符串編碼。具體地可以看論文。?

除了 backbone 之外,FPN 的通道數(shù)也是可調(diào)的,輸入的通道數(shù)在 128,256,512 中選取,而 head 的通道數(shù)也會相應(yīng)調(diào)整。

快速訓(xùn)練方法?

作者提出兩個在目標檢測訓(xùn)練中的致命問題,以及其解決方法,使得模型可以不通過 Image net 進行預(yù)訓(xùn)練。錯誤的 Batch Normalization,因為訓(xùn)練時 GPU 顯存的限制,目標檢測的 batchsize 通常較小,這導(dǎo)致模型很難估計batch中真實的統(tǒng)計數(shù)據(jù),因此極大提高了模型的誤差。?

為了解決這個問題,使用了 Group Normalization (GN)。GN 將通道分成組,并在每個組中計算用于標準化的平均值和方差。GN 的計算與 batchsize 無關(guān),因此在 batchsize 大幅變化時表現(xiàn)穩(wěn)定。

復(fù)雜的損失函數(shù),檢測中的多重損失(分類損失,位置損失,而且不同坐標位置損失還不一樣算法)以及 ROI pooling 層阻礙了梯度從 RPN 向 backbone 回傳。因此,在從頭開始的訓(xùn)練中會出現(xiàn)明顯的損失函數(shù)震蕩以及梯度爆炸現(xiàn)象。?

Batch Normalization 可以顯著解決梯度爆炸問題,而因為目標檢測的 batchsize 比較小不太合適,因此使用了 Weight Standardization (WS) 來進一步平滑 Loss,WS 與 BN/GN 不同,直接標準化了卷積層的權(quán)重值,其通過實驗展示了這樣的操作可以減少損失和梯度值的 Lipschitz 常數(shù)。?

實驗表明,加了 GN 和 WS 之后,訓(xùn)練時可使用更大的學(xué)習(xí)率,因此也比預(yù)訓(xùn)練方法收斂速度快了許多。

多目標搜索算法?

在訓(xùn)練的每個層級上,想做的都是生成一個 Pareto 前沿以顯示精度和計算資源的一些最佳權(quán)衡。?

為了生成 Pareto 前沿,本文使用了非支配排序(nondominate sorting)確定模型是否在效率和準確率上支配其他模型。?

在第一個層級中,使用一塊 V100 GPU 的推斷時間作為效率指標,而第二層及中,使用 FLOPs 而不是真實的時間,因為 FLOPs 更加精確(畢竟 backbone 之類的模型都是一個種類的)。除此之外,因為第一層級訓(xùn)練還是預(yù)訓(xùn)練+BN,而第二層級轉(zhuǎn)為了 GN+WS,因此使用 FLOPs 可以保持排名的一致性。?

搜索基于:?

  • 用進化算法來突變Pareto前沿上的最佳的架構(gòu);

  • 使用偏序剪枝(Partial Order Pruning),結(jié)合“更深更寬的模型更精確”這個先驗知識進行剪枝以降低搜索空間。?

其他實現(xiàn)細節(jié)?

第一層級的實現(xiàn)是先隨機生成各種模型組合,然后使用演化算法迭代尋找最優(yōu)組合。經(jīng)驗上跑 5 個 epoch 就可以進行模型比較了。在這個階段,評估了 500 個模型并花了 2000 GPU hours。?

PS:在搜索過程中,MobileNet 的表現(xiàn)最差,這是因為 MobileNet 以時間換空間的做法在 GPU 上反而會降低速度,具體請看我關(guān)于 MobileNet 的筆記 [2]。?

第二層級使用 GN 和 WS 作為訓(xùn)練策略,而搜索……論文好像沒提怎么搜的,可能和第一層級一樣?最終第二層級評估了 300 個模型,并消耗了 2500 GPU hours。

相關(guān)鏈接

[1]?https://zhuanlan.zhihu.com/p/78160468

[2]?https://zhuanlan.zhihu.com/p/80177088

點擊以下標題查看更多往期內(nèi)容:?

  • 圖自編碼器的起源和應(yīng)用

  • 圖神經(jīng)網(wǎng)絡(luò)三劍客:GCN、GAT與GraphSAGE

  • 如何快速理解馬爾科夫鏈蒙特卡洛法?

  • 深度學(xué)習(xí)預(yù)訓(xùn)練模型可解釋性概覽

  • ICLR 2020 | 隱空間的圖神經(jīng)網(wǎng)絡(luò)

#投 稿 通 道#

?讓你的論文被更多人看到?

如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。

?????來稿標準:

? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?

? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?

? PaperWeekly 默認每篇文章都是首發(fā),均會添加“原創(chuàng)”標志

???? 投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨在附件中發(fā)送?

? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通

????

現(xiàn)在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關(guān)注」訂閱我們的專欄吧

關(guān)于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結(jié)

以上是生活随笔為你收集整理的AAAI 2020 | NAS+目标检测:AI设计的目标检测模型长啥样?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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