卷積神經網絡進階:轉置卷積與棋盤效應詳解

【內容摘要】
本文深入解析卷積神經網絡中的轉置卷積(反卷積)技術,重點闡述標準卷積轉置卷積的計算過程、轉置卷積上采樣作用,以及其常見問題——棋盤效應的產生原因與解決方法,為圖像分割、超分辨率等任務提供理論支持。

關鍵詞: 轉置卷積 反卷積 棋盤效應 標準卷積 上采樣 卷積神經網絡


卷積神經網絡(CNN)中,轉置卷積(Transposed Convolution,又稱反卷積Deconvolution)是實現特征圖上采樣的關鍵技術,廣泛應用于語義分割、超分辨率等需要恢復空間分辨率的任務中。本文將從標準卷積的計算原理出發,詳細解析轉置卷積的操作過程,并重點討論其常見問題——棋盤效應的產生機制與解決方法。

一、標準卷積的計算過程

要理解轉置卷積,首先需要明確標準卷積的運算方式。標準卷積是通過卷積核對輸入特征圖進行滑窗點乘求和的過程,其核心步驟包括卷積核旋轉(通常為180°)、中心對齊與局部區域計算。

以圖1所示的標準卷積輸出計算為例,輸入為一個3×3的像素矩陣,卷積核為3×3的矩陣(值為[-1,-2,-1;0,0, 0;1,2, 1])。計算左上角(第1行第1列)像素的卷積值時,需將卷積核旋轉180°后與輸入矩陣的左上角3×3區域對齊,逐元素相乘后求和:

  1. (x)矩陣和(h)矩陣

    • (x)矩陣:

      X = [ x [ ? 1 , ? 1 ] x [ 0 , ? 1 ] x [ 1 , ? 1 ] x [ ? 1 , 0 ] x [ 0 , 0 ] x [ 1 , 0 ] x [ ? 1 , 1 ] x [ 0 , 1 ] x [ 1 , 1 ] ] = [ 0 0 0 0 1 2 0 4 5 ] X=\begin{bmatrix} x[-1,-1]&x[0,-1]&x[1,-1]\\ x[-1,0]&x[0,0]&x[1,0]\\ x[-1,1]&x[0,1]&x[1,1] \end{bmatrix}=\begin{bmatrix} 0&0&0\\ 0&1&2\\ 0&4&5 \end{bmatrix} X= ?x[?1,?1]x[?1,0]x[?1,1]?x[0,?1]x[0,0]x[0,1]?x[1,?1]x[1,0]x[1,1]? ?= ?000?014?025? ?

    • (h)矩陣:

      H = [ h [ 1 , 1 ] h [ 1 , 0 ] h [ 1 , ? 1 ] h [ 0 , 1 ] h [ 0 , 0 ] h [ 0 , ? 1 ] h [ ? 1 , 1 ] h [ ? 1 , 0 ] h [ ? 1 , ? 1 ] ] = [ 1 0 ? 1 2 0 ? 2 1 0 ? 1 ] H=\begin{bmatrix} h[1,1]&h[1,0]&h[1,-1]\\ h[0,1]&h[0,0]&h[0,-1]\\ h[-1,1]&h[-1,0]&h[-1,-1] \end{bmatrix}=\begin{bmatrix} 1&0& - 1\\ 2&0& - 2\\ 1&0& - 1 \end{bmatrix} H= ?h[1,1]h[0,1]h[?1,1]?h[1,0]h[0,0]h[?1,0]?h[1,?1]h[0,?1]h[?1,?1]? ?= ?121?000??1?2?1? ?

  2. 矩陣運算過程

    • 這里計算(y[0,0])相當于計算矩陣(X)和(H)的一種特殊卷積形式(在這種小矩陣情況下類似矩陣乘法的元素對應相乘再求和),從矩陣乘法角度看,可看作是對矩陣元素對應相乘后求和。
    • 按照矩陣乘法規則( C i j = ∑ k = 1 n A i k B k j C_{ij}=\sum_{k = 1}^{n}A_{ik}B_{kj} Cij?=k=1n?Aik?Bkj?)(這里(n = 3) ),對于(y[0,0]),它等于(X)和(H)對應元素乘積之和。
    • 具體計算:

