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