提起卷积运算相信大家都不陌生,这是一种很常见的运算。我们在学习《信号与系统》时就一直在和卷积打交道,在后来的一些课程中也有卷积运算的身影,比如《自动控制原理现代部分》中的卷积定理等。
在学习《信号与系统》时我们知道了卷积的定义,对于两个函数f(x)f(x)f(x)和 g(x)g(x)g(x),他们的卷积 f∗g(n)f*g(n)f∗g(n) 的公式如下:
连续形式:f∗g(n)=∫−∞+∞f(τ)∗g(n−τ)dτ\mathrm{f} * \mathrm{~g}(n)=\int_{-\infty}^{+\infty} f(\tau) * g(n-\tau) d \tauf∗ g(n)=∫−∞+∞​f(τ)∗g(n−τ)dτ //n为实数
离散形式:f∗g(n)=∑τ=−∞+∞f(τ)∗g(n−τ)//n,τ\mathrm{f} * \mathrm{~g}(n)=\sum_{\tau=-\infty}^{+\infty} f(\tau) * g(n-\tau) \quad / / \mathrm{n}, \tauf∗ g(n)=∑τ=−∞+∞​f(τ)∗g(n−τ)//n,τ为正整数
通过如上公式可以看到,卷积其实就是将一个函数 先进行翻转(公式中体现为−τ-\tau−τ或−n-n−n)再向右平移nnn或NNN的长度后得到函数g∗g^*g∗,再让g∗g^*g∗和fff进行累积求和或相乘求积分。通过分析我们已经知道了卷积的运算方法,也知道了卷积计算名字的由来:‘卷’就是对 进行的翻转和平移过程,就像卷纸巾一样,‘积’就是积求和或相乘求积分的过程。

我们对于卷积的理解一般就是这样了。但是卷积运算的意义究竟是什么呢?对于函数g(x)g (x)g(x)为什么要进行翻转后在平移的操作呢?平移的长度nnn代表着什么意义呢?带着这样的问题,我在网络上查阅了一些资料,最终写出一些体会与大家分享,来回答这三个问题。
一:卷积运算的意义是什么?
我们先抛开运算过程中对ggg所作的翻转和平移过程,设ggg作了翻转和平移得到函数 g∗g^*g∗,g∗g^*g∗与 fff所做的运算其实可以理解为 函数在 函数上的加权叠加。从信号的角度上来讲,也就是说将fff函数(fff 一般在信号中是指输入信号,ggg在信号中一般指响应函数)上各个选定的时间点上按照g∗g*g∗所规定的权值进行加权叠加。如下图所示,假设g(n)g(n)g(n)未知,g∗(n)=eng^*(n)=e^ng∗(n)=en,为一个衰减函数,则对应相乘累加后的卷积:f∗g(n)=f(0)+f(1)∗e−1+f(2)∗e−2+f(3)∗e−3+f(4)∗e−4+f(5)∗e−5+f(6)∗e−6+f(7)∗e−7+f(8)∗e−8+f(9)∗e−9+f(10)∗e−10+⋯+f(n)∗e−n\begin{array}{l} f * g(n)=f(0)+f(1) * e^{-1}+f(2) * e^{-2}+f(3) * e^{-3}+ \\ f(4) * e^{-4}+f(5) * e^{-5}+f(6) * e^{-6}+f(7) * e^{-7}+f(8) * \\ e^{-8}+f(9) * e^{-9}+f(10) * e^{-10}+\cdots+f(n) * e^{-n} \end{array}f∗g(n)=f(0)+f(1)∗e−1+f(2)∗e−2+f(3)∗e−3+f(4)∗e−4+f(5)∗e−5+f(6)∗e−6+f(7)∗e−7+f(8)∗e−8+f(9)∗e−9+f(10)∗e−10+⋯+f(n)∗e−n​公式中的结果就是fff信号各时间点采集值的加权和。

二:为什么要对ggg进行翻转后在平移的操作及平移的长度nnn代表着什么意义?
沿用上一个问题中的举例,首先输入信号fff离散后的图像如下图的红色轨迹,对于这个输入信号,f(0)f(0)f(0)表示t=0t=0t=0时刻的信号,f(1)f(1)f(1)表示t=1t=1t=1时刻的信号,。。。f(10)f(10)f(10)表示t=10t=10t=10时刻的信号,也是图中最后进入的信号,也就是最新的信号。而途中的响应函数ggg离散后如下图的黑色轨迹,是一个指数衰减函数,其物理意义是信号经过响应函数后随着时间的流逝会不断衰减,如t=0t=0t=0时输入信号f(0)f(0)f(0)在t=1t=1t=1时刻衰减为f(0)∗e−1f(0)*e^{-1}f(0)∗e−1 ,在t=3t=3t=3时刻衰减为f(0)∗e−3f(0)*e^{-3}f(0)∗e−3 ,t=1t=1t=1时刻的信号在t=2t=2t=2时刻时衰减为f(1)∗e−1f(1)*e^{-1}f(1)∗e−1,最终在t=nt=nt=n的时刻求得所有采集到的输入信号经过时间衰减后的输出和F(n)F(n)F(n)。这个输出F(n)F(n)F(n)的值受到在t=0t=0t=0时刻到t=nt=nt=n时刻之间所有采集到的输入信号的影响,只是随着时间的流逝,越早采集的信号对当前的输出影响就越小。

