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

【卷积神经网络CNN】基本原理

文章目录

    • 0.卷积神经网络CNN常用场景:
    • 1.卷积神经网络整体结构
    • 2.图像在计算机中的本质
    • 3.全连接神经网络存在的问题
    • 4.卷积层
      • 4.1卷积运算
      • 4.2步幅
      • 4.3填充
      • 4.4输出特征图大小计算公式
      • 4.5多通道卷积运算
    • 5.池化层
      • 5.1最大池化运算
      • 5.2平均池化运算
      • 5.3输出特征图大小计算公式
    • 6.卷积神经网络整体结构

0.卷积神经网络CNN常用场景:

  • 图像分类:ResNet
  • 目标检测:Yolo
  • 图像分割:UNet

1.卷积神经网络整体结构

这里先有个印象,学习完后面的内容会帮你更好理解这个结构。

在这里插入图片描述

2.图像在计算机中的本质

矩阵 形式存储,0代表黑色,255代表白色,

来看一个 单通道 (灰度图)示例:

在这里插入图片描述

与单通道对应的,就是 三通道 彩色图了:

在这里插入图片描述

3.全连接神经网络存在的问题

为什么不用全连接神经网络而用卷积神经网络来处理图片?

因为全连接神经网络会破坏原有图像的 空间信息

来看如下示例,采用全连接神经网络的话,原来图像中的上下左右信息,就只剩下了左右信息。

在这里插入图片描述

4.卷积层

4.1卷积运算

:也可以叫做 卷积核,即参数 W,输出是怎么计算的?对应位置 相乘再相加

比如:0*0 + 1*1 + 2*3 + 3*4 = 19

在这里插入图片描述

来看完整的卷积运算过程:

在这里插入图片描述

既然有参数 w,那肯定也会有参数 b,来看看 加入偏置b的卷积运算

就是在原来的运算结果上再加上b。0*0 + 1*1 + 2*3 + 3*4 + 2= 21

在这里插入图片描述

4.2步幅

顾名思义,就是一次走多少步。

上面的卷积运算过程默认步幅为1,来看一个步幅为2的运算过程:注意黄色部分是怎么移动的

在这里插入图片描述

4.3填充

不知道你注意没,上面的运算结果都是输出特征图变小了,比如:3*3–>2*2,4*4–>2*2,怎么让输出图变大呢?填充 可以实现,

准确来说,填充 可以控制输出图的大小。

填充具体操作就是:外圈填充0 即可。

来看一个示例:填充后,输入图从 3*3 变成了 5*5

在这里插入图片描述

4.4输出特征图大小计算公式

公式参数如下:

  • W:输入特征图的宽,示例中为3
  • H:输入特征图的高,示例中为3
  • P:输入特征图填充大小,示例中为1,因为只填充了1圈
  • FW:卷积核的宽,示例中为2
  • FH:卷积核的高,示例中为2
  • S:步幅大小,示例中为1,一次只移动一格
  • OW:输出特征图的宽,示例中为4
  • OH:输出特征图的高,示例中为4

此公式很重要,务必牢记。

此外,运算结果可能为小数,但是不同框架有不同取舍策略,有的向上取整,有的向下取整,PyTorch是向下取整

在这里插入图片描述

4.5多通道卷积运算

前面的示例中用的都是单通道图,但实际应用中多采用三通道图,来看看三通道图卷积运算是怎么操作的。如下:

卷积核通道数要和输入特征图通道数 保持一致

某通道的特征图与对应的某通道卷积核 相乘再相加,得到1个结果,三个通道都操作完成后得到3个结果,然后把这3个结果相加,得到最终结果。

在这里插入图片描述

可能会发现4*4*3的输入特征图和3*3*3的卷积核运算后得到了一个 单通道 输出特征图,即如下示例:

在这里插入图片描述

怎么控制输出特征图的通道数?增加卷积核数量

在这里插入图片描述

5.池化层

池化层也有 填充和步幅,但是 没有池化核,我们把这个区域称为 感受野

池化就是个操作,没有参数w,因此池化层算不上神经网络层。

池化层不会改变输入特征图的通道数,而卷积层可能会改变,和卷积核数量有关。

5.1最大池化运算

顾名思义,在一个区域选取 最大值,来看一个示例,步幅为2:

在这里插入图片描述

5.2平均池化运算

顾名思义,在一个区域选取 平均值,来看一个示例,步幅为2:

在这里插入图片描述

5.3输出特征图大小计算公式

感受野算法是每步池化的区域大小,不要把FH、FW理解为特定的东西,你就理解为每步运算时运算区域的尺寸就好记了。

下面的示例中的参数详细介绍可以看看4.4输出特征图大小计算公式,一模一样。

在这里插入图片描述

6.卷积神经网络整体结构

在这里插入图片描述

再次看到这个图,会发现:

  • 卷积运算会改变输入特征图的大小和通道数。 输出特征图通道数大小由卷积核数量决定。
  • 池化运算仅仅改变输入特征图的大小,不会改变通道数。

2025.10.14结束,把这些内容又学了一次,感觉挺简单的,一听就会,一练就废,哈哈。准备开PyTorch实战应用了。

http://www.dtcms.com/a/483562.html

相关文章:

  • Jenkins Share Library教程 —— 高级实战与最佳实践
  • 基于DNA编码与混沌系统的图像加密
  • 网站建设中的html网站页面设计图片素材
  • 【数据库】MySQL InnoDB Cluster 高可用架构部署(MGR 3节点)
  • 网站关键词选取网站开发使用软件有哪些
  • 网站建设 鼠标定制化网站开发公司
  • WebUI自动化测试:POM设计模式全解析
  • tauri 应用相关文件夹
  • 建设网站哪家便宜南昌网站排名
  • AI赋能,重塑未来招聘:深度解析易路AI人岗匹配解决方案
  • 四川网站建设的公司哪家好苏州网站建设熊掌
  • QT6中Dial、Key Sequence Edit、LCD Number 功能及用法详解
  • 为什么要创建网站公司网站建设管理
  • Tomcat核心架构与生产部署指南
  • 启闭机闸门的网站建设wp做图网站
  • 一个网站项目的价格表wordpress主题Qinmei
  • 虎扑的网站是用什么技术做的江苏免费建站
  • 做网站前景怎样国家企业年审营业执照官网
  • 开封市城乡建设局网站宁德公司做网站
  • mysql网站数据库深圳双区建设
  • 论述网站建设整个流程网站开发完整的解决方案
  • Web渗透之身份认证与访问控制缺陷(越权(水平垂直),访问控制(没有验证),脆弱验证(Cookie,JWT,Session等))
  • CoRL-2025 | SocialNav-SUB:用于社交机器人导航场景理解的视觉语言模型基准测试
  • 做优化网站是什么意思设计网络品牌营销方案思路
  • 单网页网站网站 制作公司
  • c++20|第k大-快速选择|nth_element
  • 小杰深度学习(sixteen)——视觉-经典神经网络——MobileNetV2
  • asp.net企业网站设计广州一建筑外墙脚手架坍塌
  • 自动化测试脚本环境搭建
  • VSCode通过SSH连接到Ubuntu虚拟机失败“找不到ssh安装”问题解决