y [ 0 , 0 ] = X ? H T = x [ ? 1 , ? 1 ] ? h [ 1 , 1 ] + x [ 0 , ? 1 ] ? h [ 0 , 1 ] + x [ 1 , ? 1 ] ? h [ ? 1 , 1 ] + x [ ? 1 , 0 ] ? h [ 1 , 0 ] + x [ 0 , 0 ] ? h [ 0 , 0 ] + x [ 1 , 0 ] ? h [ ? 1 , 0 ] + x [ ? 1 , 1 ] ? h [ 1 , ? 1 ] + x [ 0 , 1 ] ? h [ 0 , ? 1 ] + x [ 1 , 1 ] ? h [ ? 1 , ? 1 ] = 0 × 1 + 0 × 2 + 0 × 1 + 0 × 0 + 1 × 0 + 2 × 0 + 0 × ( ? 1 ) + 4 × ( ? 2 ) + 5 × ( ? 1 ) \begin{align*} y[0,0]=X \cdot\ H^T&=x[-1,-1]\cdot h[1,1]+x[0,-1]\cdot h[0,1]+x[1,-1]\cdot h[-1,1]\\ &+x[-1,0]\cdot h[1,0]+x[0,0]\cdot h[0,0]+x[1,0]\cdot h[-1,0]\\ &+x[-1,1]\cdot h[1,-1]+x[0,1]\cdot h[0,-1]+x[1,1]\cdot h[-1,-1]\\ &=0\times1 + 0\times2+0\times1+0\times0 + 1\times0+2\times0+0\times(-1)+4\times(-2)+5\times(-1) \end{align*} y[0,0]=X??HT?=x[?1,?1]?h[1,1]+x[0,?1]?h[0,1]+x[1,?1]?h[?1,1]+x[?1,0]?h[1,0]+x[0,0]?h[0,0]+x[1,0]?h[?1,0]+x[?1,1]?h[1,?1]+x[0,1]?h[0,?1]+x[1,1]?h[?1,?1]=0×1+0×2+0×1+0×0+1×0+2×0+0×(?1)+4×(?2)+5×(?1)?

通過滑動卷積核(步長為1),最終得到3×3的輸出特征圖(圖2為更直觀的卷積值計算過程示意圖)。

在這里插入圖片描述
在這里插入圖片描述

圖1:標準卷積輸出計算

在這里插入圖片描述

圖2:更直觀的卷積值計算過程示意圖

二、轉置卷積的操作原理

轉置卷積的核心目標是將小尺寸的特征圖上采樣為大尺寸特征圖,其名稱源于其數學本質是標準卷積轉置操作(即矩陣運算中的轉置)。以下通過具體示例說明其計算過程。

假設輸入特征圖大小為2×2,卷積核大小為4×4,滑動步長為3,輸出特征圖大小可通過公式計算:
o u t = ( i n ? 1 ) × s + k out = (in-1)×s + k out=(in?1)×s+k
其中,in為輸入大小,s為步長,k為卷積核大小。代入數值得:
o u t = ( 2 ? 1 ) × 3 + 4 = 7 out = (2-1)×3 + 4 = 7 out=(2?1)×3+4=7
即輸出特征圖為7×7。

轉置卷積的具體步驟如下(圖3為圖像的轉置卷積過程示意圖):

  1. 全卷積展開:輸入特征圖的每個像素獨立進行全卷積(即填充后卷積),每個像素生成一個4×4的特征圖(大小為1+4-1=4)。輸入有4個像素,因此生成4個4×4的特征圖。
  2. 步長疊加:將4個特征圖按步長3進行疊加,重疊區域的像素值相加。例如,輸出的第1行第4列像素由第一個特征圖的第1行第4列與第二個特征圖的第1行第1列相加得到。

在這里插入圖片描述

圖3:圖像的轉置卷積過程

三、棋盤效應的產生與解決

轉置卷積雖能有效上采樣常伴隨“棋盤效應”(Checkerboard Artifacts),即輸出圖像中出現類似棋盤格的不均勻色塊(圖4為棋盤效應示意圖)。

在這里插入圖片描述

圖4:棋盤效應示意圖

(一)產生原因

棋盤效應的本質是卷積核大小無法被步長整除時的不均勻重疊。以圖5為例,當卷積步長為2,卷積核尺寸為3或5時,輸出像素接收到的輸入信息量不一致:

  • 若卷積核尺寸能被步長整除(如步長2、核尺寸4),輸出像素的信息重疊均勻,無棋盤效應
  • 若無法整除(如步長2、核尺寸3),相鄰像素的信息重疊量不同,導致局部顏色深淺不一。

