卷积类型总结

1. 标准卷积 (Convolution)

在这里插入图片描述

  • 原理: 一个包含 K 个滤波器的卷积层(每个滤波器大小为 FxF x C_in)在输入特征图上滑动。在每个位置,滤波器与输入图像的局部区域进行逐元素相乘再求和(点积运算),得到一个输出值。滑动完整个输入后,每个滤波器生成一个二维特征图(或称激活图)。K 个滤波器就产生 K 个特征图,即输出通道数为 C_out = K
  • 关键参数:
    • 核大小 (Kernel Size - F): 感受野大小,决定了看到输入中多大区域(如 3x3, 5x5)。
    • 步长 (Stride - S): 卷积核每次滑动的像素数。S=1 每次移动 1 像素,输出较大;S=2 每次移动 2 像素,输出缩小约一半。
    • 填充 (Padding - P): 在输入特征图边界外围填充像素(通常为 0)。"valid" 表示不填充;"same" 表示填充使得输出空间尺寸(宽/高)与输入相同(当 S=1 时)。
    • 输入通道数 (C_in): 输入数据的通道数(如 RGB 图像 C_in=3)。
    • 输出通道数 (C_out / K): 使用的滤波器数量,决定输出特征图的深度。
  • 输出尺寸计算 (每个空间维度): W_out = (W_in - F + 2P) / S + 1 (结果向下取整)
  • 计算量: 高。每个输出像素需要 F * F * C_in 次乘加操作。总计算量 ≈ W_out * H_out * C_out * F * F * C_in
  • 例子 (输入 8x8x3):
    • 使用 K=43x3 卷积核 (F=3)。
    • 步长 S=1,填充 P=0 (valid)。
    • 输出形状:6x6x4

特征图和卷积核通道大小一样;通道一一对应进行卷积操作,再相加得到最后一张特征图。


2. 步长卷积 (Strided Convolution)

  • 原理: 是标准卷积的一个特例,其步长 S > 1。主要目的是对特征图进行下采样(Downsampling),显著减少特征图的空间尺寸(宽/高)和后续计算量。步长 S=2 是最常用的下采样方式。
  • 效果: 实现了空间维度的降维,同时(通常)增加通道维度以捕获更抽象的特征。
  • 输出尺寸计算: 同标准卷积公式 W_out = (W_in - F + 2P) / S + 1
  • 例子 (输入 8x8x3):
    • 使用 K=63x3 卷积核 (F=3)。
    • 步长 S=2,填充 P=1 (常用 "same" 填充策略,这里 P=1 使得 (8-3+2)/2+1=4,是整数)。
    • 输出形状:4x4x6。空间尺寸减半 (8->4),通道数增加 (3->6)。

3. 反卷积 / 转置卷积 (Deconvolution / Transposed Convolution)

在这里插入图片描述

  • 原理: 不是真正的卷积逆运算。它的目的是上采样(Upsampling),即增大特征图的空间尺寸(宽/高)。可以理解为一种“逆向”的、带步长的卷积过程:
    1. 在输入特征图的像素之间插入 (S-1) 个零 (S 是设定的上采样步长,通常为 2)。
    2. 在扩展后的特征图上进行一个标准的卷积操作(通常 F=34, S=1, 并配合适当的填充 P)。
  • 效果: 将低分辨率、高通道数的特征图,上采样为高分辨率、低通道数(或保持通道数)的特征图。常用于图像分割(U-Net)、生成模型(GANs)中的解码器部分。
  • 输出尺寸计算 (常见公式): W_out = S * (W_in - 1) + F - 2P (另一种理解:可以看作是步长为 S 的标准卷积的梯度计算过程,导致输出尺寸放大)。
  • 例子 (输入 4x4x6,上采样回接近 8x8):
    • 输入形状:4x4x6 (例如步长卷积的输出)。
    • 使用 K=33x3 卷积核 (F=3) 进行转置卷积。
    • 上采样步长 S=2
    • 填充 P=1 (常用设置,确保输出尺寸计算为整数)。
    • 计算过程:
      • 4x4 输入的空间维度上,每个像素之间插入 (2-1)=1 个零。行间、列间都插零。
      • 插入零后,特征图尺寸变为 (4 + (4-1)*1) = 7 -> 7x7x6 (更准确:原 4x4,行间插 1 行零 -> 变成 7x4,再在列间插 1 列零 -> 变成 7x7)。
      • 7x7x6 的特征图上,进行标准的 3x3 卷积 (S=1, P=1)。
      • 标准卷积输出尺寸:(7 - 3 + 2*1) / 1 + 1 = (6) + 1 = 7 -> 7x7x3
    • 输出形状:7x7x3 (接近原始的 8x8x3)。可以看到空间尺寸从 4x4 增大到了 7x7,通道数从 6 减少回 3

