☰
图解-卷积神经网络(CNN)
2026/9/28 11:09:01 网站建设 项目流程

一、核心概念初识

1、卷积(Convolution)和卷积核(Filter)

卷积就是“拿一个小模板,在数据上从左到右(或从上到下)滑动,每停一步就把重叠的部分‘对应相乘再相加’,得到一个数。”——它衡量的是:当一个函数(或模板)滑过另一个函数时,两者在每一个位置上的“重叠程度”。

举例说明

(1)一维示例:体重测量

假设你连续 5 天的体重是:[60,62,61,63,62]

数字波动大,受当天因素影响较大,所以想“平滑”一下:认为每一天的真实体重,应该由它自己加上前后两天共同决定,中间那天最重要。于是你定了一个小模板设置权重(也就是“核”):

[0.25,0.5,0.25] 即,前一天占 25%,当天占 50%,后一天占 25%。

对准哪一天计算平滑结果
第 1 天0.5×60+0.25×6245.5
第 2 天0.25×60+0.5×62+0.25×6161.25
第 3 天0.25×62+0.5×61+0.25×6361.75
第 4 天0.25×61+0.5×63+0.25×6262.25
第 5 天0.25×63+0.5×6246.75

看结果:原始 [60, 62, 61, 63, 62] → 平滑后中间变成 [61.25, 61.75, 62.25],波动明显变小了。
这就是卷积的全部动作:一个模板、一次滑动、一轮相乘相加。

(2)二维实例:图片模糊处理

图像抽象为二维数字表格(每个格子一个亮度值)。想给照片磨皮、做柔光效果,提供一个模板(核) 3×3 的矩阵:

此模版(矩阵)的含义是:中心像素占 4/16,上下左右各 2/16,四个角各 1/16 —— 也就是“每个像素换成它周围一圈的平均值”。
把这个小方块在整张图上逐格滑动,每格算一次加权平均,整张图就变柔和了。“高斯模糊”“磨皮”,就是这么算出来的,一个像素都没例外。

2、池化(Pooling)---特征压缩

池化(Pooling)就是“把一个小窗口滑过特征图,每个窗口只留一个数”——最大值(MaxPool)或平均值(AvgPool)。它把特征图缩小,同时留下“这个特征有没有出现过”的信息,丢掉“它精确在哪个像素”的信息。

常见3种池化方法对比:

类型做法优点缺点典型用法
MaxPool取窗口最大值保留最强响应、抑制噪声、平移鲁棒丢失大部分信息;不可导点需次梯度CNN 主干默认(VGG/ResNet)
AvgPool取窗口平均保留整体能量、输出平滑强响应被稀释;边缘易模糊Inception、老式网络末端
Global Avg Pool(GAP)

整张特征图取平均, 𝐻×𝑊×𝐶→1×1×C

消灭全连接层的巨量参数、任意输入尺寸可用、每个通道直接对应一类响应强度(可做 CAM 可视化)彻底丢失位置信息现代分类网络标配

3、感受野

特征图上某一个像素,"往回看"原图时,能看到多大的一片区域。它是 CNN 里唯一能回答"这个神经元到底看到了多少东西"的指标。卷积核大小只决定局部看多宽,感受野才决定整体看多远——前者是单层属性,后者是整条路径的累积属性。

引申:

可以把它想象成这个像素的"老家范围":它是由原图上哪一片像素算出来的,那片区域就是它的感受野。

  • 感受野小 → 只能看到细节(边缘、角点、纹理)
  • 感受野大 → 能看到整体(眼睛、轮子、整张脸)

CNN 之所以能"从边缘认出猫",靠的就是感受野一层层变大。

二、卷积神经网络原理拆解

第一阶段:特征提取

这是图中左侧最复杂的部分,包含了多次Convolution(卷积)、ReLU(激活)和Pooling(池化)的循环。

1、 Convolution + Kernel(卷积与卷积核)

