菜鸟AI - 让提示词生成更简单! 全站导航 全站导航
AI工具安装 新手教程 进阶教程 辅助资源 AI提示词 热点资讯 技术资讯 产业资讯 内容生成 模型技术 AI信息库

已有账号?

首页 > AI教程 > 卷积神经网络最新万字长文详解:计算机视觉完整教程与实战
进阶教程 神经网络 计算机视觉完整

卷积神经网络最新万字长文详解:计算机视觉完整教程与实战

2026-06-08
阅读 0
热度 0
作者 菜鸟AI编辑部
摘要

摘要

本文系统梳理计算机视觉中卷积神经网络的核心机制,涵盖卷积运算、边缘检测、卷积核参

本文系统梳理计算机视觉中卷积神经网络的核心机制,涵盖卷积运算、边缘检测、卷积核参数学习、填充与步长策略,以及其在缓解过拟合方面的显著优势。文中深入拆解卷积层与池化层的结构设计及功能定位,突出特征提取的关键作用,并通过具体案例直观展示特征图的演化过程。

在这里插入图片描述此处为原始图片占位

以下内容整理自网络公开资料,仅供个人学习使用。

一、计算机视觉概述

在这里插入图片描述此处为原始图片占位

若输入层与隐藏层仍沿用全连接结构,参数量过大极易引发过拟合,同时海量参数对存储空间也构成严峻挑战。

在这里插入图片描述此处为原始图片占位

解决之道何在?答案即是卷积神经网络。

二、卷积神经网络

2.1:卷积运算

卷积运算是构成卷积神经网络的基础单元之一。

不妨从边缘检测(edge detection)切入,通过具体实例直观理解卷积神经网络的工作机制。

在这里插入图片描述此处为原始图片占位

借助此类卷积运算,我们能够精准提取图像边缘:中间3×3矩阵即为过滤器、边缘检测器或卷积核。

在这里插入图片描述此处为原始图片占位

接下来讨论如何将这种卷积运算作为基本单元,融入卷积神经网络的整体架构。

正边缘与负边缘:亮度递增与递减的检测

在这里插入图片描述此处为原始图片占位

其他类型的边缘检测器(卷积核)

在这里插入图片描述此处为原始图片占位

如何让算法自主习得边缘检测器?

与其手动设计,不如将卷积核中的数值视为可训练参数,借助反向传播(back propagation)自动优化。原理简单:将卷积核的9个参数看作可学习变量,通过梯度下降更新。

在这里插入图片描述此处为原始图片占位

这样学到的卷积核往往比人工精心挑选的版本更加稳健,泛化能力更强。

在深入讲解反向传播如何学习这9个参数之前,先厘清卷积计算底层架构中两个关键环节:填充与步长。

2.1.1:填充(padding)

先看不对图像做填充的情况:

n×n图像与f×f卷积核卷积,输出尺寸为 (n−f+1)×(n−f+1)。

在这里插入图片描述此处为原始图片占位

该方式存在两个明显缺陷:

  • shrinky output:卷积结果小于原图,每经过一层图像尺寸缩减,深层网络中图像将变得极小。
  • throw away info from the edge:边缘像素被利用次数远少于中间像素,导致大量边缘信息丢失。

在这里插入图片描述此处为原始图片占位

因此,引入填充(padding)对原始图像进行边界扩充。

在这里插入图片描述此处为原始图片占位

归纳而言,上述涉及两种常见卷积模式:

  • valid convolutions:不对原图做任何填充。
  • same convolutions:填充后确保卷积结果尺寸与原图一致。

在这里插入图片描述此处为原始图片占位

对于Same convolutions,通常要求卷积核f为奇数,才能保证 p = (f−1)/2,使输出尺寸与输入相同。这也解释了为何常用3×3和5×5卷积核。另一原因在于奇数核存在中心像素点,该点在卷积过程中至关重要(若采用偶数核,卷积操作如何定义?),这已成为计算机视觉领域的惯例。