反卷积(转置卷积)卷积是对输入图像提取出特征(可能尺寸会变小),而所谓的“反卷积”便是进行相反的操作。但这里说是“反卷积”并不严谨,因为并不会完全还原到跟输入图像一样,一般是还原后的尺寸与输入图像一致,主要用于向上采样。从数学计算上看,“反卷积”相当于是将卷积核转换为稀疏矩阵后进行转置计算,因此,也被称为“转置卷积”。如上图,在2x2的输入图像上应用步长为1、边界全0填充的3x3卷积核,进行转置卷积(反卷积)计算,向上采样后输出的图像大小为4x4。


4. 可分离卷积 (Separable Convolution)

  • 原理: 将一个标准的 F x F 卷积分解为两个连续的、计算量更小的操作
    1. 深度卷积 (Depthwise Convolution - DWConv): 对输入的每个通道单独使用一个 F x F 卷积核进行空间卷积。输入有 C_in 个通道,就使用 C_inF x F x 1 的滤波器。通道之间不混合。 输出还是 C_in 个通道。
    2. 逐点卷积 (Pointwise Convolution - PWConv / 1x1 Convolution): 使用 K1x1 x C_in 的卷积核。它只关注通道维度的混合,将深度卷积输出的 C_in 个通道的信息线性组合成 C_out (即 K) 个通道。不改变空间尺寸。
  • 效果: 大幅降低计算量和参数量,同时基本保持了标准卷积的表达能力(尤其当空间相关性和通道相关性可以解耦时)。是轻量化网络的基础。
  • 计算量对比 (标准 vs 可分离):
    • 标准 FxF Conv: W_out * H_out * C_out * F * F * C_in
    • 可分离 Conv (DW+PW):
      • DWConv: W_out * H_out * C_in * F * F * 1 (每个通道独立计算)
      • PWConv: W_out * H_out * C_out * 1 * 1 * C_in
      • 总计: W_out * H_out * C_in * (F*F + C_out)
    • 计算量减少比例: (F*F + C_out) / (F*F * C_out)。例如 F=3, C_in=C_out=32,比例约为 (9+32)/(9*32) = 41/288 ≈ 1/7
  • 例子 (输入 8x8x3):
    • 目标输出通道数 C_out=4
    • 步骤1: 深度卷积 (DWConv)
      • 使用 33x3x1 的滤波器 (因为输入有 3 个通道)。
      • 每个滤波器只在对应的一个输入通道上滑动卷积 (S=1, P=0)。输出 36x6 的特征图 ((8-3+0)/1+1=6)。
      • DW 输出形状:6x6x3
    • 步骤2: 逐点卷积 (PWConv / 1x1 Conv)
      • 使用 41x1x3 的滤波器。
      • 6x6x3 的输入上滑动 (S=1, P=0)。每个 1x1 核与所有 3 个通道的同一位置像素做点积,输出 1 个像素值。4 个滤波器产生 4 个通道。
      • 最终输出形状:6x6x4 (与标准 3x3 卷积 S=1, P=0 的结果相同)。
    • 关键: 可分离卷积 (3x3 DW + 1x1 PW) 达到了和标准 3x3 卷积相同的空间变换 (8x8->6x6) 和通道变换 (3->4),但计算量和参数大大减少。

