一、卷积是啥
卷积(Convolution)是信号处理和图像处理中的一种数学运算,广泛应用于计算机视觉、深度学习等领域。卷积操作通过滑动一个滤波器(或称为卷积核、卷积滤波器)在输入数据(如图像)上,生成一个特征映射或输出。
数学定义
在一维情况下,卷积可以定义为:
其中:
- s 是输入信号。
- k 是卷积核(或滤波器)。
- t 是时间变量或位置变量。
在离散情况下(如图像处理),卷积定义为:
对于二维图像,卷积操作可以表示为:
其中:
- S是输入图像。
- K是二维卷积核。
- (i,j) 是输出图像的坐标。
卷积在深度学习中的应用
在深度学习中特别是卷积神经网络(Convolutional Neural Networks, CNNs)中,卷积操作用于提取输入数据的特征。以下是卷积在CNN中的一些关键点:
-
卷积核:通常是一个小的矩阵(例如,3x3,5x5),用于扫描输入图像的每个位置。每个卷积核可以看作一个特定的特征检测器。
-
特征映射:卷积操作生成的输出称为特征映射(feature map),它表示输入数据的某些特征。
-
步幅(Stride):步幅决定了卷积核在输入图像上滑动的步长。步幅越大,输出特征映射的尺寸越小。
-
填充(Padding):为了控制输出特征映射的尺寸,可以在输入图像的边缘添加填充。常见的填充方式有“零填充”(在边缘添加零值)和“有效填充”(不添加填充)。
-
非线性激活函数:卷积操作后通常会应用非线性激活函数(如ReLU)来引入非线性特性。
卷积的直观理解
可以将卷积操作类比为在图像上滑动一个小窗口(卷积核),在每个位置计算窗口内的像素值与卷积核对应元素的加权和。这个加权和就构成了特征映射的一个像素值。通过这种方式,卷积核能够在图像中检测到特定的模式或特征,如边缘、角点等。
示例
假设我们有一个简单的3x3输入图像和一个3x3的卷积核:
输入图像 S:
卷积核 K:
卷积操作的结果(特征映射)可能是:
具体的计算过程是将卷积核在输入图像上滑动,并在每个位置计算对应元素的乘积和。
总结
卷积是一种重要的数学运算,通过在输入数据上滑动一个滤波器来提取特征。在深度学习中,卷积操作是卷积神经网络的核心,用于自动学习和提取输入数据的特征。