本文來自公衆号CV技術指南的技術總結系列
歡迎關注CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
前言
本文介紹了兩個實驗,展示了padding在深度學習模型中的影響。
實驗一
卷積是平移等變的:将輸入圖像平移 1 個像素,輸出圖像也平移 1 個像素(見圖 1)。如果我們對輸出應用全局平均池化(即對所有像素值求和),我們會得到一個平移不變模型:無論我們如何平移輸入圖像,輸出都将保持不變。
在 PyTorch 中,模型如下所示:y = torch.sum(conv(x), dim=(2, 3)) 輸入 x,輸出 y。

圖 1:頂部:包含一個白色像素的輸入圖像(原始和 1 個像素移位版本)。中:卷積核。底部:輸出圖像及其像素總和。
是否可以使用此模型來檢測圖像中像素的絕對位置?
對于像所描述的那樣的平移不變模型,它應該是不可能的。
讓我們訓練這個模型對包含單個白色像素的圖像進行分類:如果像素在左上角,它應該輸出 1,否則輸出 0。訓練很快收斂,在一些圖像上測試二進制分類器表明它能夠完美地檢測像素位置(見圖 2)。
圖 2:頂部:輸入圖像和分類結果。底部:輸出圖像和像素總和。
模型如何學習對絕對像素位置進行分類?這僅可能由于我們使用的填充類型:
- 圖 3 顯示了經過一些 epoch 訓練後的卷積核
- 當使用“same”填充(在許多模型中使用)時,核心中心在所有圖像像素上移動(隐式假設圖像外的像素值為 0)
- 這意味着核心的右列和底行永遠不會“接觸”圖像中的左上像素(否則核心中心将不得不移出圖像)
- 但是,當在圖像上移動時,核心的右列和/或底行會接觸所有其他像素
- 我們的模型利用了像素處理方式的差異
- 隻有正(黃色)核心值應用于左上白色像素,進而隻産生正值,這給出了正和
- 對于所有其他像素位置,還應用了強負核心值(藍色、綠色),這給出了負和
圖 3:3×3 卷積核。
盡管模型應該是平移不變的,但事實并非如此。問題發生在由所使用的填充類型引起的圖像邊界附近。
實驗二
輸入像素對輸出的影響是否取決于其絕對位置?
讓我們再次嘗試使用隻有一個白色像素的黑色圖像。該圖像被送入由一個卷積層組成的神經網絡(所有核心權重設定為 1,偏置項設定為 0)。輸入像素的影響是通過對輸出圖像的像素值求和來衡量的。“valid”填充意味着完整的核心保持在輸入圖像的邊界内,而“same”填充已經定義。
圖 4 顯示了每個輸入像素的影響。對于“valid”填充,結果如下所示:
- 核心接觸圖像角點的位置隻有一個,角點像素的值為 1 反映了這一點
- 對于每個邊緣像素,3×3 核心在 3 個位置接觸該像素
- 對于一般位置的像素,有 9 個核位置,像素和核接觸
圖 4:将單個卷積層應用于 10×10 圖像。左:“same”填充。右:“valid”填充。
邊界附近像素對輸出的影響遠低于中心像素,當相關圖像細節靠近邊界時,這可能會使模型失敗。對于“same相同”填充,效果不那麼嚴重,但從輸入像素到輸出的“路徑”較少。
最後的實驗(見圖 5)顯示了當從 28×28 輸入圖像(例如,來自 MNIST 資料集的圖像)開始并将其輸入具有 5 個卷積層的神經網絡(例如,一個簡單的 MNIST 分類器可能看起來像這樣)。特别是對于“valid”填充,現在存在模型幾乎完全忽略的大圖像區域。
圖 5:将五個卷積層應用于 28×28 圖像。左:“same”填充。右:“valid”填充。
結論
這兩個實驗表明,填充的選擇很重要,一些糟糕的選擇可能會導緻模型性能低下。有關更多詳細資訊,請參閱以下論文,其中還提出了如何解決問題的解決方案:
1. MIND THE PAD – CNNS CAN DEVELOP BLIND SPOTS
2. On Translation Invariance in CNNs: Convolutional Layers can Exploit Absolute Spatial Location
作者:Harald Scheidl
編譯:CV技術指南
原文連結:https://harald-scheidl.medium.com/does-padding-matter-in-deep-learning-models-176ed68fa348
歡迎關注公衆号 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
在公衆号中回複關鍵字 “技術總結”可擷取公衆号原創技術總結文章的彙總pdf。
其它文章
CV技術指南--精華文章彙總分類
神經網絡超參數的調參方法總結
使用 Ray 将 PyTorch 模型加載速度提高 340 倍
計算機視覺中的圖像标注工具總結
輕量化模型系列--GhostNet:廉價操作生成更多特征
ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識别
CVPR2021 | 重新思考BatchNorm中的Batch
ICCV2021 | 重新思考視覺transformers的空間次元
CVPR2021 | Transformer用于End-to-End視訊執行個體分割
ICCV2021 |(騰訊優圖)重新思考人群中的計數和定位:一個純粹基于點的架構
卷積神經網絡的複雜度分析
2021年小目标檢測最新研究綜述
計算機視覺中的自注意力
綜述專欄 | 姿态估計綜述
漫談CUDA優化
為什麼GEMM是深度學習的核心
使用深度神經網絡為什麼8位足夠?
經典論文系列--膠囊網絡:新的深度學習網絡
經典論文系列 | 目标檢測--CornerNet & 又名 anchor boxes的缺陷
如何看待人工智能的泡沫
使用Dice loss實作清晰的邊界檢測
PVT--無卷積密集預測的多功能backbone
CVPR2021 | 開放世界的目标檢測
Siamese network總結
計算機視覺專業術語總結(一)建構計算機視覺的知識體系
欠拟合與過拟合技術總結
歸一化方法總結
論文創新的常見思路總結
CV方向的高效閱讀英文文獻方法總結
計算機視覺中的小樣本學習綜述
知識蒸餾的簡要概述
計算機視覺中的特征金字塔技術總結
計算機視覺中的注意力機制技術總結
文字識别OCR開源架構的對比--Tesseract vs EasyOCR
計算機視覺的高效閱讀英文文獻方法總結
計算機視覺中的小樣本學習綜述
知識蒸餾的簡要概述
損失函數技術總結
CVPR2021|PVT--無卷積密集預測的多功能backbone
CVPR2021|特征金字塔的新方式YOLOF
CVPR2021 | 華為諾亞實驗室提出Transformer in Transformer
CVPR2021| 繼SE,CBAM後的一種新的注意力機制Coordinate Attention
經典論文系列 | 重新思考在ImageNet上的預訓練