5. 深度可分离卷积 (Depthwise Separable Convolution)

在这里插入图片描述

  • 原理: 就是上面描述的可分离卷积 (Depthwise Conv + Pointwise Conv)! 这两个术语在绝大多数现代深度学习文献和框架(如 TensorFlow, PyTorch)中被视为同义词。它是 MobileNet 等高效架构的核心组件。
  • 强调点: 它明确包含了两个步骤:1) 按通道分离的空间卷积 (Depthwise),2) 通道混合卷积 (Pointwise/1x1)。
  • 例子: 同上 可分离卷积的例子。输入 8x8x3 -> DWConv (3x3, S=1, P=0) -> 6x6x3 -> PWConv (1x1, C_out=4) -> 6x6x4

深度可分离卷积由两步组成:深度卷积和1x1卷积。首先,在输入层上应用深度卷积。如下图,使用3个卷积核分别对输入层的3个通道作卷积计算,再堆叠在一起。


6. 空洞卷积 / 扩张卷积 (Dilated / Atrous Convolution)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 原理: 在标准卷积核的权重元素之间注入空洞(Dilation Rate - D)D=1 是标准卷积。D=2 表示核元素之间间隔 1 个像素(实际感受野等效于 (F + (F-1)*(D-1)) x (F + (F-1)*(D-1)),但参数数量不变)。卷积核在输入上滑动时,只计算有实心权重的位置。
  • 目的: 在不增加参数数量、不减小特征图尺寸(通常 S=1, P 适当)的前提下,显著增大感受野 (Receptive Field)。这对于捕获图像中更大范围的上下文信息(如语义分割、目标检测中大物体)非常关键,避免了频繁下采样带来的信息损失。
  • 输出尺寸计算: 同标准卷积公式 W_out = (W_in + 2P - [ (F-1)*D + 1 ]) / S + 1。等效核大小 F_eff = F + (F-1)*(D-1)
  • 例子 (输入 8x8x3):
    • 使用 K=23x3 卷积核 (F=3)。
    • 扩张率 D=2
    • 步长 S=1,填充 P=2 (常用 "same" 填充策略,这里 P=2 使得 (8 - [ (3-1)*2 + 1 ] + 2*2) /1 +1 = (8 - [5] +4) +1 = 8,保持尺寸)。
    • 等效感受野: 3 + (3-1)*(2-1) = 3 + 2*1 = 5x5。这个 3x3 空洞卷积核实际“看到”的区域相当于一个标准的 5x5 区域,但只用了 3x3=9 个参数。
    • 输出尺寸:(8 - [ (3-1)*2 + 1 ] + 2*2) / 1 + 1 = (8 - 5 + 4) + 1 = 8。输出通道 C_out=2
    • 输出形状:8x8x2。空间尺寸不变 (8x8),感受野增大到 5x5 (相比标准 3x33x3 感受野)。

为扩大感受野,在卷积核里面的元素之间插入空格来“膨胀”内核,形成“空洞卷积”(或称膨胀卷积),并用膨胀率参数L表示要扩大内核的范围,即在内核元素之间插入L-1个空格。当L=1时,则内核元素之间没有插入空格,变为标准卷积。