如图所示

  • 左边的大矩阵:代表一张图片(Input Image),里面的数字代表像素点的亮度(0是黑,数值越大越亮)。

  • 中间的小方块:代表卷积核/滤波器(Filter/Kernel),你可以把它想象成一个“探测器”或“手电筒”。

卷积核的作用:

  • 右边的结果矩阵:代表特征图(Feature Map),这是探测后的结果。

  • 截距项:每个卷积核都会学习到一个偏置值b ,加在最终的结果上,用于调整激活的阈值。公式为:Y=(X∗W)+b

过程拆解(以手电筒为例),

  • 扫描(滑动窗口):你拿着手电筒从左上角开始,一次照3×3 个格子(图中红框部分)。

  • 加权求和(点积运算):手电筒里的灯泡亮度是不一样的(卷积核里的数字,比如中间是1,周围有0)。当你照到图片上某个区域时,你会把手电筒的亮度分布与地板上的数字对应相乘。

比如图中红框区域:

第一行:0×0,3×1,0×1

第二行:2×0,0×1,1×0

第三行:0×1,1×0,3×0

实际图中的计算逻辑是:将红框内的9个数字,与橙色框内的9个数字,位置对应相乘,然后全部加起来。

  • 记录结果(生成特征图):

算出来的总和,填在右边的格子里。如,图中右上角的第一个结果 3 的计算过程为,(0×0)+(3×1)+(0×1)+(2×0)+(0×1)+(1×0)+(0×1)+(1×0)+(3×0)=3。这个 3 就代表了原图左上角那个区域与这个卷积核的“匹配程度”。

  • 移动(步长 Stride):

算完左上角,手电筒向右移动一格(通常移动一格叫步长为1),继续做乘法求和,算出下一个数字 3。以此类推,直到扫完整个图片。

  • 感受野

在卷积神经网络中,特征图(Feature Map)上的一个点,映射回输入图像(Input Image)上的区域大小,就是该点的感受野。简单来说,感受野就是“当前这个像素点,能看到原始图片多大的范围”。它解释了为什么深层网络能识别出复杂的物体(如人脸、汽车),而浅层网络只能识别简单的线条。

感受野这是一个层层叠加的过程。

第一层卷积:假设卷积核是3×3,那么输出特征图上的一个点,感受野就是 3。

第二层卷积:在上一层的基础上再做3×3卷积。因为上一层的一个点已经代表了原图的 3 个像素,现在又把周围 3 个点聚合起来,感受野就变成了3+(3−1)=5(大致估算,具体取决于步长)。

第三层卷积:继续叠加,感受野进一步扩大到 7 或更大。

2. ReLU(激活函数)

  • 图示位置:紧跟在 Convolution 后面。
  • 通俗解释:这是一个“过滤器”。它把探测到的不重要信息(负值)直接变成0,只保留有用的特征(正值)。就像侦探排除了无关线索,只关注重点。
  • 专业原理:引入非线性因素,增加网络的表达能力,同时产生稀疏性,加速计算。

3. Pooling(池化)

  • 通俗解释:这是“压缩画质”的过程。比如把一张高清大图缩小成缩略图。虽然像素少了,但斑马身上的条纹特征还在。这样做是为了减少计算量,并且让网络不那么在意斑马具体站在图的左边还是右边(平移不变性)。
  • 专业原理:下采样操作(如最大池化);降低特征图的空间维度,减少参数量,防止过拟合。

简单来说,池化就是下采样的过程。它的主要目的是在保留主要特征的同时,减少数据量,降低计算复杂度。

中间的大矩阵(4x4):这是卷积层输出的特征图,包含了很多细节数据。

  • 左边的结果(Max Pooling):最大池化,取每个区域的“最大值”。作用是提取纹理等显著特征,对噪声有一定的抑制作用(因为噪点通常数值不大,会被最大值覆盖)。它是目前深度学习中最常用的池化方式。

  • 右边的结果(Average Pooling):平均池化,取每个区域的“平均值”。作用是保留整体特征,减少方差。常用于网络的全局平均池化层,或者在处理背景信息比较重要的任务中。

