圖像的卷積和池化操作,卷積操作( 二 )


但是現在這些提升并不僅僅來源于架構的修正,還來源于訓練過程的改進:包括損失函數的優化、數據預處理方法的提煉和最優化方法的提升等 。在過去幾年中,卷積網絡與圖像分割出現大量的改進,但大多數在文獻中只作為實現細節而簡要提及,而其它還有一些技巧甚至只能在源代碼中找到 。在這篇論文中,李沐等研究者研究了一系列訓練過程和模型架構的改進方法 。
這些方法都能提升模型的準確率,且幾乎不增加任何計算復雜度 。它們大多數都是次要的「技巧」,例如修正卷積步幅大小或調整學習率策略等 ??偟膩碚f,采用這些技巧會產生很大的不同 。因此研究者希望在多個神經網絡架構和數據集上評估它們,并研究它們對最終模型準確率的影響 。研究者的實驗表明,一些技巧可以顯著提升準確率,且將它們組合在一起能進一步提升模型的準確率 。
研究者還對比了基線 ResNet 、加了各種技巧的 ResNet、以及其它相關的神經網絡,下表 1 展示了所有的準確率對比 。這些技巧將 ResNet50 的 Top-1 驗證準確率從 75.3%提高到 79.29%,還優于其他更新和改進的網絡架構 。此外,研究者還表示這些技巧很多都可以遷移到其它領域和數據集,例如目標檢測和語義分割等 。
論文:Bag of Tricks for Image Classification with Convolutional Neural Networks論文地址:https://arxiv.org/pdf/1812.01187.pdf摘要:圖像分類研究近期的多數進展都可以歸功于訓練過程的調整,例如數據增強和優化方法的變化 。
然而,在這些文獻中,大多數微調方法要么被簡單地作為實現細節,或僅能在源代碼中看到 。在本文中,我們將測試一系列的微調方法,并通過控制變量實驗評估它們對最終準確率的影響 。我們將展示通過組合不同的微調方法,我們可以顯著地改善多種 CNN 模型 。例如,我們將 ImageNet 上訓練的 ResNet-50 的 top-1 驗證準確率從 75.3% 提升到 79.29 。
本研究還表明,圖像分類準確率的提高可以在其他應用領域(如目標檢測和語義分割)中實現更好的遷移學習性能 。2 訓練過程目前我們基本上都用小批量 SGD 或其變體訓練神經網絡,Algorithm 1 展示了 SGD 的模版過程(感興趣的讀者可以查閱原論文) 。利用廣泛使用的 ResNet 實現作為我們的基線,訓練過程主要分為以下六個步驟:隨機采樣一張圖片,并解碼為 32 位的原始像素浮點值,每一個像素值的取值范圍為 [0, 255] 。
隨機以 [3/4, 4/3] 為長寬比、[8%, 100%] 為比例裁減矩形區域,然后再縮放為 224*224 的方圖 。以 0.5 的概率隨機水平翻轉圖像 。從均勻分布 [0.6, 1.4] 中抽取系數,并用于縮放色調和明亮度等 。從正態分布 N (0, 0.1) 中采樣一個系數,以添加 PCA 噪聲 。圖像分別通過減去(123.68, 116.779, 103.939),并除以(58.393, 57.12, 57.375)而獲得經歸一化的 RGB 三通道 。
經過六步后就可以訓練并驗證了,以下展示了基線模型的準確率:表 2:文獻中實現的驗證準確率與我們基線模型的驗證準確率,注意 Inception V3 的輸入圖像大小是 299*299 。3 高效訓練隨著 GPU 等硬件的流行,很多與性能相關的權衡取舍或最優選擇都已經發生了改變 。在這一章節中,我們研究了能利用低精度和大批量訓練優勢的多種技術,它們都不會損害模型的準確率,甚至有一些技術還能同時提升準確率與訓練速度 。
3.1 大批量訓練對于凸優化問題,隨著批量的增加,收斂速度會降低 。人們已經知道神經網絡會有類似的實證結果 [25] 。換句話說,對于相同數量的 epoch,大批量訓練的模型與使用較小批量訓練的模型相比,驗證準確率會降低 。因此有很多方法與技巧都旨在解決這個問題:線性擴展學習率:較大的批量會減少梯度的噪聲,從而可以增加學習率來加快收斂 。

推薦閱讀