卷积神经网络的基本概念

卷积神经网络

CNN,即卷积神经网络,是一种深度学习算法,在图像处理,视觉识别等任务中表现出色。

卷积神经网络的组成

CNN模型的组件包括卷积层,池化层,全连接层。

  • 卷积层:提取图像中的局部特征
  • 池化层:降低体征的空间尺寸,减少计算量并提供一定程度的位移和形变不变性
  • 全连接层:将学习到的映射到最终的输出

卷积的属性

  • 平移不变性
  • 局部相关性
  • 权值共享

卷积的感受野

1.感受野介绍

感受野是卷积神经网络输出特征图上的像素点在原始图像上所能看到的(映射的)区域的大小,它决定了该像素对输入图像的感知范围(获取信息的范围)。较小的感受野可以捕捉到更细节的特征,较大的感受野可以捕捉到更全局的特征
感受野

2.感受野的计算公式

感受野计算:F(i) = (F(i+1) -1)x Stride + Ksize
或者 F_in = (F_out -1) x Stride + Ksize
其中:

  • F(i) :第i层的感受野
  • Stride:第i层的步距
  • Ksize:第i层卷积或池化的kernel size

八类卷积操作

1.普通卷积

普通卷积
卷积输出的尺寸计算公式:
W_out = (W_in - K_w + 2P_w)/S_w + 1
H_out = (H_in - K_h + 2P_h)/S_h + 1
其中,输入的尺寸为(W_in,H_in), 卷积核的尺寸为(K_w,K_h),步幅(S_w,S_h),填充为(P_w,P_h),输出的尺寸为(W_out,H_out)

2.分组卷积

将输入feature map在channel的维度上进行分组,然后对每一个分组分别进行卷积操作。
分组卷积
分组卷积可减少参数量。如下图所示:分组卷积的参数量是普通卷积的1/g
普通卷积-对比
分组卷积-对比

3.逐深度卷积(DW卷积)

将输入的每个通道(channel)独立地进行卷积,每个通道使用一个单独的卷积核进行处理,即为DW卷积。其优点是参数量和计算量小。
具体做法如下:

  • 将输入特征图按照channel进行分组,每一个channel一个组,即g=Cin
  • 每个channel使用一个独立的卷积核(大小为1 x k x k)对其对应通道做卷积运算,输入输出通道均为1
    逐深度卷积

4.逐点卷积(PW卷积)

就是普通卷积,只不过kernel_size=1 x 1, 就是conv 1x1,通常用来组合通道之间的特征信息,参数量和计算量小。
逐点卷积

5.深度可分离卷积

先做一个DW卷积,后面再做一个PW卷积。深度可分离卷积的优势是极大的减小了卷积的计算量。
普通卷积计算量Dk x Dk x M x N x DF x DF
深度可分离卷积的计算量Dk x Dk x M x DF x DF + M x N x DF x DF
深度可分离卷积-普通
深度可分离卷积
深度可分离卷积和普通卷积的计算量之比是
在这里插入图片描述
一般使用的卷积最多是3 x 3的卷积,所以理论上普通卷积的计算量是深度可分离卷积的8~9倍。

6.膨胀卷积

空洞卷积或膨胀卷积,通过在卷积核中引入间隔,从而增大了卷积核的感受野。
膨胀卷积
膨胀率(Dilation Rate, r): 定义了卷积核处理数据时各值之间的间距。r=1 时就是普通卷积。

  • 对于一个 k x k 的卷积核,当膨胀率为 r 时,其等效的卷积核尺寸为:k_dilated = k + (k - 1) x (r - 1)。例如,一个 3x3 的卷积核,当 r=2 时,其等效kernel大小是 3 + (3-1) x (2-1) =5。它相当于一个 5x5 的卷积核进行采样,但只用了9个参数(和标准3x3卷积一样)。
  • 膨胀卷积的感受野使用等效后的卷积核尺寸大小计算

7.转置卷积

转置卷积是一种上采样操作。
转置卷积不是卷积的逆运算。
转置卷积
转置卷积的计算:
转置卷积计算
转置卷积2

8.可变形卷积

可变形卷积的灵感来自于空间变换网络(Spatial Transformer Networks) 和光流估计(Optical Flow) 的思想。其核心想法非常简单却非常有效:
让卷积核的采样位置根据输入特征图的内容,自适应地发生偏移
对于每一个输入,网络会自己学习出一组偏移量(Offsets),这组偏移量会作用到标准卷积的采样网格上,使其“变形”,从而让感受野聚焦到我们真正感兴趣的区域(比如物体的实际边界,而不是一个规则的方框)

