为什么频率维度需要进行非等变卷积?

阅读 demucs 代码时,发现对频率维度有这样的操作:

add frequency embedding to allow for non equivariant convolutions over the frequency axis.

但什么是非等变卷积?非等变性又是什么?

等变性 equivariant、不变性 invariant

等变性:对于一个函数来说,若输入数据发生变化(例如平移),则输出数据也会以相同的方式变化。例如对于卷积,如果将输入图像平移一段距离,输出的特征也会向相同方向平移。

不变性:对于一个函数,输入数据发生的变化不会影响到输出。例如对于 maxpool,输入图像进行较小平移可能不会影响到输出特征的分布。

所以,非等变卷积就是指:输入数据的变化不会导致输出数据也会相应直接变化 的卷积。

题外话:CNN 的空间不变性

例如对于一张猫猫图,略微向左平移依然是一张猫猫图。对于卷积分类模型(例如 Resnet),对图像进行平移几乎不会影响分类结果。这主要归功于卷积神经网络的池化层。

空间不变性是 CNN 归纳偏置(inductive bias)之一。CNN 的另一个归纳偏置是局部相关性(locality)。

为什么频率维度需要进行非等变卷积?

声音的频率轴很特殊,不同频率上的声音往往有特别的意义(例如人声总是占据中高频,贝斯总是占据低频)。为了让网络就学习到与频率位置相关的特征,不被平移混淆,需要进行非等变的卷积。

demucs 的做法很直接,使用 nn.Embedding 对 512 个频率位置进行编码。这样一来网络就能意识到不同频率有着自己的意义了。

demucs 在这里用到了两个 trick:初始化 nn.Embedding 参数使其平滑递增;添加 scale 让 embedding 权重的训练更加敏感。非常有趣。

参考来源

posted @ 2024-04-06 00:14  倒地  阅读(4)  评论(0编辑  收藏  举报