您现在的位置是:首页 >技术杂谈 >【通俗易懂说模型】卷积神经网络(呕心沥血版)网站首页技术杂谈

【通俗易懂说模型】卷积神经网络(呕心沥血版)

十二月的猫 2025-09-02 12:01:03
简介【通俗易懂说模型】卷积神经网络(呕心沥血版)

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀深度学习_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 前言

2. 卷积神经网络

2.1 仿生模型

2.2 卷积

2.2.1 卷积的过程

2.2.2 卷积要注意的问题

2.3 为什么卷积

2.3.1 局部特征不变性(必要性)

2.3.2 降低学习复杂度(重要性)

2.4 池化

3. 卷积神经网络的构造

4. 总结


1. 前言

        进入这篇文章之前,想必大家已经阅读过前面的系列文章:

【通俗易懂说模型】线性回归(附深度学习、机器学习发展史)-CSDN博客

【通俗易懂说模型】非线性回归和逻辑回归(附神经网络图详细解释)-CSDN博客

【通俗易懂说模型】反向传播(附多元分类与Softmax函数)-CSDN博客

        通过前面的文章, 猫猫希望友友们对机器学习、深度学习等基础概念,以及发展历史有一个宏观的理解。同时对回归(线性、非线性、逻辑回归)、反向传播有一个深入的认识。然后接下来,就让我们收拾收拾行囊,准备出发!下一站——卷积神经网络CNN🥰🥰~

2. 卷积神经网络

        互联网发展至今,已经存储了海量的网络图片,但是这些图片被形象地称为互联网的“暗物质”,因为现在的计算机还难以分类或识别这些非结构性的图片数据。在早期的图像识别研究中,使用人工提取的特征造成识别效果不佳。卷积神经网络的出现给图像识别领域带来了崭新的风气,如今,CNN图像识别技术的正确率已经可以达到人类水平。卷积神经网络的兴起大大促进了深度学习研究的发展,本节将带领大家学习卷积神经网络的基本原理,为接下来编写手写体图片识别代码打好基础。

2.1 仿生模型

        20世纪60年代,神经科学家们研究了猫的脑皮层中用于局部敏感和方向选择的神经元,在这个过程中,他们发现猫的脑皮层所具有的独特网络结构可以有效地降低反馈神经网络的复杂性,研究结果显示:视觉系统的信息处理是分级的

        大脑分层处理的视觉原理如图3-32所示:首先,光信号进人瞳孔(视网膜),接着大脑皮层的初级视觉细胞(即V1区)对信号进行初步处理,发现图像的边缘和方向;然后进人下一层视觉细胞(即V2区)进行抽象,发现物体的形状;最后在V4区进一步抽象出物体的概念。

        卷积神经网络模型的物体识别模仿了人脑的视觉处理机制,采用分级提取特征的原理,每一级的特征均由网络学习提取,识别效果优于人工选取特征的算法。例如在人脸识别过程中,最底层特征基本上是各方向上的边缘,越往上的神经层越能提取出人脸的局部特征(比如眼晴、嘴巴、鼻子等),最上层由不同的高级特征组合成人脸的图像。该模型最早在1998年由YannLeCun提出并应用在手写字体识别上(MINST),LeCun提出的网络称为LeNet,其网络结构如下图所示,输人的手写字体图片经过两次卷积和池化,进人全连接层后分类输出10种结果。

为什么底层网络要提取边缘,上层提取人脸局部特征再上层组合成最后人脸?

1. 仿生学基础:视觉系统的层级处理

人类视觉系统的运作是分层的(参考Hubel & Wiesel的经典研究):

  • 初级视觉皮层(V1):检测简单边缘、方向(如水平、垂直线条)。

  • 次级视觉皮层(V2/V4):整合边缘为基本形状(如圆形、三角形)。

  • 高级视觉区(IT皮层):识别复杂物体(如人脸、动物)。

CNN通过模拟这种层级结构,逐层从简单到复杂提取特征。

