以下主要来自傻羊学习的笔记(《深度学习医学图像处理》/张光磊/2025,P48-49)和个人思考🐑:
--------------------------------------------------------------------------------------------------------------------------

3.6.1 卷积层

顾名思义,卷积层是卷积神经网络的核心,负责对输入数据进行卷积操作,从而提取特征并逐渐构建抽象的表示。

1.卷积计算

下面以二维的灰度图为例【傻羊:灰度照片作为输入时,只有1个维度/通道,与之相对就是RGB/彩图,有3个维度/通道】来说明卷积操作的基本原理。考虑大小为H×W 的灰度图像【🐑:即 H*W*1】,其中H表示高度,W表示宽度。同时,引入卷积核(或称为过滤器)【🐑:有博主还专门研究过,认为卷积核是2维表示,而过滤器是3维表示】,其大小为 K1×K2,其中K1和K2通常是奇数【🐑:奇数时才存在唯一的"中心"--围绕中心像素对称分布】,二者相等时称为对称卷积【🐑:最常见】,不等时称为不对称卷积。卷积操作将形成新的特征图,具体计算方式如图3-9所示,流程如下:

初始位置:将卷积核放置在输入图像的左上角。

卷积计算:卷积核的每个元素与对应位置的图像像素【🐑:卷积核中的元素初始是随机分配的,后面基于损失函数结果通过反向传播算法不断更新,故又称为 权重相乘,并将所有乘积的结果相加,得到输出的第一个像素值【🐑:如果输入通道不是1呢?-->那就对n个输入通道的计算结果累加求和,见下文】。

水平移动:将卷积核向右平移S个像素【🐑:S即步长,步长的设置要根据卷积核大小以及传入图像像素来定,e.g. 3*3卷积核通常S为1,即移动前后2个卷积框内2/3的元素是重复的,这种重复恰恰就是保持图片像素原有顺序关系/联系状态的关键,即所谓的“局部连接”;相反,如果此时步长S为3,那意味着临近卷积框的元素是独立/割裂的】,再次进行卷积计算。重复这个过程,直到卷积核到达输入图像的右边界。

垂直移动:将卷积核向下平移S 个像素,然后将其重新定位到当前行的最左侧位置,并进行卷积计算。

重复③和④,直到卷积核遍历完整张输入图像。

这一过程实际上是在不同位置对局部区域进行加权求和而形成输出特征图。通过调整卷积核的权重,卷积层能够学习不同的特征【🐑:区别于传统机器学习中的特征概念,这里的"不同特征"相对抽象,并不是特征A对应“边缘”、特征B对应“纹理”这种简单关系……;在理解它之前,需要理解卷积层输出通道数的概念,见傻羊另一篇短文:【CNN】卷积神经网络:如何理解(输出)通道/Channels?】,如边缘、纹理等。                                                                            

图3-9   卷积层计算示意图【🐑:自己计算的是11来着,图中的8应该是仅供示例来着 

卷积操作会导致输入和输出的维度发生变化。以对称卷积为例,假设输入图像的大小为H×W,卷积核的大小为K×K,卷积操作的步长为S表示卷积核每次移动的像素数),则输出特征图的大小可以通过以下公式计算: 

其中,H和W分别表示输出特征图的高度和宽度。通过选择合适的卷积核大小和步长,可以控制特征图的尺寸【🐑:话虽这么说,但目前即使多用几个3*3的卷积核,也不常用5*5或7*7的核】。

【傻羊找了另外一个插图,帮助大家理解计算过程:

        .插图N

对于RGB三通道的图像,我们需要先对每个通道分别进行卷积操作,然后将各通道的结果相加得到最终的输出特征图。例如,对于一个通道数为C的H×w×c大小的图像,使用K×K×C大小的卷积核以1的步长进行卷积,则该卷积核输出的特征图维度为(H-K+1)(W-K+1)。对于包含m个卷积核的卷积层,将这m个卷积核的特征图进行堆叠, 该卷积层输出的特征图维度为(H-K+1)(W-K+1)m。

哈哈,太抽象了,🐑借用一张图

多个输入通道的卷积核计算过程

2.卷积层参数

卷积层参数主要包括卷积核的权重和偏置项。其中,权重用于进行局部区域的加权求和,而偏置项用于对卷积操作输出的特征图进一步进行线性调整【🐑:类似于线性模型的 截距项】。这些参数是通过反向传播算法进行训练的,目标是最小化网络输出与实际标签之间的差异【🐑:即损失函数。卷积层通过多个卷积核并行工作,每个卷积核都学习提取不同的特征,从而形成多通道的输出特征图。这些特征图的堆叠构成了卷积层的最终输出。通过卷积层的操作,神经网络能够逐渐构建对输入图像更抽象的表示,为后续的任务提供更有意义的特征。

3.卷积层优势

卷积层的主要优势在于局部连接权重共享两方面。其中,局部连接体现在输出特征图的每个值仅依赖于输入图像的一个局部区域(称为感受野),而不是整个输入图像,由此在减少模型参数量的同时,保留了图像中邻近像素之间的空间关系;而权重共享主要体现在每一个卷积核对于整张输入图像的权重参数为固定值【🐑:并非常数项的意思;更多是强调对于同一个卷积核,在多个输入通道的水平/垂直平移遍历过程中保持不变但每个卷积核内的权重恰恰是深度学习所要优化的目标,另外,不同卷积核(输出通道)的权重参数也不同】,由此可以进一步降低模型的参数量。

这里是傻羊,感谢🥰

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