在卷积神经网络(CNN)中,在进行卷积之前,每一步的权重矩阵都需要翻转其行和列以获得内核矩阵。Hugo Larochelle 在以下一系列视频中对此进行了解释:
daccess-ods.un.org daccess-ods.un.org计算隐藏映射将对应于使用内核矩阵对来自上一层的信道进行离散卷积,并且该内核是根据隐藏权重矩阵Wij,我们在其中翻转行和列。
如果像其他类型的NN一样将卷积的减少步长与常规矩阵乘法进行比较,权宜之计将是一个明确的解释。但是,这可能不是最相关的比较...
在数字成像处理中,将滤镜卷积到图像上(对于实际直觉来说这是一个很棒的youtube视频)似乎与以下内容有关:
- 该事实卷积是缔合而(交叉)的相关是没有的。
- 由于时域中的卷积等效于频域中的乘法(卷积定理),因此可以在图像的频域中将滤波器作为乘法应用。
在这种特定的技术环境中,DSP 相关定义为:
F∘I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x+i,y+j)
这实际上是Hadamard乘积中所有单元的总和:
F∘I(x,y)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F[−N,−N]I[x−N,y−N]⋮F[0,−N]I[x,y−N]⋮F[N,−N]I[x+N,y−N]⋯⋱⋯⋱⋯F[−N,0]I[x−N,y−N]⋮F[0,0]I[x,y]⋮F[N,0]I[x+N,y]⋯⋱⋯⋱⋯F[−N,N]I[x−N,y+N]⋮F[0,N]I[x,y+N]⋮F[N,N]I[x+N,y+N]⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
其中是一个滤波函数(表示为矩阵),而I (x ,y )是位置(x ,y )上图像的像素值:F(i,j)I(x,y)(x,y)
互相关的目的是评估探针图像与测试图像的相似程度。互相关图的计算依赖于卷积定理。
另一方面,卷积定义为:
F∗I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x−i,y−j)
只要过滤器是对称的,就与过滤器的行和列翻转的相关操作相同:
F∗I(x,y)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F[N,N]I[x−N,y−N]⋮F[0,N]I[x,y−N]⋮F[−N,−N]I[x+N,y−N]⋯⋱⋯⋱⋯F[N,0]I[x−N,y−N]⋮F[0,0]I[x,y]⋮F[−N,0]I[x+N,y]⋯⋱⋯⋱⋯F[N,−N]I[x−N,y+N]⋮F[0,−N]I[x,y+N]⋮F[−N,−N]I[x+N,y+N]⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎡⎣⎢⎢⎢⎢⎢⎢⎢1474141626164726412674162616414741⎤⎦⎥⎥⎥⎥⎥⎥⎥
从计算上看,这两个运算都是Frobenius内积,相当于计算矩阵乘法的轨迹。
问题(在评论和第一个答案之后重新排列):
- CNN中卷积的使用是否与FFT相关联?
从我到目前为止的收集来看,答案是否定的。FFT已用于加速卷积的GPU实现。但是,尽管在预激活步骤中使用了卷积,但FFT通常不是CNN中结构或激活功能的一部分。
- CNN中的卷积和互相关是否等效?
是的,它们是等效的。
- 如果简单如“没有区别”,将权重翻转到核矩阵中有什么意义?
卷积的关联性(在数学证明中很有用),关于FT和卷积定理的任何考虑均不适用。实际上,似乎没有发生翻转(互相关被简单地标记为卷积)(?)。