在频谱/频域中执行转置卷积?

信息处理 fft 卷积 频率 神经网络 深度学习
2022-02-12 09:59:07

我正在做一些关于在频域中执行端到端生成建模的实验。我有一个工作卷积层,但还没有一个Conv2DTranspose等价物。请注意,这不是反卷积!不幸的是,目前我的信号处理知识还很薄弱(今年秋天我要参加一些 SP 课程)。

我知道卷积是通过执行逐点乘法在频域中执行的。转置卷积是否具有等效的频域?如果是这样,在这里执行的正确操作或一系列操作是什么?

1个回答

基本上,如果我们将卷积定义为y=hx, 可以写成 Matrix 形式(见Generate the Matrix Form of 1D Convolution Kernel):

y=Hx

转置卷积由下式给出:

HTz

如果你仔细看,你会发现空间操作基本上是相关而不是卷积(即内核没有翻转)。

为了在频域中实现这一点,您需要乘以频域中内核的共轭而不是内核本身。

棘手的部分是尺寸。它将按照我在Replicate MATLAB's conv2()in Frequency Domain 中的描述工作。

请注意,在深度学习的上下文中,操作的整个想法是内核将被学习(在每次反向传播迭代中自适应地)。这是为了学习上采样操作的最佳内核。

参考