2.1.2:步长(stride)

前文默认步长为1,实际可设定为其他值。步长不同则卷积结果各异。下图展示步长为2时的卷积示例:

在这里插入图片描述此处为原始图片占位

汇总公式(注意向下取整确保卷积核始终位于填充后图像范围内,不能越界):

在这里插入图片描述此处为原始图片占位

2.1.3:交叉相关(cross-correlation)

此处为概念补充。根据数字信号处理理论,图像卷积本应将卷积核翻转后再做元素相乘求和。但在计算机视觉领域,该翻转步骤被省略,直接相乘求和。数学上这称为交叉相关(cross-correlation),然而深度学习文献中仍习惯称之为卷积(convolutions)。

在这里插入图片描述此处为原始图片占位

2.1.4:三维卷积

前述均针对二维图像(灰度图)的二维卷积。对于RGB等三维图像,需采用三维卷积。

在这里插入图片描述此处为原始图片占位

你可能疑惑:这样得到的输出仍是二维,有何用途?

如图,通过调节3D卷积核不同通道的参数值,可仅检测红色通道的边缘(其他通道参数置零),或将三个通道参数设为相同值——即便输入为RGB图像,也无需先转灰度再卷积,效果一致。

在这里插入图片描述此处为原始图片占位

另一个问题:之前只检测了一种边缘——垂直。若要同时检测多种边缘(如水平与垂直),需要多个检测器即多个3D卷积核。注意,输出第三维度的大小即等于使用的3D卷积核个数。

在这里插入图片描述此处为原始图片占位

2.2:卷积网络的一层

对卷积结果每个元素加偏差b,再进行非线性变换,然后将多个3D卷积核的输出整合,得到4×4×2的单层卷积网络输出。

在这里插入图片描述此处为原始图片占位

2.2.1:与传统神经网络的对比

本质上过程一致:先做线性运算(输入a0与参数W相乘求和再加偏差b),然后通过激活函数执行非线性变换。

该例中使用了2个3D卷积核,即2个特征(features)。卷积核个数对应特征数量,这是理解卷积神经网络底层原理的关键。

回到最初的问题:为何全连接网络易过拟合而卷积网络不会?

无论输入图像多大,卷积层所需训练的参数数量始终固定,例如 (27+1)×10。因此卷积神经网络天然不易过拟合。

在这里插入图片描述此处为原始图片占位

2.2.2:符号说明(Summary of notations)

在这里插入图片描述此处为原始图片占位

2.3:卷积神经网络的简单实例

如图,经过若干卷积层后,将最终卷积结果展平(flatten),输入全连接神经网络,通过逻辑回归或softmax进行分类。

在这里插入图片描述此处为原始图片占位

可观察到:输入图像通常尺寸较大,但随着网络加深,图像尺寸逐渐缩小,而通道数逐步增加。

2.3.1:超参数(hyperparameter)

图中箭头下方标注的参数(filter数量、步长、padding等)即为超参数。选择这些超参数是设计卷积神经网络中最核心的工作。

2.3.2:组成

一个典型卷积神经网络由三部分组成:

  • 卷积层
  • 池化层
  • 全连接层

在这里插入图片描述此处为原始图片占位

2.3.3:卷积层的多层叠加

前面提到,随着层数加深,通道数增大、图像尺寸减小。这样做的好处是:每层用较小卷积核(如3×3)也能获得更大感受野,只要叠加足够多层,感受野即可覆盖整幅图像。这就是多层卷积叠加的必要性。

打个比方:假设训练一个面部识别的卷积网络。第一层可能仅识别边缘和颜色;第二层学会将这些组合成简单形状(如眼睛、鼻子);第三层再将简单形状组合成面部特征。因此,越深的层越能将低级特征逐步组合成高级且有意义的特征。

那感受野究竟指什么?

2.3.4:感受野(Receptive Field)

感受野是一个核心概念。它描述两个feature maps A/B上神经元的关系:假设从A经过若干操作得到B,那么B上的某个区域areaB仅与A上的某个区域areaA相关,这个areaA就是areaB的感受野。