可变形卷积的工作步骤如下,以 3x3 卷积为例:

  1. 常规卷积路径:
    输入一个特征图,用一个普通的卷积层进行处理。
  2. 学习偏移量:
    (1)从上一步的同一个输入特征图中,分出一个并行的分支。使用另一个卷积层(例如另一个 3x3 卷积)来学习偏移量。
    (2)对于 3x3 卷积核,它有 9 个采样位置。因此,这个偏移量卷积层的输出通道数应该是 2 * 9 = 18(因为每个偏移量需要一个x方向的偏移 Δx 和一个y方向的偏移 Δy)。
  3. 应用偏移并进行采样:
    (1)将学习到的偏移量([Δx1, Δy1, Δx2, Δy2, …, Δx9, Δy9])加到原始的标准 3x3 网格坐标上,得到变形后的、非整数的采样位置。
    (2)由于这些新的采样位置是小数(例如 (2.4, 3.7)),无法直接获取像素值,因此使用双线性插值(Bilinear Interpolation) 来计算这些位置的值。
  4. 加权求和:
    像常规卷积一样,将插值后得到的特征值与卷积核的权重进行加权求和,得到输出特征图上的一个点。

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

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

相关文章

亚远景- 从算法到刹车片:ISO/PAS 8800如何量化自动驾驶的“安全冗余”?

ISO/PAS 8800作为全球首个针对道路车辆人工智能安全的权威标准,通过全生命周期管理框架与量化安全指标,为自动驾驶系统构建了从算法到硬件的“安全冗余”量化体系,其核心逻辑可拆解为以下四层结构:一、数据层:量化训练…

【QT/C++】实例理解类间的六大关系之实现关系(Realization)

【QT/C】实例理解类间的六大关系之实现关系(Realization) 在前面章节讲完了实例理解类间的六大关系之泛化关系,效果不错,获得粉丝的一致好评!!! 接下来,本文我将继续尝试分享并总结…

Coze用户账号设置修改用户头像-后端源码

前言 本文将深入分析Coze Studio项目的用户头像修改功能后端实现,通过源码解读来理解整个头像上传和更新流程的架构设计和技术实现。用户头像修改作为用户个人信息管理系统的重要组成部分,主要负责处理图片文件上传、存储和用户信息更新,提升…

【Day 33】Linux-Mysql日志