因此,输入信号f通过与g函数进行某种运算后可以得到输出F(n)F(n)F(n) 。而这之间的运算关系是怎样的呢?通过上述分析我们假设要求取F(5)F(5)F(5),即t=5t=5t=5时刻及之前所有采集到的信号的一个加权求和。按照分析:F(5)=f(0)∗e−5+f(1)∗e−4+f(2)∗e−3+f(3)∗e−2+f(4)∗e−1+f(5)\begin{array}{l} F(5)=\\f(0) * e^{-5}+f(1) * e^{-4}+f(2) * e^{-3}+f(3) * e^{-2}+f(4) * e^{-1}+f(5) \end{array}F(5)=f(0)∗e−5+f(1)∗e−4+f(2)∗e−3+f(3)∗e−2+f(4)∗e−1+f(5)​因为f(0)f(0)f(0)是最早采集到的信号,故其衰减的最为厉害,权值也最小。将其中的权值用响应函数ggg来表示,则F(5)=f(0)∗g(5)+f(1)∗g(4)+f(2)∗g(3)+f(3)∗g(2)+f(4)∗g(1)+f(5)∗g(0)=f(0)∗g(5−0)+f(1)∗g(5−1)+f(2)∗g(5−2)+f(3)∗g(5−3)+f(4)∗g(5−4)+f(5)∗g(5−5)=∑τ=05f(τ)∗g(5−τ)\begin{array}{l} F(5)=\\f(0) * g(5)+f(1) * g(4)+f(2) * g(3)+f(3) * g(2)+ f(4) * g(1)+f(5) * g(0)\\=\\ f(0) * g(5-0)+f(1) * g(5-1)+f(2) * g(5-2)+ f(3) * g(5-3)+f(4) * g(5-4)+f(5) * g(5-5) \\=\\\sum_{\tau=0}^{5} f(\tau) * g(5-\tau) \end{array}F(5)=f(0)∗g(5)+f(1)∗g(4)+f(2)∗g(3)+f(3)∗g(2)+f(4)∗g(1)+f(5)∗g(0)=f(0)∗g(5−0)+f(1)∗g(5−1)+f(2)∗g(5−2)+f(3)∗g(5−3)+f(4)∗g(5−4)+f(5)∗g(5−5)=∑τ=05​f(τ)∗g(5−τ)​看到这个公式大家有没有一点熟悉的感觉,没错这个式子F(5)=sumτ=05f(τ)∗g(5−τ)F(5)=sum_{\tau=0}^{5} f(\tau) * g(5-\tau)F(5)=sumτ=05​f(τ)∗g(5−τ)和卷积运算的离散形式∑τ=−∞+∞f(τ)∗g(n−τ)\sum_{\tau=-\infty}^{+\infty} f(\tau) * g(n-\tau)∑τ=−∞+∞​f(τ)∗g(n−τ)几乎一模一样,只是把nnn取了整数5。
看到这里可能大家已经隐约知道了卷积运算中对g进行翻转和平移的作用,为了让大家更直观的看到翻转和平移作用,引用知乎博主palet的解释:

首先这是给定的输入信号fff和指数衰减响应函数ggg 。为了达到上文提到的加权求和的效果,当取T(也就是上文的nnn)=10时,f(t)f(t)f(t)和g(t)g(t)g(t)的累积对应关系如下图所示:

如上图所示,对于t=10t=10t=10时刻最新的信号采集值f(10)f(10)f(10)是完全没有衰减的,因此与g(0)=1g(0)=1g(0)=1相乘,对于其它时刻的对应也如上分析,最终得到最近10个输入信号的采集值加权叠加的结果,具体请参看第二个问题的第二段。
这样的对应关系看起来十分复杂,因此我们对g(t)g(t)g(t)进行一些处理,首先进行翻转,翻转后f(t)f(t)f(t)与$g(-t) $的乘积对应关系如下图:

翻转之后乘积的对应关系似乎看起了有了一些规则,但依旧有些不易观察,之后对g(−t)g(-t)g(−t)进行长度为T(上文的nnn)的右移得到g(T−t)g(T-t)g(T−t),其对应关系变为了下图:

通过这张图后可以很清晰的看见f(t)f(t)f(t)与g(T−t)g(T-t)g(T−t)的乘积对应关系。又因为f(t)f(t)f(t)是实际的输入信号,其在ttt的负半轴是没有数值的,因此f(t)f(t)f(t)与g(t)g(t)g(t)做卷积运算也就是f(t)f(t)f(t)与g(T−t)g(T-t)g(T−t)做整个数轴上的累积运算时与作(0,T)(0,T)(0,T)的累积运算结果是相同的。因此可以得出卷积运算满足了信号指数衰减求和的结果。大家应该也明白了卷积运算在信号处理上的物理意义。同时大家也能够明白了平移长度nnn所代表的意义了,nnn代表的就是积分的x轴长度或者累加的次数,在信号上就是当前已采集输入信号值的次数。
本文主要分享的是卷积运算在信号处理上的一些物理意义,希望能够帮助读者更好的理解卷积运算。但实际上卷积运算在很多其他的地方也有很大的作用,比如图像识别中的边缘提取,卷积神经网络等等,有兴趣的话大家可以自行去了解。