在这里插入图片描述此处为原始图片占位

上图中,map3里1×1区域对应map2的感受野是红色7×7区域,而map2里7×7区域对应map1的感受野是蓝色11×11区域。因此map3里1×1区域对应map1的感受野就是蓝色11×11区域。

2.4:池化层

先看两种池化示例:

在这里插入图片描述此处为原始图片占位

在这里插入图片描述此处为原始图片占位

2.4.1:原理

池化操作主要发挥三个作用:

  • 减轻计算负担
  • 增加感受野
  • 防止过拟合

吴恩达老师也曾指出,池化操作背后深刻的原理未必有人能完全说透,本质上是因为实验效果好,可以加。

非要去理解,也是可行的:图像本身存在冗余信息,用4个像素表示的特征可压缩为1个像素。通过最大值或均值采样(即池化),能更好地将图像特征提取出来。既然效果不错,为何不用?

直观理解:就像你看了一处独特景色,过段时间可能记不清每个细节,但肯定记得那里很美。这个“美”的概念,相当于池化后保留的特征。

补充一点:AlphaGo背后的算法也用了卷积神经网络,但只有卷积层而没有池化层。因为棋盘上每个像素点都至关重要,不能为了减轻计算负担而随意舍去。这也是理解池化的一个反面案例。

2.4.2:总结

需注意两点:

  • 池化层的超参数由人工设定,无需通过训练学习。
  • 最大值和平均值采样独立作用于输入的每个通道。池化结果通道数与输入通道数相同。

在这里插入图片描述此处为原始图片占位

2.5:完整的卷积神经网络示例

在这里插入图片描述此处为原始图片占位

在这里插入图片描述此处为原始图片占位

需明确以下几点:

  • 池化层没有任何需要学习的参数。
  • 卷积层趋向于拥有越来越少的参数。
  • 多数参数集中于全连接神经网络。

2.6:卷积神经网络的原理

前面一直在说卷积神经网络是什么、由什么组成。但更重要的是理解为什么——为什么卷积神经网络能有效工作?(虽然开头已对比全连接与卷积,说明了采用卷积的原因,但这只是一方面。)

首先需要理解,卷积神经网络本质上是计算机视觉领域的深度学习。过去机器学习中,通过输入数据就能很好地分类、回归。计算机视觉与深度学习结合后,本质相同,不同的是输入数据——这也是为何需要加入卷积层,而不能直接用全连接层处理图像数据。

比如之前预测房价,输入是房子大小、年龄等单特征。但对于计算机来说,一张图片只是一个三维或二维矩阵,本身不包含任何特征信息。换句话说,直接将像素点作为特征输入全连接网络,这类特征难以利用、复用和比较。而卷积层的作用正是提取特征——有用的、可复用的局部特征。通过卷积层提取特征,再输入全连接层,和传统神经网络做同样的事:对特征信息进行处理并预测。一言蔽之:卷积神经网络识别图像的第一步,就是利用卷积层提取图像的局部特征。

在这里插入图片描述此处为原始图片占位

在这里插入图片描述此处为原始图片占位

总结:

所谓的“卷积操作”,可以简单理解为一个滤镜过程:在图片上不断滑动,将局部像素值经过一定运算(运算参数就是网络需要学习的部分),得到一个新值,该值代表了这部分区域的某种特征。

OK,现在理解了卷积的作用——提取图像中的特征信息。那问题就缩小为:卷积为什么能提取特征?提取的特征是什么形式?为什么这种方式有效?

2.6.1:特征提取

从上述卷积操作及其结果可以直观感受到:卷积确实能提取特征。例如用垂直卷积核和水平卷积核,就能把图像中的垂直边缘和水平边缘信息提取出来。

至此我们知道两点:

  • 卷积操作确实可以提取局部特征。
  • 不同的特征需要不同的卷积核(而在神经网络中,卷积核参数无需手动设计,网络会自己学习)。

