0. 前言
1. 要解決什麼問題
- 主要處理網絡設計問題。
- 之前網絡設計一般着重於設計 individual network instances,而本文主要設計的是 network design spaces。
- 如何區分 individual network instances 與 network design spaces?
- 文章中提到,LeNet/AlexNet/VGG/ResNet 不僅僅是 individual network instances,還幫助我們理解網絡結構,提出了新的設計原則。
- 上面四個網絡分別告訴我們,卷積操作/網絡與數據大小/網絡深度/殘差結構 的重要性。
- 之前網絡設計的方式:
- 手工設計:能得到很好的結果,但隨着研究的深入,要找到好的結構越來越困難。
- NAS:能在一個固定的搜索空間中找到最優的結果,但效率一般,且存在很多限制。限制有
- 搜索到的網絡結構針對的是特定的設置(如某個硬件平臺),通用性不好。
- 找不到network design principles,不能幫助我們理解網絡結構。
- 希望能夠找到網絡設計的一些設計準則(design principles),要求
- 簡潔/性能好/通用性好
2. 用了什麼方法
- 基本概念
- 本文基本思路: sample models from a design space, giving rise to a model distribution, and turn to tools from classical statistics to analyze the design space.
- 爲了實現上述思路,需要有一套基本工具
- 比較兩個 design space 時,1)對比若干model的error分佈,2)對比兩個space的最優模型,前者更合理一些,
- 以下圖爲例,最開始的design space 是A,經過兩次 refinement steps 後獲得design space B/C,分別訓練三個 design space 的若干模型,得到錯誤率分佈如右圖,從錯誤率看C>B>A,表示這兩次 refinement steps 都不錯。
- 其他一些細節
- 在訓練模型時,只在ImageNet上訓練10epochs。
- 比較design space優劣的參數是EDF(empirical distribution function),定義如下:
- 本文提出的方法與NAS的區別
- NAS是想找到一個最好的模型。
- 本文的目標是找到模型設計準則。
- RegNet的來歷: obtain a simplified design space consisting of only regular network structures that we name RegNet
- 在確定了 tools for design space design 後,開始具體操作
- 第一步:AnyNet,給出一個基本網絡結構,包含所有網絡設計要素,基於這些要素通過控制變量訓練模型,得到統計結果並觀察。
- 基本網絡結構如下圖,設計時主要關注的就是body
- 基本的設計要素包括:bottleneck ratio/group/width/depth.
- AnyNet主要設計目標是:領結構更簡單、解釋性更強、提升design space的質量、保持design space的多樣性。
- 借用這裏的一張圖能更好地說明上述過程
- 第二步:RegNet,在上一步 AnyNetXE 的基礎上對 block index/width/depth 在進行處理。
- 通過上面的實驗可以看出:好網絡的寬度和深度是可以用量化的線性函數來解釋的。
- 爲了更好的理解模型結構設計,統計上一步中最後的模型 AnyNetXE中最好的20個模型,通過即線性迴歸歸納 block index 與 width 的區別關係……
- 第三步:驗證不同setting下,同一套結論也能用
- 第一步:AnyNet,給出一個基本網絡結構,包含所有網絡設計要素,基於這些要素通過控制變量訓練模型,得到統計結果並觀察。
- 總體 design space 的變化
- 大佬總結的本文結論
3. 效果如何
- 與EfficientNet的對比
4. 還存在什麼問題
-
最新可能需要與MoBileNetV3比了,但沒有。
-
看的不是特別懂,如果需要了解細節,需要反覆看。