当前位置:首页 > 嵌入式 > 嵌入式分享
CNN的“核心骨架”由一系列功能明确的层级组成,其中卷积层(Conv)、池化层(Pooling)、全连接层(FC)是三大核心层级,此外还包含激活函数、批归一化(BN)、Dropout等辅助层级,各层级协同作用,实现从原始像素到高层语义特征的逐步抽象。以下详细拆解每个核心层级的结构、工作原理与核心作用,让大家清晰理解CNN的“运作逻辑”。
卷积层是CNN最核心的层级,也是CNN能够实现自动特征提取的关键,其核心作用是提取图像的局部特征(底层、中层特征),如边缘、纹理、颜色等,相当于人类视觉系统中“捕捉局部细节”的环节。卷积层的工作原理围绕“局部感受野”和“权值共享”两个核心设计展开,二者共同实现了特征的高效提取与参数优化。
1. 核心设计1:局部感受野(Local Receptive Field)
人类视觉系统中,每个视觉神经元仅能感知视野中的局部区域,这种特性被称为“局部感受野”。CNN借鉴了这一特性,在卷积层中,每个神经元仅关注输入图像(或上一层特征图)的局部区域,而非整个图像,这个局部区域就是该神经元的“局部感受野”。
具体来说,卷积层中包含多个可学习的“卷积核”(也称为滤波器,Filter),卷积核是一个小型的二维矩阵(如3×3、5×5、7×7),其尺寸就是神经元的局部感受野尺寸。例如,一个3×3的卷积核,每个神经元仅关注输入图像中3×3的局部区域,通过计算卷积核与该局部区域的点积,得到一个新的特征值,这个特征值就表征了该局部区域的细节特征(如边缘、纹理)。
局部感受野的核心优势是:能够精准捕捉图像的局部关联特征(如边缘的连续性、纹理的重复性),同时减少冗余信息的干扰——图像中目标的特征往往是局部关联的(如猫的耳朵边缘是由相邻像素的亮度突变构成的),局部感受野能够聚焦于这些局部关联,避免无关区域的干扰,提升特征提取的精准度。
2. 核心设计2:权值共享(Weight Sharing)
权值共享是CNN减少参数数量、提升计算效率的核心设计。在卷积层中,同一个卷积核在整个输入图像(或上一层特征图)上滑动时,使用的是相同的权重参数,这就是“权值共享”。
举个具体的例子:假设输入是一张1024×1024的RGB彩色图(3个通道),卷积层包含64个3×3的卷积核。每个卷积核的参数数量为3×3×3=27(3个通道×3×3的矩阵),64个卷积核的总参数数量为64×27=1728。如果采用传统全连接层,第一层若有64个神经元,参数数量将达到1024×1024×3×64≈20亿,二者相差近12万倍。
权值共享的核心逻辑是:同一类特征在图像的不同位置可能出现(如边缘特征可能出现在图像的左上角、右下角等不同位置),使用同一个卷积核提取这类特征,既能保证特征提取的一致性,又能大幅减少参数数量,降低计算复杂度和过拟合风险,让模型能够快速训练。
3. 卷积运算的完整流程
卷积层的核心操作是“卷积运算”,其完整流程分为四步,以输入为RGB彩色图(3通道)、卷积核为3×3、步长为1、填充为1为例,具体如下:
第一步,输入准备:输入图像为3通道的二维矩阵(如H×W×3,H为图像高度,W为图像宽度),每个通道对应一张灰度图(如R通道、G通道、B通道);卷积核为64个3×3×3的三维矩阵(64个卷积核,每个卷积核包含3个3×3的二维矩阵,分别对应输入的3个通道)。
第二步,卷积核滑动:每个卷积核在输入图像的每个通道上,按照预设的“步长”(Stride,即每次滑动的像素数,通常为1或2)滑动,每次滑动都会覆盖一个3×3的局部区域。
第三步,点积计算:对于每个滑动窗口,将卷积核的参数与输入图像对应局部区域的像素值进行点积运算(即对应位置的数值相乘后求和),再加上一个可学习的“偏置项”(Bias),得到一个特征值。
第四步,特征图生成:将所有滑动窗口的特征值组合起来,就得到了该卷积核对应的一张“特征图”(Feature Map);64个卷积核会生成64张特征图,最终卷积层的输出为64通道的特征图(如H×W×64),每张特征图对应一种类型的局部特征(如部分特征图表征边缘,部分表征纹理)。
4. 卷积层的关键参数
卷积层的性能与关键参数的设置密切相关,核心参数包括卷积核尺寸、步长、填充、卷积核数量,这些参数的设置需要根据输入图像尺寸、任务需求进行调整,具体如下:
(1)卷积核尺寸(Kernel Size):最常用的尺寸为3×3,其次是5×5、7×7。3×3的卷积核是最主流的选择,原因是:它能够精准捕捉局部细节特征,同时参数数量少、计算效率高,且多个3×3卷积核叠加(如2个3×3卷积核叠加,等效于1个5×5卷积核),能够提取更复杂的特征,同时提升模型的深度和表征能力。5×5、7×7的卷积核适用于需要捕捉更大范围局部特征的场景(如大目标的轮廓特征),但参数数量和计算复杂度更高。
(2)步长(Stride):卷积核每次滑动的像素数,常用值为1、2。步长为1时,卷积核逐像素滑动,特征图尺寸与输入图像接近(结合填充),能够保留更多的细节特征,但计算量较大;步长为2时,卷积核每滑动2个像素,特征图尺寸会减半,计算量大幅降低,但会丢失部分细节特征,适用于需要快速降维的场景。
(3)填充(Padding):在输入图像的边缘填充0像素,目的是避免卷积运算后特征图尺寸缩小,同时保留图像边缘的特征(若不填充,边缘区域的像素被卷积核覆盖的次数更少,容易丢失边缘特征)。常用的填充方式有“Same Padding”(填充后,特征图尺寸与输入图像一致)和“Valid Padding”(不填充,特征图尺寸会缩小),其中Same Padding应用最广泛。
(4)卷积核数量(Number of Kernels):卷积核的数量决定了卷积层输出特征图的通道数,也决定了提取特征的种类数量。卷积核数量越多,能够提取的特征种类越丰富,但参数数量和计算复杂度也越高。通常,网络浅层的卷积核数量较少(如32、64),用于提取底层简单特征(边缘、颜色);网络深层的卷积核数量较多(如128、256、512),用于提取中层、高层复杂特征(局部结构、语义特征)。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读
关闭