在这里插入图片描述此处为原始图片占位

至于卷积操作能提取特征背后的本质,以及卷积核扮演什么角色,需要了解下面讲的内容:傅里叶变换和加窗傅里叶变换。

2.6.2:加窗傅里叶变换

卷积的本质是二维的加窗傅里叶变换。学过信号与系统的,对傅里叶变换应有了解。这里的卷积核类似于傅里叶基,通过卷积核对二维图像进行加窗傅里叶变换,本质上就是把图像中和卷积核相似的特征信息提取出来——说白了,如果这块像素与卷积核要表达的特征相似,那么卷积得到的中心像素值就大,说明这里存在这种特征。

在这里插入图片描述此处为原始图片占位

下面是一个好例子:

在这里插入图片描述此处为原始图片占位

在这里插入图片描述此处为原始图片占位

在这里插入图片描述此处为原始图片占位

这也解释了为什么吴恩达老师说,有几个卷积核,就有几个特征的含义。

在这里插入图片描述此处为原始图片占位

不过需要注意的是,不像上图中那些规则的卷积核,神经网络中卷积核的样子(参数)是由反向传播学习得到的,具体样子要等训练结束后才知道。

在这里插入图片描述此处为原始图片占位

在这里插入图片描述此处为原始图片占位

比如下面识别字母X的例子。假设一开始卷积核模板已经学习得到或设计好,即以下三个特征。

在这里插入图片描述此处为原始图片占位

当用相应模板对其进行卷积时,与模板特征匹配度越高,中心像素点的值就越高——本质上就是在这个位置捕捉到了这个卷积核对应的特征。

在这里插入图片描述此处为原始图片占位

然后像之前一样,用过滤器将原图像分别卷积一遍,得到3个feature map。

在这里插入图片描述此处为原始图片占位

思考:这样得到的特征信息包含两方面:

  • 这个位置存在什么特征
  • 这个特征存在的位置

结合“位置”和“特征”这两个信息,将其展平(不会丢失信息),输入全连接神经网络,网络开始工作,像传统神经网络那样做预测。

当然,上面这个例子太简单,只有一层。多层神经网络和池化前面也讲过,本质上还是为了获得更大的感受野和减轻计算负担,底层逻辑是一样的。

所以,为什么常说卷积神经网络可以自己学习特征?说到底,就是通过反向传播学习这些卷积核里的参数。

2.6.3:卷积神经网络特征图可视化

接下来对feature map进行可视化,深入了解:

定义了一个4层卷积网络,每层分别包含9个卷积、ReLU激活和不同尺度的池化,系数全部随机初始化。

输入原图:

在这里插入图片描述此处为原始图片占位

第一层卷积后可视化的特征图:

在这里插入图片描述此处为原始图片占位

第二层卷积后可视化的特征图:

在这里插入图片描述此处为原始图片占位

第三层卷积后可视化的特征图:

在这里插入图片描述此处为原始图片占位

第四层卷积后可视化的特征图:

在这里插入图片描述此处为原始图片占位

从不同层可视化的特征图可以总结出一些规律:

  • 浅层网络提取的是纹理、细节特征。
  • 深层网络提取的是轮廓、形状、最强特征(如猫的眼睛区域)——或者说是前面特征叠加效果的通用最强特征(个人直觉上)。单看一层的特征似乎不可解释,但实际上最后得到的特征图是建立在前面多个卷积核作用之上的。
  • 浅层网络包含更多特征,也具备提取关键特征的能力(如第一组特征图里的第4张,提取出的是猫眼睛特征)。
  • 相对而言,层数越深,提取的特征越具代表性。
  • 图像的分辨率越来越小。

在这里插入图片描述此处为原始图片占位


以上是结合一些视频和文章资料学习、整合并加入个人理解所写,能力有限,若有欠妥之处,欢迎评论区讨论和指正!

来源:互联网

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

同类文章推荐

相关文章推荐

更多