卷积神经网络(CNN)中的卷积层(Convolutional Layer)

        卷积层(Convolutional Layer)是卷积神经网络(Convolutional Neural Network, CNN)中的基础且关键组件。以下是对卷积层的详细解读:

一、定义与功能

        卷积层主要通过卷积操作来提取输入数据(例如图像)中的局部特征。这些特征对于后续的图像识别、分类等任务至关重要。卷积操作涉及将卷积核(也称为滤波器、神经元)在输入数据上滑动,并在每个位置执行局部加权求和,从而生成特征图(Feature Map)。

图1 卷积层的操作过程

二、核心要素

        卷积层中包含的核心要素有填充、卷积核、步辐、激活函数。

  1. 卷积核Kernel:卷积层包含多个卷积核,每个卷积核负责提取输入数据中的一种特定特征。卷积核的大小、数量以及权重初始化方式都是影响特征提取效果的关键因素。
  2. 步幅(Stride):步幅决定了卷积核在输入数据上滑动的距离。较大的步幅会导致输出特征图的尺寸减小,同时可能丢失一些细节信息。
  3. 填充(Padding):为了保持输出特征图的尺寸与输入相近,有时会在输入数据的边缘添加额外的像素值(通常为0),这称为填充。填充还可以帮助卷积层更好地捕捉边缘信息。
  4. 激活函数:卷积操作后,通常会应用一个非线性激活函数(如ReLU)来增加网络的非线性特性,从而提高模型的表达能力。

三、工作原理

        在卷积层中,每个卷积核都会在输入数据上滑动,并执行以下操作:

        1. 局部加权求和:将卷积核中的权重与输入数据上对应位置的像素值相乘,并求和得到一个标量值。

图2 通过局部加权求和进行一次卷积操作

        其中,特征图中的7为计算出来的标量值

        2. 加上偏置项(bias):将加权求和的结果加上一个偏置项,以调整输出值的范围,使其更好地适应目标函数。

y=7+bias

        偏置值(bias)是一个重要的参数,偏置值的得来并不是通过卷积操作本身计算得出的,而是作为网络学习的一部分,在训练过程中通过反向传播算法进行更新和优化。

        3. 应用激活函数:将加上偏置项后的结果传递给一个非线性激活函数(如ReLU),以引入非线性特性。

图3 ReLU函数非线性激活特征图

        随着卷积核在输入数据上的滑动,上述操作会重复进行,从而生成一个二维特征图,该特征图表示了输入数据中某种特定特征的分布。

四、特点与优势

  1. 局部连接与权值共享:卷积层中的神经元只与输入数据中的局部区域相连,并且不同位置的神经元共享相同的权重和偏置项。这大大减少了网络的参数数量,降低了计算复杂度,并提高了模型的泛化能力。
  2. 平移不变性:由于卷积操作是局部进行的,并且卷积核在输入数据上滑动时保持权重不变,因此卷积层对输入数据的平移变换具有一定的鲁棒性。
  3. 特征提取能力强:通过叠加多个卷积层,可以逐层提取输入数据中的不同层级特征,从而实现对复杂图像模式的识别。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