颜色分区:注意看中间的图,被分成了绿、紫、红、青四个颜色的2×2 区域,每个区域对应输出中的一个像素点。

第二阶段:分类决策

这是图中右侧的部分,包含Flatten(展平)和Fully Connected Layer(全连接层)。

1. Flatten(展平)

  • 图示动作:看那个像千层饼一样的立体方块(特征图),突然被拉成了一条长长的竖线。
  • 通俗解释:前面的步骤把图片里的特征(条纹、眼睛、腿)都提取出来了,但它们还是散落在一个个小格子里。这一步就像是把侦探搜集到的所有线索卡片,全部摊开在桌面上,排成一长列,准备交给最后的法官去审阅。
  • 专业原理:将多维的特征图(Feature Maps)拉伸为一维向量,作为全连接层的输入。它起到了连接“特征提取器”和“分类器”的桥梁作用。

图例分析:

  • 左侧(Pooled Feature Map):这是经过层层卷积和池化后留下的精华特征图。它保留了图像的空间结构信息(比如哪里有条纹,哪里有角)。

  • 中间(Flattened):这是一个“拉直”的过程。将二维的方块矩阵变成了一维的长条向量。全连接层纸接收一维向量。

  • 右侧(FC Layer):这是全连接层。所有的神经元都互相连接,像是一个复杂的决策网络,负责根据输入的特征计算最终的分类概率。

2. Fully Connected Layer(全连接层)

  • 通俗解释:这就是“大脑的思考中心”。

这里的每一个神经元都在做综合判断,“既然我看到了黑白条纹(特征A),又看到了马的身体结构(特征B),还有四条腿(特征C)……” 第一层全连接神经元可能负责组合出“像马”的概念; 第二层可能负责排除“像狗”的概念。

它们把前面所有的局部线索加权汇总,计算出一个最终的结论。

  • 专业原理:基于学习到的特征进行非线性组合,映射到样本标记空间。它是分类器的核心,决定了模型最终的判别能力。
第三阶段:概率输出---SoftMax Activation Function。

SoftMax(归一化指数函数)

  • 图示动作:输出了三个数字:0.2 (Horse), 0.7 (Zebra), 0.1 (Dog)。
  • 通俗解释:大脑思考完了,不能只说“我觉得是斑马”,它得给出一个确信度。 SoftMax 就像是一个“百分比转换器”。它把前面算出来的原始分数强行转换成总和为 1 (100%) 的概率。 结果一目了然:模型认为这张图有 70% 的概率是斑马,20% 是马,10% 是狗。
  • 专业原理:将多分类问题的输出转化为概率分布。数值最大的类别即为模型的预测结果。

三、总结

CNN 的工作流可以概括为:

  1. 卷积+池化(特征提取):从像素点里提取出条纹、形状等特征。

  2. 展平(整理线索):把特征打包。将多维特征投影到一维特征。

  3. 全连接(综合推理):神经网络的智算中心,每个神经元都在做综合判断,加权汇总,得出最终结论。

  4. SoftMax(概率输出、得出结论):输出分析结果及对应的概率。

四、经典神经网络模型

模型年份深度核心创新历史地位
LeNet-519987卷积+池化+FC 串联,手写数字识别CNN 原型,证明局部连接+共享权重可行
AlexNet20128ReLU、Dropout、双 GPU、数据增强、LRN深度学习复兴起点,ImageNet top-5 错误率 15.3%
VGG201416/19

全部 3×3 小核、2×2 池化、结构极度规整

证明“深度+小核”有效;迁移学习标配骨干
ResNet201550/101/152残差连接 𝑦=𝐹(𝑥)+𝑥解决退化问题,深度无上限;现代网络的基石
ResNeXt201750/101分组卷积 + 基数(cardinality)“深度/宽度”之外的第三维度
ConvNeXt2022—用 Transformer 设计原则改造纯 CNN(7×7 大核、LayerNorm、GELU、少激活少归一化)证明 CNN 上限极高,纯卷积能匹敌 Swin

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询