谁能解释一下相关性和卷积的相似点和不同点?请解释背后的直觉,而不是数学方程(即翻转核/脉冲)...最好提供每个类别在图像处理领域的应用示例。
谁能解释一下相关性和卷积的相似点和不同点?请解释背后的直觉,而不是数学方程(即翻转核/脉冲)...最好提供每个类别在图像处理领域的应用示例。
在dsp stack exchange上,你可能会得到更好的答案,但首先我发现有许多类似术语,它们很难精确定义。
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相关性和显著性
卷积与相关很相似,不同之处在于我们在进行相关操作之前需要将过滤器翻转过来。