|
FAIR 首席科學(xué)家 Yann LeCun 表示,通過在 Instagram 圖片標(biāo)簽上預(yù)訓(xùn)練并在 ImageNet 上微調(diào)(finetune),論文提出的全新 ResNext101 模型再次刷新了 ImageNet 數(shù)據(jù)集圖像分類競賽的準(zhǔn)確度,在圖像分類、目標(biāo)檢測等計(jì)算機(jī)視覺技術(shù)領(lǐng)域立下了新標(biāo)桿。諸如目標(biāo)檢測、圖像分割等等計(jì)算機(jī)視覺基礎(chǔ)任務(wù)都可以將其骨干網(wǎng)絡(luò)替換為這一新模型,借助其強(qiáng)大的特征提取能力,有望取得更好的效果。換言之,整個(gè)計(jì)算機(jī)視覺業(yè)界都有機(jī)會(huì)因之受益。本文是 AI 前線第 90 篇論文導(dǎo)讀,我們將對(duì)該數(shù)據(jù)增強(qiáng)方法及其技術(shù)實(shí)現(xiàn)進(jìn)行具體介紹。 CNN 被廣泛的用于諸多計(jì)算機(jī)視覺任務(wù),如圖像分類、目標(biāo)檢測、圖像恢復(fù)、風(fēng)格轉(zhuǎn)換以及圖像壓縮等。為了盡可能的提升 CNN 模型的性能,訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)的分布需要盡可能的接近。在圖像識(shí)別任務(wù)中,普遍會(huì)使用一種隨機(jī)裁剪的數(shù)據(jù)增強(qiáng)方法。被裁剪出來的區(qū)域也被稱為類別區(qū)域(Region of Classification,RoC),這部分內(nèi)容會(huì)被變形成神經(jīng)網(wǎng)絡(luò)輸入所要求的固定大?。垂潭ǚ直媛剩?ResNet 的輸入為 22*4224,AlexNet 的輸入為 227*227)然后加載到網(wǎng)絡(luò)中。在測試階段,RoC 會(huì)被設(shè)置為包含圖像中央部分內(nèi)容的一個(gè)矩形區(qū)域。當(dāng)測試和訓(xùn)練階段的 RoC 不同時(shí),網(wǎng)絡(luò)看到的數(shù)據(jù)之間的分布會(huì)存在一個(gè)較大的差異,這會(huì)影響到網(wǎng)絡(luò)模型的性能表現(xiàn)。如圖 1 所示,使用標(biāo)準(zhǔn)數(shù)據(jù)增強(qiáng)方法時(shí),在測試和訓(xùn)練階段用來表示白馬的像素?cái)?shù)量是不同的。調(diào)整測試和訓(xùn)練時(shí)輸入網(wǎng)絡(luò)的圖像區(qū)域大小,可以保證用來表示白馬的像素?cái)?shù)量一致。 圖 1:訓(xùn)練與測試時(shí)輸入網(wǎng)絡(luò)的目標(biāo)大小差異。前兩列表示使用標(biāo)準(zhǔn)數(shù)據(jù)增強(qiáng)方法導(dǎo)致的訓(xùn)練與測試時(shí)目標(biāo)大小的差異,后兩列是使用本文作者新提出的數(shù)據(jù)增強(qiáng)手段在測試和訓(xùn)練階段對(duì)圖像進(jìn)行調(diào)整后輸入模型的目標(biāo)大小對(duì)比。 隨著近些年深度學(xué)習(xí)的發(fā)展,訓(xùn)練和測試時(shí)的數(shù)據(jù)預(yù)處理方法被廣泛應(yīng)用于提升 CNN 模型的性能。但目前為止這兩類數(shù)據(jù)預(yù)處理方法通常都是獨(dú)立優(yōu)化的。在這篇論文中,作者首先展示了獨(dú)立優(yōu)化存在的問題——導(dǎo)致顯著的分布偏移。隨后作者證明了上述問題可以通過在尺度和分辨率層面上同時(shí)對(duì)訓(xùn)練及測試數(shù)據(jù)進(jìn)行優(yōu)化來改善。本文提出的策略只需要微調(diào)(fine-tune)兩個(gè)網(wǎng)絡(luò)層即可彌補(bǔ)對(duì)圖片裁剪時(shí)區(qū)域大小改變而引起的統(tǒng)計(jì)學(xué)偏差。同時(shí),該策略并不會(huì)影響已有的預(yù)處理方法的使用。通過本文提出的方法,CNN 模型僅需在小尺寸(分辨率)的圖像上訓(xùn)練即可在大尺寸的測試圖像上獲得比使用大尺寸訓(xùn)練的模型更好的性能。這使得 CNN 在訓(xùn)練階段的模型大小可以有效地被壓縮,同時(shí)也意味著可以使用更大的批大小在 GPU 設(shè)備上進(jìn)行訓(xùn)練。 論文中,作者通過使用 128*128 大小的圖像進(jìn)行訓(xùn)練,ResNet-50 可以在 ImageNet 上獲得 77.1% 的 top-1 精度。使用 224224 的圖像進(jìn)行訓(xùn)練時(shí),可以得到 79.8% 的精度。此外,如果使用額外的訓(xùn)練數(shù)據(jù),在圖像大小為 224*224 時(shí),ResNet-50 可以達(dá)到 82.5% 的精度。相反,當(dāng)使用弱監(jiān)督方法訓(xùn)練 ResNext-101 32x48d 模型時(shí),使用 224*224 大小的圖像進(jìn)行訓(xùn)練,使用 320*320 大小的圖像進(jìn)行測試時(shí),模型取得了 86.4% 的 top-1 精度以及 98.0% 的 top-5 精度,這是在 ImageNet 數(shù)據(jù)庫上目前最好的模型。 圖像分類 一直是計(jì)算機(jī)視覺中的一個(gè)關(guān)鍵問題,它被廣泛的用于模型的基準(zhǔn)測試。在圖像分類任務(wù)上預(yù)訓(xùn)練的模型(通常是 ImageNet)會(huì)被遷移到其他任務(wù)中使用。此外,在圖像分類任務(wù)上的改進(jìn)也會(huì)相應(yīng)的用于提升其他任務(wù)的效果。在這篇文章中,作者使用的先進(jìn)的圖像分類模型包括 ResNeXt-101 32x48d、PNASNet-5-Large、ResNet-50 以及 EfficientNet-B7。其中主要研究工作是針對(duì) ResNet-50 進(jìn)行研究的,因?yàn)檫@個(gè)模型在性能和成本之間有良好的權(quán)衡。 數(shù)據(jù)增強(qiáng) 通常用在訓(xùn)練階段,以提高模型的泛化能力、減少過擬合。具有代表性的數(shù)據(jù)增強(qiáng)手段有:隨機(jī)裁剪、水平翻轉(zhuǎn)以及色彩抖動(dòng)。在這篇論文中,作者使用 Pytorch 提供的數(shù)據(jù)增強(qiáng)方法對(duì)通用的數(shù)據(jù)增強(qiáng)手段進(jìn)行了測試。在測試階段,使用數(shù)據(jù)增強(qiáng)手段處理同樣可以提高模型的性能,盡管這意味的前向網(wǎng)絡(luò)需要更多的計(jì)算消耗。此外,如特征金字塔這種多尺度策略會(huì)直接在網(wǎng)絡(luò)整合不同分辨率的信息,可以同時(shí)用于訓(xùn)練和測試階段,這種方法在類型級(jí)別的檢測上體現(xiàn)出了顯著的優(yōu)越性。 特征池化 一些近期的工作提出使用 p- 池化而不是平均池化使得網(wǎng)絡(luò)在測試階段可以處理比訓(xùn)練時(shí)候分辨率更高的圖像。類似的池化技巧在圖像檢索領(lǐng)域已經(jīng)使用了一段時(shí)間,這些池化技巧使用更高分辨率的圖像獲得更好的模型性能。 在數(shù)據(jù)預(yù)處理時(shí),對(duì) RoC 區(qū)域的兩個(gè)處理方法會(huì)影響到 CNN 模型的性能:
作者使用了兩部分章節(jié)來簡要說明這兩點(diǎn)對(duì)模型的影響,在下文中,“輸入圖像”指原始的訓(xùn)練或測試圖像,RoC 指輸入圖像中的矩形區(qū)域,“裁剪塊”指 RoC 中的像素點(diǎn)。作者使用雙線性插值法將裁剪塊的分辨率調(diào)節(jié)到固定大小,然后輸入 CNN 網(wǎng)絡(luò)中。 考慮下面這種圖像建模過程:照相機(jī)將 3D 世界投影到 2D 圖像上,所以目標(biāo)的表觀尺寸與其距照相機(jī)的距離是成反比的。假設(shè)一個(gè) 3D 目標(biāo)(物體)是一個(gè)尺寸為 RR(高乘寬)的立方體(與其深度無關(guān)),它與相機(jī)間的距離為 Z,同時(shí)假設(shè)有 R*R 這個(gè)面與相機(jī)成像平面平行,如下圖所示。 通過投影,該目標(biāo)被投影成一個(gè) rr 尺寸的矩形,其表觀尺寸 r 可以由 r =fR/Z 計(jì)算得到。上面這個(gè)公式可以改寫為 r = f · r_1,其中國 r_1 = R/Z,其中 r_1 的概率分布 p(r_1) 是與相機(jī)無關(guān)的。相機(jī)的焦距 f 是一個(gè)變量,大多數(shù)相機(jī)的可視角度是 [40,60]。因此對(duì)于一個(gè) HW 的圖像,其焦距可以由下面這個(gè)公式計(jì)算:f=k·sqrt(H*W),其中 sqrt 表示平方根運(yùn)算。通過這樣的定義,物體的表觀尺寸可以由其像素表示。 如果一個(gè)物體在圖像上占據(jù) rr 大小的像素區(qū)域,s 是輸入圖像與裁剪區(qū)域的縮放比,當(dāng)圖像被輸入網(wǎng)絡(luò)時(shí),目標(biāo)的實(shí)際輸入大小會(huì)變成 srsr,s 的值由預(yù)處理程序決定。以 Pytroch 中的 RandomResizeCrop 為例,對(duì)于一個(gè)輸入為 H*W 的圖像,預(yù)處理程序會(huì)對(duì)其進(jìn)行隨機(jī)裁剪和縮放,輸出一個(gè)的裁剪區(qū)域。RoC 的范圍由尺度參數(shù)σ和方向比例α共同決定,其中 其中 H_RoC 和 W_RoC 可以是在得到最終的裁剪圖像前的輸入圖像中矩形區(qū)域的長寬,H_RoC= 其中 (kK_train) 是常量,與 r 不同,r_train 不依賴于輸入圖像的尺寸 H*W。在測試階段,使用中心裁剪的方式進(jìn)行預(yù)處理,則有如下公式: 比較訓(xùn)練圖片和測試圖片表觀尺寸的計(jì)算公式,可以發(fā)現(xiàn),對(duì)于包含了目標(biāo)尺寸為 r_1 的一張圖像,經(jīng)過兩種不同的預(yù)處理手段后,兩種表觀尺寸的關(guān)系為:
通常,對(duì)于標(biāo)準(zhǔn)的 CNN 網(wǎng)絡(luò),例如 AlexNet,K^iamge_test 與 K_train 的比值為 1.15,放縮因子 sigma 的采樣范圍為 [0.28,1]。因此,對(duì)于圖片中具有相同大小的物體,在輸入網(wǎng)絡(luò)時(shí)其表觀大小在測試階段可能是訓(xùn)練階段大小的三分之一。假設(shè)預(yù)處理階段的參數(shù)都使用了標(biāo)準(zhǔn)值,這個(gè)尺寸關(guān)系的期望則為:
預(yù)處理程序除了會(huì)影響目標(biāo)的表觀大小外,還會(huì)影響到 CNN 的激活值的統(tǒng)計(jì)值。尤其是網(wǎng)絡(luò)框架允許不同大小的裁剪區(qū)域輸入時(shí)。論文的作者統(tǒng)計(jì)了 ResNet-50 在均值池化層后的激活值,結(jié)果如下圖所示: ![]() 圖 2:不同尺寸圖像輸入對(duì) ResNet-50 池化層輸出的分布影響曲線。 由于經(jīng)過了 ReLU 函數(shù),所有激活值都是非負(fù)的。在標(biāo)準(zhǔn)裁剪尺寸的設(shè)置條件下(K_test = K_train = 224),激活圖是 2048 通道的 77 相應(yīng)圖。當(dāng) K_test=64 時(shí),激活圖大小僅為 22,此時(shí)的網(wǎng)絡(luò)的響應(yīng)變得更為稀疏(0 所占的比例從 0.5 增加到了 29.8%),并且其分布更加分散。當(dāng) K_test=448 時(shí),激活圖大小為 14*14,輸出的稀疏性明顯減小,且分布更密集。 盡管增加裁剪區(qū)域的大小會(huì)影響到激活值的統(tǒng)計(jì)值,但這一操作通常對(duì)于精度的提高是有利的,因?yàn)樗梢杂行У販p少訓(xùn)練和測試時(shí)目標(biāo)的尺寸不匹配問題。作者使用 ResNet-50 在 ImageNet 數(shù)據(jù)庫上驗(yàn)證了 K_test 的改變對(duì)于模型精度的影響:
當(dāng) K_test=228 時(shí)模型的精度為 78.4%,這比訓(xùn)練時(shí)使用的 K_train=224 的效果要好。下圖中有更全面的實(shí)驗(yàn)結(jié)可以說明在測試階段使用比訓(xùn)練階段更高的分辨率可以獲得更好的模型精度。 ![]() 圖 3:K_test 對(duì)模型 Top-1 精度的影響曲線圖 基于第三部分的分析,作者針對(duì)標(biāo)準(zhǔn)數(shù)據(jù)預(yù)處理方法提出了兩個(gè)改進(jìn)。首先,測試與訓(xùn)練階段目標(biāo)尺寸的差異可以通過增加測試階段的裁剪尺寸來減少(根據(jù) 3.3 部分的實(shí)驗(yàn)觀察結(jié)果)。其次,作者微調(diào)了網(wǎng)絡(luò)在全局均值池化層前的結(jié)構(gòu),從而對(duì)測試階段裁剪區(qū)域尺寸增加引起的激活值分布的變化進(jìn)行補(bǔ)償。 3.1 部分介紹了測試與訓(xùn)練階段目標(biāo)尺寸的變化關(guān)系。如果在測試階段,通過調(diào)整 alpha 增加了 K^image_test 的尺寸,目標(biāo)的表觀尺寸也會(huì)以相同的 alpha 值增加。但是在 K_test 固定的時(shí)候增加 K^image_test 意味著網(wǎng)絡(luò)僅能看到目標(biāo)比較小的一部分。這種情況并不理想:因?yàn)榕臄z者在拍攝目標(biāo)時(shí)往往都有比較合理的構(gòu)圖,因此這種裁剪方式會(huì)導(dǎo)致目標(biāo)的細(xì)節(jié)部分丟失。因此,除了增加 K^image_test 外,作者也增加了裁剪尺寸 K_test 從而保持 通過 4.1 中的步驟,在測試和訓(xùn)練階段的目標(biāo)尺寸得到了校準(zhǔn),但是這會(huì)導(dǎo)致網(wǎng)絡(luò)的激活值的統(tǒng)計(jì)學(xué)特征發(fā)生變化,因此作者同時(shí)介紹了一個(gè)調(diào)整統(tǒng)計(jì)量的方法。
下圖為 ResNet-50 均值池化層輸出的累積分布函數(shù)(Cumulative Distribution Function,CDF),它顯示了優(yōu)化前后池運(yùn)算符的激活值的統(tǒng)計(jì)信息。微調(diào)后,激活統(tǒng)計(jì)信息與訓(xùn)練時(shí)的統(tǒng)計(jì)信息非常相似,這表明統(tǒng)計(jì)信息適應(yīng)是成功的。 ![]() 圖 4:優(yōu)化前后均值池化層輸出的激活值統(tǒng)計(jì)信息 基準(zhǔn)數(shù)據(jù)集 作者在 ImageNet-2012 數(shù)據(jù)集上對(duì)提出的數(shù)據(jù)增強(qiáng)手段進(jìn)行了驗(yàn)證。作者分別展示了 Top-1 精確度和 Top-5 精確度,前者對(duì)模型的改進(jìn)更為敏感,而后者則是一個(gè)更魯棒的評(píng)價(jià)指標(biāo)。為了對(duì)結(jié)果的顯著性進(jìn)行評(píng)估,作者使用留一法計(jì)算了 Top-1 精度的標(biāo)準(zhǔn)偏差。對(duì)于所有設(shè)置,精確度的標(biāo)準(zhǔn)差為 0.03%。因此,作者在實(shí)驗(yàn)結(jié)果中為精確度百分比保留了 1 位有效數(shù)字。 網(wǎng)絡(luò)結(jié)構(gòu) 作者使用了目前最好的標(biāo)準(zhǔn) CNN 框架,尤其是 ResNet-50 網(wǎng)絡(luò)。同時(shí)作者也在 PNASNet-5-Large 進(jìn)行了驗(yàn)證,PNASNet-5-Large 的參數(shù)量為 86.1M,Top-1 精確度達(dá)到了 82.9%。此外,作者還使用了 ResNeXt-101 32x48d 進(jìn)行驗(yàn)證,它的準(zhǔn)確率為 85.4%,模型參數(shù)達(dá)到了 829M。 訓(xùn)練方案 作者在訓(xùn)練過程中使用 SGD 對(duì)模型進(jìn)行優(yōu)化,同時(shí)使用了學(xué)習(xí)率衰減策略。所有的實(shí)驗(yàn)都是在 8 塊 TeslaV100GPU 和 80 個(gè) CPU 核心上運(yùn)行的。更多訓(xùn)練細(xì)節(jié)可參考原文 Training protocol 部分。 微調(diào)數(shù)據(jù)增強(qiáng) 作者對(duì)三種數(shù)據(jù)增強(qiáng)手段進(jìn)行了微調(diào)實(shí)驗(yàn):第一個(gè)是縮放后進(jìn)行中心裁剪(testDA),第二個(gè)是縮放后對(duì)中心裁剪區(qū)域進(jìn)行隨機(jī)水平偏移、水平翻轉(zhuǎn)與色彩抖動(dòng)(testDA2),最后一個(gè)是上文中提到的訓(xùn)練 - 測試數(shù)據(jù)增強(qiáng)(trainDA)。實(shí)驗(yàn)過程中 ResNet-50 和 PNASNet-5-Large 使用了 testDA,而 ResNeXt-101 32x48d 則使用了 testDA2。 基線結(jié)果 基線實(shí)驗(yàn)使用上面提出的數(shù)據(jù)增強(qiáng)方法提高了圖像的分辨率。重復(fù)的增強(qiáng)手段已經(jīng)將基于 PyTorch 實(shí)現(xiàn)的 ResNet-50 的 Top-1 精確度從 76.2% 提升到了 77.0%。上文中的圖 3 展示了隨著分辨率的增加,網(wǎng)絡(luò)精確度會(huì)逐漸增加。例如,使用 224 分辨率訓(xùn)練的 ResNet-50 的精確度從 77.0 上升到了 78.4。 作者給出了在 PNASNet-5-Large 以及 ResNet-101 32x48d 的實(shí)驗(yàn)結(jié)果,如表 1 所示,表一中數(shù)據(jù)均為 single-crop 的測試結(jié)果。對(duì)于 PNASNet-5-Large,作者發(fā)現(xiàn)除了對(duì)分類器和 Batch-norm 層進(jìn)行微調(diào)外,對(duì)網(wǎng)絡(luò)的最后三個(gè)單元進(jìn)行微調(diào)同樣有益處。在測試分辨率從 331 升到 480 的過程中,分類精確度提升了一個(gè)百分點(diǎn)。將該策略應(yīng)用到 10-crops 的測試方法進(jìn)行測試時(shí),分類精確度達(dá)到了 83.9%。對(duì)于 ResNeXt-101 32x48d 網(wǎng)絡(luò),當(dāng)分辨率增加到 320,模型的精確度提升了一個(gè)百分點(diǎn),達(dá)到了 86.4%。
表 2 展示了文中提到的方法與目前最好的方法的對(duì)比試驗(yàn)結(jié)果?!癘ur ResNet-50” 比 ResNet50-D 和 MultiGrain 稍差一些,但這是因?yàn)椴煌?ResNet-50 的結(jié)構(gòu)并不完全一樣。另一方面,“Our ResNet-50 CutMix” 擁有經(jīng)典的 ResNet-50 架構(gòu),優(yōu)于其他 ResNet-50,包括稍加修改的版本。經(jīng)過作者微調(diào)的 PNASNet-5 優(yōu)于 MultiGrain 版本的 PNASNet-5。目前,本文實(shí)驗(yàn)中的 ResNeXt-101 32x48d 超過了文獻(xiàn)中所有其他模型的性能。
同時(shí),作者還使用了遷移學(xué)習(xí)方法驗(yàn)證了模型在其他數(shù)據(jù)庫上的效果,詳見表 3。從表 3 可以卡出,在所有情況下,本文的數(shù)據(jù)增強(qiáng)方法都提能夠基線模型的性能。此外,我們注意到圖像分辨率越高,本文提出的數(shù)據(jù)增強(qiáng)方法的提升效果就越明顯。隨著數(shù)據(jù)集中圖像質(zhì)量的逐年提高,這點(diǎn)在如今顯得更為重要。
論文原文鏈接: https:///pdf/1906.06423v2.pdf Github 鏈接: https://github.com/facebookresearch/FixRes |
|
|