7. 深度扩张卷积 / 扩张深度卷积 (Dilated Depthwise Convolution)

  • 原理:空洞卷积 (Dilated Conv) 的思想应用于深度卷积 (Depthwise Conv) 步骤。即在深度可分离卷积中,深度卷积部分使用带有空洞率 D 的卷积核。
  • 结构:
    1. 扩张深度卷积 (Dilated Depthwise Conv): 对输入的每个通道单独使用一个 F x F扩张率为 D 的卷积核进行空间卷积。输出通道数仍为 C_in
    2. 逐点卷积 (Pointwise Conv / 1x1 Conv): 不变,使用 K1x1 x C_in 的卷积核混合通道,输出 C_out 个通道。
  • 目的: 在保持深度可分离卷积低计算量、低参数量优点的同时,利用空洞卷积增大感受野的优点。这对于构建高效的、能捕获大范围上下文的模型(如实时语义分割)至关重要。
  • 计算量: 与标准深度可分离卷积类似,但深度卷积步骤的感受野更大。
    • Dilated DWConv: W_out * H_out * C_in * F * F * 1 (计算量不变,因为参数数量和计算位置数量没变,只是采样位置间隔变大了)
    • PWConv: W_out * H_out * C_out * 1 * 1 * C_in (不变)
  • 例子 (输入 8x8x3):
    • 目标输出通道数 C_out=4
    • 步骤1: 扩张深度卷积 (Dilated DWConv)
      • 使用 33x3x1 D=2 的滤波器。
      • 步长 S=1,填充 P=2 (为了保持输出空间尺寸为 8x8,需要计算 P。等效核大小 F_eff=5,要维持 8x8 输出,P 需满足 (8 - 5 + 2P)/1 +1 = 8 -> (3 + 2P) = 7 -> 2P=4 -> P=2)。
      • 每个扩张卷积核在其对应的输入通道上进行空洞卷积。感受野等效 5x5
      • Dilated DW 输出形状:8x8x3
    • 步骤2: 逐点卷积 (PWConv / 1x1 Conv)
      • 使用 41x1x3 的滤波器 (S=1, P=0)。
      • 8x8x3 的输入上操作,输出 8x8 的空间图,每个位置混合 3 个通道成 1 个值(共 4 个通道)。
      • 最终输出形状:8x8x4
    • 关键: 最终输出保持了输入的 8x8 空间分辨率(得益于 S=1, P=2),同时每个位置在深度卷积阶段就具有了 5x5 的感受野(比标准 3x3 深度卷积的 3x3 感受野大),而计算量和参数仍然远小于一个标准的 5x5 卷积或一个带空洞的标准卷积。

总结对比表 (以 8x8x3 输入为例)

卷积类型主要参数/操作输出形状 (示例)核心目的/特点计算量/参数量特点
标准卷积F=3, K=4, S=1, P=06x6x4基础特征提取
步长卷积F=3, K=6, S=2, P=14x4x6下采样 (减小尺寸,增加通道/抽象)低于标准卷积 (尺寸减小)
反卷积/转置卷积F=3, K=3, S=2, P=1 (上采样)7x7x3上采样 (增大尺寸)中高
可分离卷积 (深度可分离)F_dw=3, K_pw=4, S=1, P_dw=0 (DW->PW)6x6x4极大降低计算量/参数,保持表达能力 (空间分离+通道混合)极低 (约标准 FxF1/(F*F))
空洞/扩张卷积F=3, K=2, S=1, P=2, D=28x8x2增大感受野 (5x5等效),不减小尺寸/不增参同标准 FxF 卷积 (参数/计算量不变)
深度扩张卷积F_dw=3, D_dw=2, P_dw=2, K_pw=4, S_dw=1, S_pw=1 (Dilated DW -> PW)8x8x4低计算量/参数 + 大感受野 (DW感受野5x5,输出尺寸不变)极低 (同标准深度可分离)

关键点回顾:

  • 标准卷积: 基石,计算量大。
  • 步长卷积: 高效下采样。
  • 反卷积: 上采样工具。
  • (深度)可分离卷积: 轻量化的核心手段,MobileNet等的基础。
  • 空洞卷积: 扩大感受野的利器,不损失分辨率/不增参,常用于密集预测任务。
  • 深度扩张卷积: 结合了轻量化 (可分离)大感受野 (空洞) 的双重优势,是构建高效高性能模型(尤其在移动端和边缘设备上)的重要组件。

