一文看懂卷积运算(convolution)与互相关运算(cross-correlation)的区别

这篇具有很好参考价值的文章主要介绍了一文看懂卷积运算(convolution)与互相关运算(cross-correlation)的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

互相关运算定义

互相关运算图示

互相关运算完整计算示例

卷积数学定义

卷积运算图示

卷积与互相关运算区别

深度学习中的卷积为何能用互相关运算代替


互相关运算定义

在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按对应元素相乘并求和,得到输出数组中相应位置的元素。

互相关运算图示

假设我们有一张image和一个filter

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

 

我们对图像中的蓝色区域进行Cross-correlation(互相关运算)

那么在点E处的计算方式就是: 

G[3,3]=a∗A+b∗B+c∗C+d∗D+e∗E+f∗F+g∗G+h∗H+i∗I

互相关运算完整计算示例

输入数组为3*3,核数组为2*2,输入数组计算如下:

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算  

卷积数学定义

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

 

卷积运算图示

我们还是用上面互相关运算那幅图,我们记得cross-correlation的循环顺序是从左到右,从上到下

而convolution是从右到左,从下到上,即在点E处的计算为:G[3,3]=a∗I+b∗H+c∗G+d∗F+e∗E+f∗D+g∗C+h∗B+i∗A 那么这就相当于将‘filter翻转’了,即先上下翻转、再左右翻转,然后进行cross-correlation运算,如下所示:

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算 

可是我们为什么要这么做呢,有什么意义呢,下面让我们来看下

卷积与互相关运算区别

考虑,一张图如下,我们进行cross-correlation,得到的结果如下:

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

 

如果将上面换成真实点的图

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

 

​我们看到得到的结果就像是filter,只不过翻转了下。因此如果我们将filter翻转了一次再进行cross-correlation,那再加上上面的这次翻转就是两次翻转了,得到的图像就也就不变了。

于是卷积就有了下面的性质

Identity:E=[...0,0,1,0,0...],F*E=F(你可以想下cross-correlation行不行)

互相关运算,深度学习入门,深度学习,人工智能,卷积运算,互相关运算

 

那么什么时候convolution和cross-correlation是一样的呢?

当filter关于x轴y轴对称时,通常的Average filter和Gaussian filter都是,两者得到的结果相同。

深度学习中的卷积为何能用互相关运算代替

        现在大部分的深度学习教程中都把卷积定义为图像矩阵和卷积核的按位点乘。实际上,这种操作亦应该是互相关(cross-correlation),而卷积需要把卷积核顺时针旋转180度(即将卷积核上下翻转再左右翻转)然后再做点乘。卷积运算和互相关运算虽然类似,但如果它们使用相同的核数组,对于同一个输入,输出往往并不相同。

        那么,你也许会好奇在深度学习中卷积层为何能使用互相关运算替代卷积运算。这主要原因在于,在深度学习中核数组都是学出来的:卷积层无论使用互相关运算或卷积运算都不会影响模型预测时的输出。假设卷积层使用互相关运算学出某一核数组。设其他条件不变,使用卷积运算学出的核数组即为互相关核数组按上下、左右翻转。也就是说原始输入与学出的已翻转的核数组再做卷积运算时,依然得到的是同样输出。因此大多数深度学习中提到的卷积运算均指互相关运算。

对文章存在的问题,或者其他关于Python相关的问题,都可以在评论区留言或者私信我哦

如果文章内容对你有帮助,感谢点赞+关注!

关注下方GZH:阿旭算法与机器学习,可获取更多干货内容~欢迎共同学习交流文章来源地址https://www.toymoban.com/news/detail-781874.html

