浅聊卷积及其应用

提到卷积这个词,并不陌生,在复变函数与积分变换,概率论,控制工程,信号处理,傅里叶变换中经常遇到,这篇文章我想来深入挖掘卷积背后的数学理论(因为网络上都是各种图,看的眼花缭乱的),并且卷积的应用非常广泛,我将会以人工智能,计算机视觉里最火的卷积神经网络(CNN)作为应用。

先用数学的角度认识他

(f*g)(n)=\int_{-\infty}^\infty f(\tau)g(n-\tau)d\tau

 书本上的性质

卷积定理

即时域的卷积等于频域相乘

时域卷积定理为:\mathcal{F}[g(t)*h(t)]=G(\omega)\cdot H(\omega)

频域卷积定理为:\mathcal{F}[g(t)\cdot h(t)]=\frac1{2\pi} G(\omega)*H(\omega)

时域信号可以分解成一串不同频率正弦信号的叠加。根据卷积的分配率,两个时域信号的卷积最终可以展开成两两正弦信号的卷积的和。由于不同频率的正弦信号的卷积为0,所以最终只剩下相同频率的正弦信号的卷积。而卷积的结果就是频率不变,幅度相乘。在频域里边就表现为直接相乘。 

为了更好地理解这些问题,我们先给出两个典型的应用场景:

  1. 信号分析中的卷积:

假设我们有一个输入信号f(t)和一个系统的单位冲击响应g(t)。卷积操作可以表示为f(t) g(t),其中""表示卷积。卷积的结果就是输出信号。

想象一下,我们将输入信号f(t)和冲击响应g(t)都展开成一系列脉冲(或点),然后进行叠加。具体来说,对于f(t)中的每一个点,我们都将其乘以g(t)中对应的点,然后将所有的乘积加起来。这个过程就得到了输出信号。

这里以离散信号为例

接着对g(t)进行g(-t)操作,也就是翻转,关于y轴对称。

接着计算T时刻的卷积时,要维持的约束就是:t+ (T-t) = T,也就是将g(-t往右边移动),找到信号直接重叠的部分

然后进行叠加(是相加不是相乘),和线性时不变系统一样

  1. 图像处理中的卷积:

在图像处理中,卷积核g(x,y)通常是一个二维矩阵,用于与输入图像f(x,y)进行卷积操作。这个操作可以看作是将卷积核在输入图像上滑动,然后在每个位置上都计算卷积核和图像对应区域的乘积之和。

例如,如果我们使用一个模糊卷积核,那么输出图像将会得到模糊效果;如果我们使用一个边缘检测卷积核,那么输出图像将会得到边缘强化效果。

下面就来了解卷积神经网络

它由三个部分组成

首先是卷积层

卷积本来就是把两个函数合体来得出一个新函数的运算,自然可以做成滤波器(也叫卷积核,filter),不过值得注意的是图像处理中的卷积核是不需要翻转的(但是一般为了演示卷积这个按照数学公式进行操作时,用翻转便于理解---f(x)→f(-x),绕y轴对称一下)。

左边也就输入层(input layer),中间卷积核,输出得到的是特征图(feature map) ,每次卷积操作的一个步骤例如左边图上9个点叫做感受野

为了保证输入输出维度一致,会给原始图像矩阵周围补上零,像这样:

 刚好找到一个动图,5×5的矩阵在3×3的卷积核卷积下,步长设为1,则得到的矩阵是3×3的

延x轴或者y轴滑动,就可以求出图像中各个位置的卷积,其输出结果是处理以后的图像(即经过平滑、边缘提取等各种处理的图像)。

通过这一步就可以提取出图像的特征。

接着是池化层(pooling)

因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。

 忽略掉个别像素的偏差,其意义不光能降低数据维度,降低训练参数和运算量,同时还能避免所谓的过拟合。

最后是全连接层

全连接层也就是传统的神经网络该做的事了

那神经网络又是什么?

我感觉他有点像一元的线性回归方程,也类似与非线性回归(但它是针对高阶,又像泰勒展开一样),其实说白了也就是每一个输入都有不同的权重w,然后进行累加,加入偏置b,就得到线性方程y=kx+b。

 但是神经网络这么高级的东西,怎么可能这么简单,科学家们在后续加入激活函数(也就感知机)加入非线性。我的理解是,如果不加入激活函数,那么

  常用的非线性激活函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层。 经过事实证明还是,Relu函数最好用,也最简单。

这个也叫做前向传播,相应的也有反向传播(自己去搜,也就是计算残差率,学习率,模型评估)

用visio画的神经网络图

经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

以上就是卷积神经网络入门的知识了,事实上,这已经是很早就流行的东西了,现在的科研论文基本都是在此基础上进行优化改进,调整参数,权重,模型等等,亦或是用在很多未知领域上,后续就是如何搭建和训练自己的卷积神经网络,在后文会给出代码。

最后,卷积神经网络的运用,不用多说,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被大量应用于计算机视觉(图片分类,目标定位检测,图像分割)、自然语言处理等领域 ,我想,未来将在机械工程(故障诊断,无人驾驶),信号处理,核工程,医学影像等领域大放异彩。

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值