卷积运算

卷积核和滤波器是两个相关但不同的概念。卷积核是一个二维的矩阵,它用于对输入数据进行卷积运算,即用卷积核在输入数据上滑动,每次与覆盖的区域做内积,得到一个输出值。滤波器是一个三维的矩阵,它由多个卷积核组成,每个卷积核对应输入数据的一个通道。滤波器用于提取输入数据的不同特征,并生成一个或多个输出通道。
例如,如果输入数据是一个RGB图像,那么它有三个通道,分别是红色、绿色和蓝色。如果我们想用一个3x3的滤波器对这个图像进行卷积,那么这个滤波器实际上是由三个3x3的卷积核组成的,每个卷积核分别对应红色、绿色和蓝色通道。我们可以将这个滤波器看作是一个3x3x3的矩阵,其中每一层是一个卷积核。当我们用这个滤波器在图像上滑动时,每次我们都会用三个卷积核分别与图像的三个通道做内积,并将得到的三个值相加,得到一个输出值。这样,我们就可以得到一个输出通道。如果我们用多个不同的滤波器对图像进行卷积,那么我们就可以得到多个输出通道,每个输出通道反映了图像的不同特征。

卷积运算公式

很多工科类学科都会学习信号与系统这门课程,而这门课程的一个非常难以理解的概念一定是卷积,很多人仅仅停留在会套用公式计算的层面,因为并没有理解卷积的物理意义,考试三个月后,对卷积的认识就仅剩“卷积”这两个汉字了。下面以一种简单的方式讲解卷积的物理意义。注意:这里的卷积不同于人工智能算法卷积神经网络中的卷积。

思来想去,还是以打脸为例来说明。

基本假设:

你有一个喜欢打你脸的老婆。你老婆打你的时候用的力道是1公斤到50公斤不等(主要看心情),你的脸被1公斤力作用后的瞬间会肿1毫米高(被10公斤力作用就会肿10毫米,线性变化),当然由于你自身存在恢复能力,在没有持续被打的情况下,以1/10的速度恢复(每过1分钟会消肿0.1毫米,线性恢复)。将你的脸看成一个系统,这个过程称为系统的冲激响应,记为h(t)=1-t/10。

有一次她特别生气,先用10公斤力道招呼你1次,1分钟后还不解气,再用20公斤力道打你1次,再过一分钟后用3公斤力打你1次,后来总算平息了。

以第一次被打的瞬间作为计时的起点,力道随时间变化的函数记为f,则第一次力道记为f(0)=10,第二次力道记为f(1)=20,第三次力道记为f(2)=3.

我们来分别计算你的脸肿的高度。

第一次,脸肿高度为10毫米,即f(0)*h(0)=10

第二次,因为相隔第一次1分钟,所以此时(20公斤招呼过来之前)脸的高度是9毫米,20公斤力直接作用后,脸的高度是20+9=29毫米,即f(1)*h(0)+f(0)*h(1)=20+9=29

第三次,脸肿的高度是3+18+8=29毫米, 即f(2)*h(0)+f(1)*h(1) +f(0)*h(2)=29

上述过程就是卷积,在信号与系统中卷积的本质:系统当前的输出由当前输入响应加上历史剩余响应之和。用专业的话讲叫做:系统响应=零状态响应+零输入响应。

什么叫卷积运算?

卷积运算是一种在信号和图像处理、机器学习和深度学习等领域中常用的数学运算方法。它用于对输入数据与卷积核(也称为滤波器或特征检测器)进行操作,从而产生输出结果。

在卷积运算中,卷积核是一个小型的矩阵或滑动窗口,它通过对输入数据进行平移并逐个元素相乘,然后将乘积结果相加得到输出值。该过程可以描述为滑动卷积核在输入上移动,并与其所覆盖的数据区域进行点乘求和的操作。

具体而言,卷积运算可以概括为以下几个步骤:

对输入数据和卷积核进行对齐,通常是通过将卷积核在输入上进行滑动操作来实现。

在每个位置上,将卷积核与输入数据对应的区域进行逐元素相乘。

将相乘结果相加,得到卷积运算在该位置的输出值。

重复以上步骤,直到卷积核滑过输入的所有位置,生成最终的。

卷积运算在许多领域都有广泛的应用,缘检测、特征提取,以及深度学习中的卷积神网络(CNN)等。通过卷积运算,可以从输入数据中提取出具有特定特征和结构的信息,并用于后续的分析、识别或其他处理任务。