深入浅出理解卷积运算相关推荐

  1. 卷积运算和特征图的理解

    卷积运算和特征图的理解 卷积核在原图相应位置按指定步长滑动,做内积(相乘再相加再加上偏置) 如下图左边,输入图像为7×7×3, 3个数字矩阵分别代表RGB三通道,因此卷积核也必须是三通道的,这里使用3 ...

  2. 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理

    卷积神经网络(Convolutional Neural Network,CNN)CNN 被用于图像识别.语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础. 1. 全连 ...

  3. 个人理解卷积 池化 的用处

    卷积 池化 的用处 卷积让局部特征更加明显.更加突出有用的特征. 池化,降低特征纬数,方便运算. 参考: 如何理解卷积神经网络(CNN)中的卷积和池化? - 知乎 CNN中卷积层和池化的作用和理解 - ...

  4. 干货合集 | 带你深入浅出理解深度学习(附资源打包下载)

    作者:Shashank Gupta 翻译:倪骁然 校对:卢苗苗 本文约2300字,建议阅读10分钟. 本文提供资源帮助你在放置一个conv2d层或者在Theano里调用T.grad的时候,了解到在代码 ...

  5. 理解卷积神经网络?看这篇论文就够了

    https://www.toutiao.com/a6641180491963695629/ 2018-12-31 23:32:08 南洋理工大学的综述论文<Recent Advances in ...

  6. odoo pivot中去掉求和_一文读懂深度学习中的卷积运算与图像处理

    华为人工智能认证讲师 袁梦 在人工智能深度学习技术中,有一个很重要的概念就是卷积神经网络 CNN(Convolutional Neural Networks).卷积神经网络被广泛地运用到计算机视觉中, ...

  7. 【转】卷积的本质及物理意义(全面理解卷积)

    转自:卷积的本质及物理意义(全面理解卷积)_彼岸花-CSDN博客_卷积的物理意义 卷积的本质及物理意义 提示:对卷积的理解分为三部分讲解1)信号的角度2)数学家的理解(外行)3)与多项式的关系 1 来 ...

  8. 手把手教你理解卷积神经网络

    摘要: 卷积神经网络是一种识别和理解图像的神经网络.本文将从不同的层次来介绍卷积神经网络. 手把手教你理解卷积神经网络(一) 本文将继续为你介绍关于卷积神经网络的知识.为了保持文章的简洁性和全面性我将 ...

  9. 理解卷积神经网络的利器:9篇重要的深度学习论文(下)

    摘要: 为了更好地帮助你理解卷积神经网络,在这里,我总结了计算机视觉和卷积神经网络领域内许多新的重要进步及有关论文. 手把手教你理解卷积神经网络(一) 手把手教你理解卷积神经网络(二) 继" ...

最新文章

  1. oracle 27140,ORA-27140 ORA-27300 ORA-27301
  2. 【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
  3. Codeforces344_C(数学思维)
  4. 用postman在CSDN上创建博客
  5. .NET使用免费开源类库操作Excel
  6. [gtest][002] A quick start to build the Google C++ Testing project
  7. Tomcat服务器安装配置与web服务器介绍
  8. Eclipse开发程序,取得新的工程后,启动Web服务出错原因总结
  9. 【PTA】520 钻石争霸赛 2021,119分
  10. NYOJ599 - 奋斗的小蜗牛
  11. 内核调试神器SystemTap — 更多功能与原理(三)
  12. 个人分享:一些学者实用的网站
  13. [java][马士兵j2se视频教程]
  14. Office 针式打印机如何插入色带
  15. 一篇文章看明白 Android 从点击应用图标到界面显示的过程
  16. 数据挖掘与机器学习——数据挖掘概述
  17. H5+CSS+JS Tab导航栏自动切换
  18. 打造高效能团队之测试能力提升
  19. 和校验及异或校验C代码
  20. Autocad2013中文破解版(64位)安装图文教程

热门文章

  1. 有关计算机的应用的文章,关于计算机常用软件的论文参考文献 计算机常用软件参考文献有哪些...
  2. SQL查询含有%号的字段
  3. MD5算法加密~16位、32位、64位
  4. 虫虫blog html教程,虫虫的成长历程
  5. 工业锅炉模拟实训装置
  6. 固定焦距的最佳成像计算公式!
  7. MacBook 上有哪些好玩的游戏
  8. 【Attention】深度学习中的注意机制:理解序列模型中的注意机制How Attention works in Deep Learning
  9. wifi天眼 一款智能远程监控软件。
  10. js中的prototype有什么作用?