通过结合使用这些不同类型的卷积操作,可以设计出适应各种需求(精度、速度、模型大小、感受野)的卷积神经网络架构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910052.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HP iLO使用实例:Integrated Lights-Out

文章目录 参考名词解释iLODMTF SMASH CLP命令HP提供的命令VSPBIOS启动顺序BIOS指令启动时报的电源错误如果ilo登陆不上去参考 ilo命令 https://support.hpe.com/hpesc/public/docDisplay?docId=c03334058 名词解释 iLO 从字面理解:Integrated Lights-Out,就是整合灯出;…

【前端隐蔽 Bug 深度剖析:SVG 组件复用中的 ID 冲突陷阱】

前端隐蔽 Bug 深度剖析:SVG 组件复用中的 ID 冲突陷阱 创建时间: 2025/6/20 类型: 🔍 Bug 深度分析 难度: ⭐⭐⭐⭐⭐ 高级 关键词: SVG、ID 冲突、Vue 组件、隐蔽 Bug、技术分析 📖 引言 在前端开发的世界里,有一类 Bug 特别令…

IDEA 中 Tomcat 部署 Java Web 项目(Maven 多模块 非 Maven 通用版)

引言 Java Web 开发中,Tomcat 是最常用的 Servlet 容器,而项目类型通常分为 Maven 管理(依赖自动处理、多模块聚合) 和 非 Maven 纯手工管理(手动引入 jar 包、配置项目结构)。本文覆盖 两种项目类型 的 T…

当建筑学会“行走”:MiC建筑如何重塑医疗空间

当塔吊林立的工地被智能化工厂取代,当混凝土现浇的轰鸣被精密模块的无声拼接覆盖,建筑行业正经历着自钢筋混凝土革命以来最深刻的范式转移。模块化集成建筑(MiC)技术,这场以“制造组装”为核心的新型工业化浪潮&#x…

计算机网络八股第二期

计算机网络八股第二期 1.讲一讲从输入网址到网页显示之间发生了什么(从网络的角度) 想想一下你从网店买一本书,从输入网址到网页显示其实和你从网店买一本书差不多,网店发给你的是实体而网络传输的是文字,图片等等资…

FPGA基础 -- Verilog 的值变转储文件(VCD:Value Change Dump)

Verilog 的“值变转储文件(VCD:Value Change Dump)”,这是一项在仿真调试中至关重要的技术,可以帮助你“看见”RTL中每个信号随时间的变化过程。 一、什么是 Verilog 的值变转储文件(VCD) VCD …

流水灯芯片74HC138 → 74HC164 → 74HC595核心功能、引脚作用及芯片定位

一、74HC138:精准的“8选1开关” 核心作用 用3根控制线(A0-A2)实现8路严格单选,同一时刻仅1路输出低电平(其他7路高电平)。 📌 本质:二进制地址译码器,不是数据寄存器。…

鸿蒙Next仓颉语言开发实战教程:懒加载

今天要分享的是仓颉开发语言中的懒加载。 先和初学者朋友们解释一下什么是懒加载。懒加载在代码中叫做LazyForEach,看到名字你一定能猜到它和ForEach的功能类似。只不过和ForEach的一次性加载所有数据不同,懒加载会根据屏幕可使区域按需加载数据&#x…

Linux 内核同步管理全解:原理 + 实战 + 考点

🔥 推荐:《Yocto项目实战教程:高效定制嵌入式Linux系统》 京东正版促销,欢迎支持原创! 链接:https://item.jd.com/15020438.html 一、为什么需要同步机制? Linux 是一个支持 多核并发 抢占式调…

效果成本双突破!快手提出端到端生成式推荐系统OneRec!

