当前位置: 首页 > news >正文

卷积神经网络进阶:转置卷积与棋盘效应详解

【内容摘要】
本文深入解析卷积神经网络中的转置卷积(反卷积)技术,重点阐述标准卷积转置卷积的计算过程、转置卷积上采样作用,以及其常见问题——棋盘效应的产生原因与解决方法,为图像分割、超分辨率等任务提供理论支持。

关键词: 转置卷积 反卷积 棋盘效应 标准卷积 上采样 卷积神经网络


卷积神经网络(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] = 000014025

    • (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] = 121000121

  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=1nAikBkj)(这里(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=(in1)×s+k
其中,in为输入大小,s为步长,k为卷积核大小。代入数值得:
o u t = ( 2 − 1 ) × 3 + 4 = 7 out = (2-1)×3 + 4 = 7 out=(21)×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中实现上采样的重要工具,但其引入的棋盘效应需特别关注。通过理解标准卷积转置卷积的数学本质,合理设计卷积核尺寸与步长,可有效规避棋盘效应,提升模型在语义分割、超分辨率等任务中的性能。

相关文章:

  • esp32课设记录(二)lcd屏显示文字与照片
  • 雷军直面小米危机:SU7 事故余波未平,玄戒 O1 力挽狂澜
  • 水平可见直线--上凸包(andrew算法
  • 【藏经阁】加密机服务完整解决方案,包含客户端+服务端
  • AI:OpenAI论坛分享—《AI重塑未来:技术、经济与战略》
  • 【方法论】如何构建金字塔框架
  • 实操分享java应用容器化,使用docker作为容器工具
  • Cursor:简单三步提高生成效率
  • 想要建站但没有服务器?雨云RCA,免服务器即可搭建完整网站!!!
  • 目标检测新突破:用MSBlock打造更强YOLOv8
  • 基于 STM32 的全自动洗车监控系统设计与实现
  • 我的电赛(简易的波形发生器大一暑假回顾)
  • 学习黑客HTTP 请求头
  • MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
  • 第三十六节:特征检测与描述-特征匹配
  • 2025年PMP 学习二十 第13章 项目相关方管理
  • 【QGIS二次开发】地图编辑-06
  • python3GUI--智慧交通分析平台:By:PyQt5+YOLOv8(详细介绍)
  • 算法篇----二分查找
  • O2O电商变现:线上线下相互导流——基于定制开发开源AI智能名片S2B2C商城小程序的研究
  • 肖钢:一季度证券业金融科技投资强度在金融各子行业中居首
  • LPR名副其实吗?如果有所偏离又该如何调整?
  • 男子聚餐饮酒后身亡,同桌3人被判赔偿近20万元
  • 蒲慕明院士:未来数十年不是AI取代人,而是会用AI的人取代不会用的
  • 广西壮族自治区党委副书记、自治区政府主席蓝天立接受审查调查
  • 中国进出口银行:1-4月投放制造业中长期贷款超1800亿元