卷积与相关的区别

21

谁能解释一下相关性和卷积的相似点和不同点?请解释背后的直觉,而不是数学方程(即翻转核/脉冲)...最好提供每个类别在图像处理领域的应用示例。


2
这个问题似乎不适合在这里讨论,因为它涉及到DSP理论,应该发到http://dsp.stackexchange.com上。 - Paul R
3个回答

24

在dsp stack exchange上,你可能会得到更好的答案,但首先我发现有许多类似术语,它们很难精确定义。

  1. 相关性
  2. 交叉相关
  3. 卷积
  4. 相关系数
  5. 滑动点乘
  6. 皮尔逊相关

1、2、3和5非常相似

4和6也相似

请注意,所有这些术语都涉及到点积。

你问了关于相关性和卷积的问题 - 它们在概念上是相同的,只是在卷积中输出被翻转了。我怀疑你可能在问相关系数(如皮尔逊相关)和卷积/相关之间的区别。

前提条件

我假设你知道如何计算点积。给定两个大小相等的向量v和w,每个向量都有三个元素,代数点积是v[0]*w[0]+v[1]*w[1]+v[2]*w[2]

有许多关于点积的理论,涉及到它所代表的内容等等....

请注意,点积是一个表示这两个向量/点v、w之间映射的单个数字(标量)。在几何学中,经常计算两个向量之间的夹角余弦值,它使用点积。两个向量之间的夹角余弦值介于-1和1之间,可以被视为一种相似性度量。

相关系数(皮尔逊)

等长向量v、w之间的相关系数就是两个零均值信号(从v中减去v的平均值以得到zmv,从w中减去w的平均值以得到zmw - 这里zm是零均值的简称)的点积除以zmv和zmw的大小,以产生一个介于-1和1之间的数字。接近零意味着微弱的相关性,接近+/- 1则表示高度相关。它衡量了这两个向量之间的相似性。

更好的定义请参见http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient

卷积与相关

当我们想要将v1和v2进行相关/卷积时,基本上我们正在计算一系列点积,并将它们放入一个输出向量中。假设v1有三个元素,v2有10个元素。我们要计算的点积如下:

output[0] = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]
output[1] = v1[0]*v2[1]+v1[1]*v2[2]+v1[2]*v2[3]
output[2] = v1[0]*v2[2]+v1[1]*v2[3]+v1[2]*v2[4]
output[3] = v1[0]*v2[3]+v1[1]*v2[4]+v1[2]*v2[5]
output[4] = v1[0]*v2[4]+v1[1]*v2[5]+v1[2]*v2[6]
output[5] = v1[0]*v2[7]+v1[1]*v2[8]+v1[2]*v2[9]
output[6] = v1[0]*v2[8]+v1[1]*v2[9]+v1[2]*v2[10] #note this is 
#mathematically valid but might give you a run time error in a computer implementation 

如果需要进行真正的卷积,输出可以翻转。

output[5] = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]
output[4] = v1[0]*v2[1]+v1[1]*v2[2]+v1[2]*v2[3]
output[3] = v1[0]*v2[2]+v1[1]*v2[3]+v1[2]*v2[4]
output[2] = v1[0]*v2[3]+v1[1]*v2[4]+v1[2]*v2[5]
output[1] = v1[0]*v2[4]+v1[1]*v2[5]+v1[2]*v2[6]
output[0] = v1[0]*v2[7]+v1[1]*v2[8]+v1[2]*v2[9]

请注意,由于为了简单起见,我仅在v1和v2都被定义的情况下计算卷积,因此输出中的元素少于10个。

还要注意,卷积只是一些点积的数量。多年来一直在努力加速卷积的运算速度。扫描式的点积运算速度较慢,可以通过先将向量转换到傅里叶基空间中,然后计算一个矢量乘法,最后再求逆来加速。但这里不会详细讨论...

你可能也想查看这些资源并搜索相关信息:在Python中计算Pearson相关性和显著性


12
我得到的最佳答案来自这份文件:http://www.cs.umd.edu/~djacobs/CMSC426/Convolution.pdf 我只会复制摘录一段文档内容:
“两者之间的关键区别在于卷积是可结合的,也就是说,如果 F 和 G 是滤波器,则 F*(GI) = (FG)*I。如果您不相信这一点,请尝试一个简单的例子,使用 F=G=(-1 0 1),例如。卷积是可结合的非常方便。例如,假设我们想要平滑一张图像并对其进行导数。我们可以通过将图像与高斯滤波器卷积,然后将其与导数滤波器卷积来实现此目的。但是,我们还可以将导数滤波器与高斯滤波器进行卷积以产生称为高斯差分(DOG)的滤波器,然后将其与我们的图像卷积。这样做的好处是,DOG 滤波器可以预先计算,并且我们只需要将一个滤波器与我们的图像进行卷积。
通常,人们使用卷积进行图像处理操作,例如平滑,而使用相关性将模板匹配到图像。然后,我们不介意相关性不是可结合的,因为使用相关性将两个模板组合成一个并不是真正有意义的事情,而对于卷积,我们经常想要组合两个滤波器。”

6

卷积与相关很相似,不同之处在于我们在进行相关操作之前需要将过滤器翻转过来。


此答案并未为上面的答案增添任何新信息! - Ali
4
这段话的意思是:“但它很简短,而且基本上是我寻找的内容。这个答案缺少的是如何翻转它的方法。我相信可以进行水平和垂直翻转。” - lucidbrot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接