2. 卷积核的局部感受野

  • 底层卷积核(如第一层)
    每个小尺寸卷积核(如3×3)仅“看到”输入图像的局部区域(感受野小),适合捕捉基础纹理和边缘(如水平/垂直/斜边)。

    • 示例:第一层可能包含类似Gabor滤波器的核,响应特定方向的边缘。

  • 中层卷积核
    随着网络加深,每个层的感受野逐层扩大(通过堆叠卷积)。中层神经元能组合底层边缘,形成局部器官特征(如眼睛的圆形轮廓、鼻子的三角形结构)。

    • 示例:第三层可能检测到“眼角曲线”或“嘴唇边缘”。

  • 高层全连接或卷积层
    最深层通过全局感受野(覆盖整张人脸)将中层特征组合为高级语义信息(如“双眼+鼻子+嘴巴”的空间关系),最终分类或生成完整人脸。

3. 非线性激活与特征组合

  • 非线性激活函数(如ReLU)
    每层卷积后通过非线性函数,使网络能拟合复杂特征。例如:

    • 底层:边缘检测(线性滤波)→ ReLU(去除负响应)→ 输出“是否有某方向边缘”。

    • 高层:多个中层特征的加权组合 → ReLU → 输出“是否符合人脸器官布局”。

  • 特征的层次化组合
    底层特征(边缘)→ 中层特征(器官部件)→ 高层特征(完整人脸)的传递过程,类似于“字母→单词→句子”的语义升级。

        LeNet结构简单却完美地诠释了卷积神经网络的结构和其惊人的识别成效,被称为深度神经网络的“果蝇”。囿于当时计算硬件的落后和网络图片数量的不足,卷积神经网络无法在分辨率较大的图片上展示它的巨大潜力,当时并没有引起广泛关注。在2012年的ImageNet计算机视觉识别比赛中,卷积神经网络AlexNet以准确率领先第二名10%的显著差距获得了第一名。从此,大批计算机视觉科学家纷纷加人了卷积神经网络的研究当中,深度学习的热潮开始兴起。

2.2 卷积

2.2.1 卷积的过程

        在我们前面所介绍的神经网络中,输入层被描述为一列神经元。而在卷积神经网络里,我们把输入层看作二维的神经元。如果输人是像素大小为28×28的图片,则可以看作28×28的二维神经元,它的每一个节点对应图片在这个像素点的灰度值,如下图所示。

        在传统的神经网络中,我们会把输人层的节点与隐含层的所有节点相连。卷积神经网络中,采用“局部感知”的方法,即不再把输入层的每个节点都连接到隐含层的每一个神经元节点上。如下图,我们把相邻的5x5局部区域内的输人节点连接到了第一个隐含层的一个节点上。这个相邻的区域,我们称为局部感知域,可以把它看成是一个小窗口,我们也称之为过滤器。

        如下图所示,我们可以在整个输人图像上滑动这个过滤器。对于每一个过滤器,都有一个隐含层的神经元与之对应。将过滤器向右滑动一个单位后对应一个隐含层的神经元节点。以此类推,我们构建出了第一个隐含层。在这个例子中,输人是28×28,并且使用5x5的过滤器,那么第一个隐含层的大小为24×24。因为过滤器的小窗口只能向右和向下移动23像素,再往下或者往右移动就会移出图像的边界。在这个图中,过滤器使用的滑动单位为1像素,实际上,我们也可以让滑动单位不止1像素,这个滑动值的英文叫stride,我们也称它为步长。在卷积神经网络中,这种隐含层被称为“特征图”。

        在进行卷积操作之前,需要定义一个过滤器,其中的每一格都有一个权重值。卷积的过程是将每个格子中的权重值与图片对应的像素值相乘并累加,所得到的值就是特征图中的一个像素值。如下图所示,我们对过滤器和卷积进行一个比较具体而详细的说明。假设我们输入的是5x5的图片,过滤器可以看作一个小窗口,这个小窗口大小是3×3,里面包含了9个权重值,我们将9个权重值分别与输入的一部分像素值相乘后进行累加,这个过程被称为“卷积”。图中小窗口覆盖的输入区域卷积结果是隐含层的灰色部分,结果为2。隐含层的结果就是我们通过卷积生成的特征图(下层卷积基本都是提取边缘等,往上层走逐步提取越抽象的成分)。

         一张动图体会卷积过程:

        此外,我们发现,即便步长为1,经过卷积之后的特征图尺寸也会缩小。由于过滤器在移动到边缘的时候就结束了,中间的像素点比边缘的像素点参与计算的次数要多。因此越是边缘的点,对输出的影响就越小,我们就有可能丢失边缘信息。为了解决这个问题,我们进行填充,英文叫padding,即在图片外围补充一些像素点,并将这些像素点的值初始化为0。