在這里插入圖片描述

圖5:卷積步長改為2時的棋盤效應示意圖

(二)解決方法

為減輕或避免棋盤效應,可采用以下策略:

  1. 匹配核尺寸與步長:確保卷積核大小能被步長整除,例如步長2時選擇核尺寸4,避免不均勻重疊;
  2. 使用步長1的轉置卷積:步長為1時,卷積核的重疊區域均勻,可有效減少棋盤效應
  3. 替代上采樣方法:如采用雙線性插值、最近鄰插值等傳統上采樣方法,或結合轉置卷積與像素重組(Pixel Shuffle)技術。

四、總結

轉置卷積是CNN中實現上采樣的重要工具,但其引入的棋盤效應需特別關注。通過理解標準卷積轉置卷積的數學本質,合理設計卷積核尺寸與步長,可有效規避棋盤效應,提升模型在語義分割、超分辨率等任務中的性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81686.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81686.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81686.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis進階知識

Redis 1.事務2. 主從復制2.1 如何啟動多個Redis服務器2.2 監控主從節點的狀態2.3 斷開主從復制關系2.4 額外注意2.5拓撲結構2.6 復制過程2.6.1 數據同步 3.哨兵選舉原理注意事項 4.集群4.1 數據分片算法4.2 故障檢測 5. 緩存5.1 緩存問題 6. 分布式鎖 1.事務 Redis的事務只能保…

SDC命令詳解:使用get_libs命令進行查詢

相關閱讀 SDC命令詳解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 get_libs命令用于創建一個庫對象集合,關于設計對象和集合的更詳細介紹,可以參考下面的博客。需要注意的是,在有些工具中還存在…

idea2024 不知道安裝了什么插件,界面都是中文的了,不習慣,怎么修改各個選項改回英文

如果你的 IntelliJ IDEA 2024 突然變成中文界面,很可能是安裝了中文語言包插件(如 “Chinese (Simplified) Language Pack”)。以下是 徹底恢復英文界面 的方法: 方法 1:直接卸載中文插件(推薦)…

物流項目第二期(用戶端登錄與雙token三驗證)