到了这里,关于一文看懂卷积运算(convolution)与互相关运算(cross-correlation)的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一、前言 二、远程控制中的安全威胁 三、国内外远控软件安全机制 【ToDesk】 【RayLink】 【Teamviewer】 【Splashtop】 四、安全远控预防 一、前言 近期,远程控制话题再一次引起关注。 据相关新闻报道,不少不法分子利用远程控制软件实施网络诈骗,致使用户钱财受损,进

    2024年01月19日
    浏览(47)
  • 动态卷积 Dynamic convolution

    每周汇报,实属不易。近期学习了关于动态卷积的相关内容,写成一个小节,帮助理解什么为动态卷积。内容较为宽泛,若想学习细节知识,可以参考论文。和知乎链接:https://zhuanlan.zhihu.com/p/141868898?from_voters_page=true 首先看到的是这篇ICLR2022年的文章:omni dimensional dynamic co

    2024年02月04日
    浏览(36)
  • 卷积码(convolutional code)

    分块码 (block code):数据流(datastream)被切分为包含 k k k 个数据符号(data symbol)的块,叫做 数据字 (dataword),然后将它们分别编码为包含 n n n 个码符号(code symbol)的块,叫做 码字 (codeword),拼接成码流(codestream)。单个码字仅仅依赖于单个数据字。 Hamming码、B

    2023年04月12日
    浏览(76)
  • 行列可分离卷积 separable convolution

    概述 推导 知识沙漠中的一点扩展 如有纰漏错误,恳请指正:D 行列可分离卷积(separable convolution)主要应用于图像处理算法中,用于将一遍2D离散卷积(也称滤波,下文交替使用)操作分离成2遍1D卷积操作。如果图像像素数为 m m m ,卷积核(也称卷积模板、模板)大小为 k ∗ k k*k k ∗

    2024年02月03日
    浏览(31)
  • Convolutional Neural network(卷积神经网络)

    目录 Why CNN for Image? The whole CNN structure  Convolution(卷积) Max Pooling Flatten  CNN in Keras  What does CNN learn? what does filter do what does neuron do  what about output  Deep Dream Application Playing Go Speech  Text 当我们直接用一般的fully connected的feedforward network来做图像处理的时候,往往会需要太多

    2024年02月05日
    浏览(41)
  • 【论文笔记】动态蛇卷积(Dynamic Snake Convolution)

    精确分割拓扑管状结构例如血管和道路,对医疗各个领域至关重要,可确保下游任务的准确性和效率。然而许多因素使分割任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。针对这个问题,作者提出了动态蛇卷积,该结构在管状分割任务上获得了极好的性能。

    2024年02月03日
    浏览(35)
  • TCN(Temporal Convolutional Network,时间卷积网络)

            实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别、机器翻译、手写体识别、序列数据分析(预测)等。         在实际应用中,RNN 在内部设计上存在一个严重的问题: 由于网络一次只能处理一个时间步长,后一步必须等前一步处理完才能

    2024年02月01日
    浏览(36)
  • 【论文笔记合集】卷积神经网络之深度可分离卷积(Depthwise Separable Convolution)

    本文作者: slience_me 我看的论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 假设输入为D F ×D F ×M,输出为输入为D F ×D F ×N,卷积核为D K ×D K ×M,共有N个卷积核进行卷积操作 下图为标准的卷积过程,每个卷积核对输入的向量进行卷积操作,得到一个

    2024年01月16日
    浏览(44)
  • 166基于matlab的通过峭度指标与互相关系数筛选IMF进行SVD分解去噪

    基于matlab的通过峭度指标与互相关系数筛选IMF进行SVD分解去噪,分辨虚假imf,提取最大峭度imf图。输出去噪前后时域及其包络谱结果。程序已调通,可直接运行。 166 matlab SVD去噪 IMF筛选 包络谱 (xiaohongshu.com)

    2024年02月19日
    浏览(52)
  • 卷积神经网络CNN(Convolutional Neural Network)

    一、CNN与NN的区别 卷积神经网络与传统神经网络的区别: 二、CNN的整体架构 1.输入层;2.卷积层;3.池化层;4.全连接层 三、卷积层做了什么 首先将图形分割成一个个小区域,对于每一个区域特征不同;接下来选择一种特征计算的方法,为每一个区域计算特征值,得到特征图

    2024年02月04日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包