過去的部分帶我們參觀了計算機視覺的現代網絡設計。我們涵蓋的所有工作的共同點是它嚴重依賴科學家的直覺。許多架構在很大程度上受到了人類創造力的啟發,而在很大程度上受到了對深度網絡提供的設計空間的系統探索的影響。盡管如此,這種網絡工程方法已經取得了巨大的成功。
由于 AlexNet(第 8.1 節)在 ImageNet 上擊敗了傳統的計算機視覺模型,因此通過堆疊卷積塊構建非常深的網絡變得很流行,所有這些都是由相同的模式設計的。尤其,3×3卷積由 VGG 網絡(第 8.2 節)推廣。NiN(第 8.3 節)表明即使1×1通過添加局部非線性,卷積可能是有益的。此外,NiN 通過跨所有位置的聚合解決了在網絡頭部聚合信息的問題。GoogLeNet(8.4節)在其Inception block中加入了多個不同卷積寬度的分支,結合了VGG和NiN的優點。ResNets(第 8.6 節)改變了對身份映射的歸納偏差(來自f(x)=0). 這允許非常深的網絡。將近十年后,ResNet 設計仍然流行,證明了它的設計。最后,ResNeXt(第 8.6.5 節)添加了分組卷積,在參數和計算之間提供了更好的權衡。擠壓和激發網絡 (SENets) 是用于視覺的變形金剛的前身,可實現位置之間的高效信息傳輸 (Hu等人,2018 年)。他們通過計算每個通道的全局注意力函數來實現這一點。
到目前為止,我們省略了通過神經架構搜索 (NAS)獲得的網絡(Liu等人,2018 年,Zoph 和 Le,2016 年)。我們之所以選擇這樣做,是因為它們的成本通常很高,依賴于蠻力搜索、遺傳算法、強化學習或某種其他形式的超參數優化。給定一個固定的搜索空間,NAS 使用搜索策略根據返回的性能估計自動選擇架構。NAS 的結果是單個網絡實例。EfficientNets 是這次搜索的顯著成果 (Tan 和 Le,2019 年)。
下面我們討論一個與尋求單一最佳網絡完全不同的想法。它在計算上相對便宜,它會在途中產生科學見解,并且在結果質量方面非常有效。讓我們回顧一下Radosavovic等人的策略。( 2020 )設計網絡設計空間。該策略結合了手動設計和 NAS 的優勢。它通過對網絡分布進行操作 并以某種方式優化分布以獲得整個網絡系列的良好性能來實現這一點。它的結果是RegNets,特別是 RegNetX 和 RegNetY,以及一系列用于設計高性能 CNN 的指導原則。
import tensorflow as tf
from d2l import tensorflow as d2l
8.8.1. AnyNet 設計空間
下面的描述緊跟Radosavovic等人的推理 。( 2020 )加上一些縮寫以使其符合本書的范圍。首先,我們需要一個供網絡系列探索的模板。本章設計的共同點之一是網絡由主干、主體 和頭部組成。. stem 執行初始圖像處理,通常通過具有較大窗口大小的卷積。主體由多個塊組成,執行從原始圖像到對象表示所需的大量轉換。最后,頭部將其轉換為所需的輸出,例如通過用于多類分類的 softmax 回歸器。反過來,身體由多個階段組成,以降低的分辨率對圖像進行操作。事實上,主干和每個后續階段都占空間分辨率的四分之一。最后,每個階段由一個或多個塊組成。這種模式對所有網絡都很常見,從 VGG 到 ResNeXt。事實上,對于通用 AnyNet 網絡的設計, Radosavovic等人。( 2020 )使用了 ResNeXt 塊圖 8.6.5。
讓我們詳細回顧一下圖 8.8.1中概述的結構。如前所述,AnyNet 由主干、主體和頭部組成。詞干將 RGB 圖像(3 通道)作為輸入,使用 3×3與 stride 的卷積2,然后是批量規范,將分辨率減半r×r到 r/2×r/2. 此外,它生成c0作為身體輸入的通道。
由于該網絡旨在與形狀的 ImageNet 圖像配合使用 224×224×3,身體用于將其減少到 7×7×c4通過 4 個階段(回想一下 224/21+4=7), 每個最終的步幅為2. 最后,head 通過全局平均池采用完全標準的設計,類似于 NiN(第 8.3 節),然后是一個完全連接的層以發出一個n維向量為 n-類分類。
大多數相關的設計決策都是網絡主體固有的。它分階段進行,每個階段都由我們在第 8.6.5 節中討論的相同類型的 ResNeXt 塊組成。那里的設計再次完全通用:我們從一個塊開始,通過使用一個步長將分辨率減半2(圖8.8.1最右邊 )。為了匹配這一點,ResNeXt 塊的剩余分支需要通過1×1卷積。此塊后跟可變數量的附加 ResNeXt 塊,這些塊使分辨率和通道數均保持不變。請注意,常見的設計實踐是在卷積塊的設計中添加一個小瓶頸。因此,瓶頸比 ki≥1我們提供一些渠道
評論
查看更多