第一期內容: 物流項目第一期(登錄業務)-CSDN博客 用戶端登錄 實現分析 登錄功能 Data public class UserLoginRequestVO {ApiModelProperty("登錄臨時憑證")private String code;ApiModelProperty("手機號臨時憑證"…

精準掌控張力動態,重構卷對卷工藝設計

一、MapleSim Web Handling Library仿真和虛擬調試解決方案 在柔性材料加工領域,卷對卷(Roll-to-Roll)工藝的效率與質量直接決定了產品競爭力。如何在高動態生產場景中實現張力穩定、減少斷裂風險、優化加工速度,是行業長期面臨的…

Voxblox算法

文章目錄 1. 算法簡介2. 由 TSDF 構建 ESDF 的方法2.1. 論文解讀2.2. 偽代碼實現 1. 算法簡介 Voxblox 算法出現于文獻《Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning》,PDF 鏈接:https://arxiv.org/pdf/1611.…

計算機圖形學基礎--Games101筆記(一)數學基礎與光柵化

文章目錄 數學基礎向量插值三角形插值雙線性插值 平面定義法線-點表示 第一部分:光柵化坐標變換二維變換3D變換視圖變換(MVP)投影變換 光柵化采樣抗鋸齒(反走樣)可見性(遮擋) 著色與紋理Blinn-P…

@RequestParam 和 @RequestBody、HttpServletrequest 與HttpServletResponse

在Java Web開發中,RequestParam、RequestBody、HttpServletRequest 和 HttpServletResponse 是常用的組件,它們用于處理HTTP請求和響應。下面分別介紹它們的使用場景和使用方法: 1. RequestParam RequestParam 是Spring MVC框架中的注解&am…

【硬核數學】2. AI如何“學習”?微積分揭秘模型優化的奧秘《從零構建機器學習、深度學習到LLM的數學認知》

在上一篇中,我們探索了線性代數如何幫助AI表示數據(向量、矩陣)和變換數據(矩陣乘法)。但AI的魅力遠不止于此,它最核心的能力是“學習”——從數據中自動調整自身,以做出越來越準確的預測或決策…

10.15 LangChain v0.3重磅升級:Tool Calling技術顛覆大模型工具調用,效率飆升300%!

LangChain v0.3 技術生態與未來發展:支持 Tool Calling 的大模型 關鍵詞:LangChain Tool Calling, 大模型工具調用, @tool 裝飾器, ToolMessage 管理, Few-shot Prompting 1. Tool Calling 的技術革新 LangChain v0.3 的工具調用(Tool Calling)功能標志著大模型應用開發進…

[架構之美]從PDMan一鍵生成數據庫設計文檔:Word導出全流程詳解(二十)

[架構之美]從PDMan一鍵生成數據庫設計文檔:Word導出全流程詳解(二十) 一、痛點 你是否經歷過這些場景? 數據庫字段頻繁變更,維護文檔耗時費力用Excel維護表結構,版本混亂難以追溯手動編寫Word文檔&#…

Image and depth from a conventional camera with a coded aperture論文閱讀

Image and depth from a conventional camera with a coded aperture 1. 研究目標與實際意義1.1 研究目標1.2 實際問題與產業意義2. 創新方法:編碼光圈設計與統計模型2.1 核心思路2.2 關鍵公式與模型架構2.2.1 圖像形成模型2.2.2 深度可區分性準則2.2.3 統計模型與優化框架2.2…

JMeter 教程:使用 HTTP 請求的參數列表發送 POST 請求(form 表單格式)

目錄 ? 教程目的 🛠? 準備工作 📄 操作步驟 第一步:新建測試計劃 第二步:添加 HTTP 請求 第三步:添加參數列表(表單參數) 第四步:添加結果查看器 第五步:運行測…

交易所開發:構建功能完備的金融基礎設施全流程指南

交易所開發:構建功能完備的金融基礎設施全流程指南 ——從技術架構到合規安全的系統性解決方案 一、開發流程:從需求分析到運維優化 開發一款功能完備的交易所需要遵循全生命周期管理理念,涵蓋市場定位、技術實現、安全防護和持續迭代四大階…

【數據結構篇】排序1(插入排序與選擇排序)

注:本文以排升序為例 常見的排序算法: 目錄: 一 直接插入排序: 1.1 基本思想: 1.2 代碼: 1.3 復雜度: 二 希爾排序(直接插入排序的優化): 2.1 基本思想…

Cursor日常配置指南

文章目錄 整體說明一、簡單介紹1.1、簡介1.2、功能 二、日常配置2.1、Profiles 簡介2.2、Cursor 配置2.2.1、通用設置(General)2.2.2、功能設置(Features)2.2.2.1、長上下文(Large context)2.2.2.2、代碼索…

客戶體驗數據使用的三種視角——旅程視角

企業收集到大量的客戶體驗數據之后,應該如何應用?有哪些主要的使用場景和分析視角呢?接下來,體驗家團隊將通過三篇文章陸續介紹體驗數據的三種應用場景,以幫助企業更有效地利用體驗數據進行改進。 這三個場景分別是…

大語言模型怎么進行記憶的

大語言模型怎么進行記憶的 大語言模型(LLM)本身是無狀態的,每次輸入獨立處理,但可通過以下方式實現對話記憶及長期記憶能力: 模型架構改進 顯式記憶模塊: 記憶網絡(Memory Networks) :在模型里嵌入可讀寫的記憶單元,像鍵值存儲 (Key - Value Memory)或動態記憶矩…

Spring Boot 與 RabbitMQ 的深度集成實踐(三)

高級特性實現 消息持久化 在實際的生產環境中,消息的可靠性是至關重要的。消息持久化是確保 RabbitMQ 在發生故障或重啟后,消息不會丟失的關鍵機制。它涉及到消息、隊列和交換機的持久化配置。 首先,配置隊列持久化。在創建隊列時&#xf…

成功案例丨GEZE與Altair合作推動智能建筑系統開發

Altair 作為計算智能領域的全球領導者,將分別在北京、上海、成都、深圳舉辦 “AI驅動,仿真未來”Altair 區域技術交流會。屆時將匯聚行業專家與先鋒企業,共同探討仿真智能化如何賦能工業創新,分享最新仿真與 AI 技術的應用實踐。歡…