近日,快手推荐模型团队提出了一个端到端生成式推荐系统OneRec,该系统采用Encoder-Decoder架构,引入了基于奖励机制的偏好对齐方法,借助强化学习增强模型效果,可在奖励模型引导下直接生成契合用户偏好的视频内容。通过极…

flex布局 项目属性

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>flex布局 项目属性</title> <link href"css/k.css" rel"stylesheet" /> </head> <bod…

SpringBoot扩展——应用Web Service!

应用Web Service Web Service是一个SOA&#xff08;面向服务的编程&#xff09;架构&#xff0c;这种架构不依赖于语言&#xff0c;不依赖于平台&#xff0c;可以在不同的语言之间相互调用&#xff0c;通过Internet实现基于HTTP的网络应用间的交互调用。Web Service是一个可以…

EasyExcel学习笔记

EasyExcel学习 一、EasyExcel简介 一、EasyExcel是什么 EasyExcel是一个基于Java的简单、省内存的读写Excel的阿里开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 官网&#xff1a;https://easyexcel.opensource.alibaba.com/ 学习Easyexcel前需要了解导入和导出…

day4课程

1整体认识和路由配置 2二级分类面包屑导航实现 3基础商品列表渲染 4列表筛选功能实现 5列表无限加载功能实现 6定制路由滚动行为 7详情页整体认识和路由配置 8详情页基础数据渲染 9详情页基础组件封装和数据渲染 10适配不同title和数据列表 11小图切换大图 12滑块跟随鼠标移动 …

kubeadm worker节点加入master失败

文章目录 1、操作2、问题现象3、问题原因4、问题解决4.1、重新生成token4.2、重新生成hash值 5、验证 1、操作 执行以下命令&#xff0c;让worker节点加入到master节点 kubeadm join 103.123.222.241:6443 --token vxe3v1.wzpnks8v1vbbtsu0 --discovery-token-ca-cert-hash s…

二十二、【用户管理与权限 - 篇四】后端权限定义:模型与 API 实现

【用户管理与权限 - 篇四】后端权限定义:模型与 API 实现 前言准备工作第一部分:设计并创建 `Permission` 模型第二部分:更新 `Role` 模型以关联 `Permission`第三部分:生成并应用数据库迁移第四部分:创建 Serializers第五部分:创建 ViewSets第六部分:注册 API 路由第七…

猜数字小游戏微信流量主小程序开源

这个智力小游戏采用了数字华容道的玩法&#xff0c;玩家需要通过移动数字方块&#xff0c;将数字按顺序排列完成游戏。代码严格遵循微信小程序的目录结构&#xff0c;包含以下部分&#xff1a; 完整的小程序配置文件&#xff08;app.js、app.json、app.wxss&#xff09; 游戏页…

探秘阿里云EBS存储:云计算的存储基石

一、引言 在云计算时代&#xff0c;数据如同企业的生命线&#xff0c;数据存储的重要性不言而喻。随着企业数字化转型的加速&#xff0c;海量数据的存储与高效管理成为亟待解决的问题。云存储以其卓越的灵活性、可扩展性和成本效益&#xff0c;逐渐成为众多企业的首选方案。在…

音视频之H.264的可伸缩编码SVC

系列文章&#xff1a; 1、音视频之视频压缩技术及数字视频综述 2、音视频之视频压缩编码的基本原理 3、音视频之H.264/AVC编码器原理 4、音视频之H.264的句法和语义 5、音视频之H.264/AVC解码器的原理和实现 6、音视频之H.264视频编码传输及其在移动通信中的应用 7、音视…

Anaconda安装env,yml一直卡在Solving environment:不动

如果在使用conda env creat -f env.yml时候&#xff0c;anaconda一直卡住&#xff0c;如下 可以尝试下面操作。 conda config --set solver libmamba # 使用libmamba引擎&#xff08;Conda≥22.11&#xff09; conda env create -f env.yaml # 重新尝试