2.2.2 卷积要注意的问题

进行一次卷积操作前,我们需要确定三个参数,然后才能开始卷积:

  1. 卷积核大小:局部性和全局性的程度。
  2. 卷积核数量:决定输出的depth厚度,代表卷积核的数量。
  3. 步长:每次滑动的位置步长。
  4. 填充值:在外围边缘补充0的圈数,用来保证卷积后像素的大小不变。

2.3 为什么卷积

2.3.1 局部特征不变性(必要性)

        图片具有局部特征不变性:相同图片进行左右平移时,仍认为是一张图片。例如,下面图片是一个物体:

但是传统神经网络原理如下:

        这会将其视为不同的物体,仅仅因为物体所在图片的位置不同。 但是我们希望一个物体无论在左边、右边、上面下面都是一个物体都能被识别出来,因此我们的深度学习应该要尊重局部不变性的特点。

2.3.2 降低学习复杂度(重要性)

        在传统全连接的神经网络中,如果要对一张图片进行分类,连接方式如下图所示。我们把一张大小为100×100的图片的每个像素点都连接到每一个隐含层的节点上,如果隐含层的节点数为10000,那么连接的权重总数则为10^8个。当图片像素更大,隐含层的节点数目更多时,则需要更加庞大的权重数目。

        在卷积神经网络中,我们不再需要如此庞大的权重数目。如下图所示,在利用10×10的过滤
器对100×100的原图进行卷积时,该过滤器在不断滑动的过程中对应生成一张特征图,即一个过滤器(100个权重值)可对应一张特征图。如果我们有100张特征图,则一共只需要104个权重值。

        如此一来,在一个隐含层的情况下,卷积神经网络的权重数目可以减小至全连接神经网络权重数目的一万分之一,大大减少计算量,提高计算效率。

        在实际训练的过程中,第一层的每一个过滤器的权重值会不断地被更新优化,最终形成如下图所示的结果,每个过滤器的可视化纹理模式基本上反映了各个方向上的边缘特征。图3-40为我们展示了24个过滤器的纹理模式,这24种边缘可以描绘出我们的原图。

2.4 池化

        池化的目的是降低数据的维度,过程很简单,实际上就是下采样。具体过程如下图所示,假如特征图的尺寸是8x8,池化的窗口为4x4,则对特征图按照每4x4进行一次采样,生成一个池化特征值。这样一来,8x8的特征图可以生成一个2×2的池化特征图。

        在实际应用中,生成池化特征的方式一般有两种:最大值池化(Max-Pooling)与平均值池化
(Mean-Pooling)
。其中,最大值池化的方法是将特征图中池化窗口范围内的最大值作为池化结果的特征值,过程下图所示;平均值池化的方法是将特征图中池化窗口范围内的所有值进行平均后作为池化的特征值。

3. 卷积神经网络的构造

  • 输入层
    输入层接受原始图像数据。这个图像数据可能是灰度图像的像素值也可能是三个颜色通道构成的全彩图像像素值。
  • 特征层
    特征层由卷积层和激活层构成。卷积层利用卷积本身来获取特征,激活层利用Relu函数来增加非线性成分,从而学习更多更复杂的特征。
  • 池化层
    池化层用来减少特征层提取的特征图的大小,在尽可能保证原本特征的情况下,最大幅度减少特征图从而减少计算复杂度。
  • 全连接层
    全连接层将提取的特征进行组织和映射,从而得到最终输出。这个可以说分类标签也可以是一个回归值。
  • 输出层
    输出层将全连接层做的分类结果按照要求(标量值等)进行输出。

4. 总结

如果想要学习更多深度学习知识,大家可以点个关注并订阅,持续学习、天天进步

你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。