1 卷积的步骤
1 过滤器(卷积核)(Filter或Kernel):
卷积层使用一组可学习的过滤器来扫描输入数据(通常是图像)。每个过滤器都是一个小的窗口,包含一些权重,这些权重通过训练数据进行学习。
过滤器的大小(例如3x3或5x5)决定了它观察输入数据的范围大小。较小的过滤器可以捕捉到细粒度的特征,而较大的过滤器可以捕捉到更大范围的特征。
每一个卷积核(或过滤器)通常被设计用来从输入图像中提取某类特征。
2 特征图(Feature Map):
当过滤器在输入数据上滑动(或卷积)时,它会计算过滤器与输入数据的局部区域之间的点乘积,生成特征图。每个特征图代表了过滤器检测到的特定类型的特征在输入数据中的位置。
例如,在处理图像时,一个过滤器可能专门用来检测边缘,另一个过滤器可能用来检测纹理。
3 步长(Stride):
步长决定了过滤器移动的间隔。步长为1意味着过滤器每次移动一个像素,步长为2则意味着每次移动两个像素。
步长的大小影响特征图的空间维度,步长较大会导致特征图的尺寸减小。
4 填充(Padding):
**为了保持特征图的尺寸不受过滤器大小的影响,或者为了防止边界信息丢失,可以在输入数据周围添加填充。**常见的填充方式有"valid"(不添加填充)和"same"(添加填充以保持尺寸不变)。
5 激活函数:
卷积操作后通常会应用一个非线性激活函数,如ReLU(Rectified Linear Unit),以增加网络的非线性能力,使其能够学习更复杂的特征。
6 权重共享:
在整个输入数据上,同一个过滤器的权重是共享的,这意味着无论过滤器在哪个位置,它都使用相同的权重。这使得CNN在参数数量上更加高效,同时也赋予了模型某种平移不变性。
2 卷积的例子
其中,新图像大小计算公式
CONV过程参考: 卷积运算的动态演示:
https://cs231n.github.io/assets/conv-demo/index.html
3 一些机制
局部感知主要是通过卷积核来实现的。在卷积神经网络(CNN)中,每个卷积核负责提取输入数据(如图像)的一种特定局部特征。这里的局部特征可以是图像的边缘、角点、纹理或者更抽象的模式。
参数共享机制就是说,在同一卷积层中,一个卷积核的权重在整个输入数据上共享。这不仅减少了模型的参数量,也使得模型对输入数据的局部区域具有更高的敏感度。