一、数据库日志的核心作用故障恢复:当数据库因崩溃(如断电、进程异常)、误操作(如删表)导致数据丢失时,通过日志恢复数据至一致状态。数据一致性保障:确保事务的 ACID 特性(尤其是原…

服务器支持IPv6吗?如何让服务器支持IPv6

服务器是否支持 IPv6 需要视具体的服务商、服务器配置和网络环境而定。以下是关于 服务器支持 IPv6 的相关知识、如何检查支持情况,以及如何配置服务器以支持 IPv6 的详细指南。 1. 什么是 IPv6? IPv6(Internet Protocol Version 6&#xff…

37、需求预测与库存优化 (快消品) - /供应链管理组件/fmcg-inventory-optimization

76个工业组件库示例汇总 需求预测与库存优化 (快消品) - 自定义组件 概述 这是一个用于模拟和可视化快消品 (FMCG) 需求预测与库存优化流程的组件。用户可以选择不同的产品和区域,调整预测参数和库存策略,然后运行模拟以查看历史销售、预测需求以及基…

vuex如何在js文件中使用

文章目录前言代码实现1. 导出2. 使用总结前言 vue项目中比较常用的vuex,一般是在.vue文件中使用,那如何在.js文件中使用呢? 代码实现 1. 导出 vuex-store.js: export default {state: {isLogin: false,},mutations: {updateIsLogin(stat…

ESP32开发WSL_VSCODE环境搭建

系列文章目录 ESP32开发WSL_VSCODE环境搭建 文章目录 系列文章目录 前言 一、ESP32 WSL开发环境是啥子? 二、搭建步骤 1.启用WSL功能 2.安装Ubuntu系统 2.1 微软商店下载 2.2 下载发行版 2.3 安装完成后的密码设置 3. 环境配置 3.1 更新 apt工具 3.2 安装ESP-IDF相关应用 3.3…

分布式锁设计实战:多级缓存防御设计优化同步性能

JVM层的双重检查锁(Double-Checked Locking)是一种在多线程环境下优化同步性能的设计模式,主要用于减少锁竞争和提高缓存访问效率。其核心原理如下: ‌工作流程‌ 第一次检查:线程先无锁读取缓存,若命中则直接返回数据 加锁同步:若未命中,线程进入同步代码块 第二次检查…

C#自定义工具类-时间日期工具类

目录 时间日期工具类DateTimeHelper 功能说明 日期格式化 时间戳转换 时间间隔计算 日期边界与调整 时区转换 日期解析 时间相等性判断 时间范围与先后判断 日期合法性与特殊判断 截断时间到指定精度 完整代码 本篇文章分享一下时间日期工具类DateTimeHelper&…

ComfyUI AI一键换装工作流无私分享

1 模型文件准备 clip_l.safetensors :CLIP 文本编码器,将你的提示词转换为文本向量,用于指导图像生成。下载到text_encoderst5xxl_fp16.safetensors:处理复杂文本任务,如提示重写、文本理解、caption 生成。用于处理半…

Windows 下 Qt 获取系统唯一 ID

前言 随着信息化和智能化的发展,软件产品的分发与使用环境日益多样化,软件盗版、非法复制和未经授权的使用问题愈发突出。为了有效保护软件知识产权,同时确保系统和用户数据的安全,软件开发者需要一种可靠的方法来识别每一台设备的唯一性,从而实现“一机一码”的验证机制…

Devops之Jenkins:Jenkins服务器中的slave节点是什么?我们为什么要使用slave节点?如何添加一个windows slave节点?

Jenkins服务器中的slave节点是什么?Jenkins 的slave节点是一台可以在其上执行作业的计算机。从属作业的文件系统、环境变量、操作系统和内存都基于slave节点。您无需在slave节点上安装 Jenkins,它就可以正常工作。我们为什么要使用slave节点?…

大数据世界的开拓者:深入浅出MapReduce分布式计算经典范式

在我们这个数据爆炸的时代,单台计算机的处理能力早已无法应对PB(Petabyte)乃至EB(Exabyte)级别数据的处理需求。想象一下,要在一台普通的电脑上统计全互联网所有网页中出现频率最高的100个词汇,这可能需要耗费数年时间。于是,我们需要一种方法,能将一个巨大的任务拆解…

神经网络|(十一)概率论基础知识-协方差

【1】引言 前序学习进程中,已经对概率论的基础知识做了学习,比如贝特斯公式、朴素贝叶斯算法拉普拉斯平滑计算条件概率等。 在此基础上,我们又对scikit-learn的使用进行了初步探索。 随着学习的深入,对样本数据的处理越来越重要&…

K8s存储与微服务实战精解

K8s存储这样生成的pod名字不固定,IP不固定此时是访问一个无状态的服务,那没什么影响,访问到访问不到都没啥影响但是如果有一个有状态的服务,他要指定master,那此时的pod做不了负载均衡statefulset控制器无头服务创建一…

深度学习-----《PyTorch深度学习核心应用解析:从环境搭建到模型优化的完整实践指南》

一、深度学习框架对比核心框架对比PyTorch:支持GPU加速,底层基于NumPy,Meta(原Facebook)开发,生态完善(如Llama大模型)。TensorFlow:谷歌开发,存在2个不兼容版…

Ubuntu Server 系统安装 Docker

文章目录简介Ubuntu Server 简介VirtualBox 安装 Ubuntu Server 系统安装 DockerDocker 配置重启 Docker验证镜像源把用户加入 docker 组开启 Docker Api卸载 Docker简介 本文详细介绍了在Ubuntu系统上安装和配置Docker的完整流程,包括Docker官方源添加、依赖包安装…

从0到1:用 Qwen3-Coder 和 高德MCP 助力数字文旅建造——国庆山西游

从0到1:用 Qwen3-Coder 和 高德MCP 助力数字文旅建造——国庆山西游 1. 背景 “技术不是替代旅行,而是让旅途更有把握,让每一次选择更符合你的期待。” 随着大模型与地图服务能力的成熟,围绕旅游场景的“智能行程助理”成为低门槛…

RabbitMQ--消费端异常处理与 Spring Retry

1. 消息确认机制(ack)RabbitMQ 消息投递到消费者后,必须确认(ack)才能从队列中移除:auto-ack true消息一投递就算消费成功。如果消费者宕机,消息会丢失。一般不用。manual-ack false&#xff…