零-相关背景
1)时序卷积网络(Temporal convolutional network, TCN)
TCN【1】的提出是为了使得卷积神经网络具备时序特性,与多种RNN结构相对比,发现在多种任务上TCN都能达到甚至超过RNN模型。TCN主要基于因果卷积(Causal Convolution)和空洞卷积/膨胀卷积(Dilated Convolution)。
1.1)因果卷积(Causal Convolution)
因果卷积中,对于上一层 时刻的值,只依赖于下一层 时刻及其之前的值。和传统的卷积网络的不同之处在于:因果卷积不能看到未来的数据,它是单向的结构,不是双向的。也就是说只有有了前面的因才有后面的果,是一种严格的时间约束模型,因此被成为因果卷积。
图1:因果卷积示意图。
假设滤波器 ,输入序列 ,在 处的因果卷积为 。若图1中的最后一个输出节点为 ,前一隐层的滤波器为 ,则根据公式可得:
因果卷积的特点:
- 不考虑未来的信息,只基于当前时刻及以前的信息做判断;
- 追溯历史信息越久,所涉及的前层中的神经元越多。
1.2)空洞卷积/膨胀卷积(Dilated Convolution)
膨胀卷积主要是为了解决常见的卷积网络中,对时序信息的建模长度受限于卷积核大小这一问题(具体表现为:若想学习更长时间的依赖关系,就需要线性的堆叠更多的层)【2】。
标准卷积,Standard Convolution with a 3 x 3 kernel (and padding)。[动态图来源:vdumoulin/conv_arithmetic]:
膨胀卷积,Dilated Convolution with a 3 x 3 kernel and dilation rate 2。[动态图来源:vdumoulin/conv_arithmetic]:
标准卷积通过增加 pooling 层来获得更大的感受野,而经过 pooling 层后肯定存在信息损失的问题。空洞卷积是在标准的卷积里注入空洞,以此来增加感受野。空洞卷积多了一个超参数 dilation rate,指的是 kernel 的间隔数量(标准的 CNN 中 dilatation rate 等于 1)。空洞的好处是不做 pooling,在无信息损失的情况下,增加了感受野,让每个卷积输出都包含较大范围的信息。【1】
假设滤波器 ,输入序列 ,在 处的dilatation rate等于 的膨胀卷积为 。若下图2中的最后一个输出节点为 ,前一隐层的滤波器为 ,则根据公式可得:
图2:空洞卷积【1】
空洞卷积的感受野大小为,所以增大或都可以增加感受野。在实践中,通常随网络层数增加,以的指数增长,例如上图中依次为。
1.3)TCN中的因果卷积与空洞卷积
TCN主要用于时间序列研究,具体采用一维卷积网络。下图3是 TCN 架构中的因果卷积与空洞卷积,可以看到每一层时刻的值只依赖于上一层时刻的值,体现了因果卷积的特性;而每一层对上一层信息的提取,都是跳跃式的,且逐层 dilated rate 以 2 的指数增长,体现了空洞卷积的特性。由于采用了空洞卷积,因此每一层都要做 padding(通常情况下补 0),padding 的大小为。
图3:TCN 中的因果卷积与空洞卷积。
综上,TCN只是一维CNN的一个结构创新,TCN提出的一部分原因是为了和现在有限的计算力做妥协(获得更快的计算速度)。关于TCN更多信息,及Tensorflow实战,请参见【1】。
2)Sound Event Localization and Detection,SELD
Sound Event Detection(SED)是检测出一段音频中,目标声音事件的有无及开始和终止的时间。Sound Event Localization and Detection(SELD)【3】是SED的延申。SELD针对的是多通道音频片段,检测多通道输入音频片段中目标声音事件的有无及开始和终止的时间,和它们各自的水平角(elevation angle)和俯仰角(azimuth angle),后两者源于麦克风的指向性【4】。所以,Sound Event Localization and Detection是声音事件的定位与检测。
壹-正文
“SELD-TCN: Sound Event Localization & Detection via Temporal Convolutional Networks”【5】的切入点在于:最近关于SELD的研究中,常使用CRNN模型,但是考虑到RNN的循环特性,很难将CRNN模型有效的在嵌入式硬件中实现,这不仅是因为CRNN的计算难以并行化处理,更是因为处理CRNN需要high memory bandwidth和large memory buffers。所以,本文基于TCN开发了一个鲁棒且对硬件友好的新结构SELD-TCN。SELD-TCN在四个不同的数据集上,比目前最好的模型SELDnet表现都好,且SELD-TCN基于GPU时,训练时快4倍,推理时快40倍。
引言(Introduction)
声音事件的定位与检测(SELD)可以被分为两个子任务:声音事件检测(SED)和声波到达方向评估(direction of arrival (DOA) estimation)。此外,根据音频片段中声音事件是否存在重叠,声音事件的定位与检测可以分为:单音频事件的定位与检测;和复音音频事件的定位与检测两种。
目前关于SELD的研究中,常使用RNN模型,但是RNN对于内存和功耗的要求高,使其难以在嵌入式硬件中实现。为了学习更长时间的依赖信息,时序卷积网络(Temporal convolutional network, TCN)被应用于序列处理任务中。相比于RNN模型,TCN可以:
- 通过卷积并行的处理整个序列;
- 通过调节dilation rate 或 kernel sizes灵活的调节感受野;
- 此外,TCN中伴随着skip connections的residual blocks,为梯度流提供了一个通道,可使得训练时,网络的梯度更加稳定。
这应该是首次尝试通过TCN来解决SELD任务。
方法(METHODOLOGIES)
1)Baseline:SELDnet
图4:An overview of the SELDnet architecture。
模型的输入是:相位和幅度(phase and magnitude)分开的多通道频谱图。
模型的输出:最后两个并行的全连接层,并列的第一个Dense层都是128个神经元,然后,
- SED分支中,最后一个Dense层的神经元数是事件的类别数 ,激活函数为sigmoid,输出范围为 ;
- DOA分支中,最后一个Dense层的神经元数是 ,相当于3层,每一层表示麦克风阵列周围单位球面原点的笛卡尔坐标,3层分别对应 坐标。激活函数为tanh,输出范围为 .
2)Proposed:SELD-TCN
图5:An overview of the proposed SELD-TCN architecture。
图4的SELDnet中的循环层,由TCN代替。但是,为了模仿双向RNN中对未来信息的使用,文中将TCN块内的所有因果卷积修改为非因果卷积。
实验(Experiments)
文中在4个不同的数据集(ANSYN, MANSYN, REAL, and MREAL)上,对比了SELD-TCN和SELDnet的表现。此外,文中在不同拥有采样率(44.1, 16, and 8 kHz)的音频片段中,测试两个模型的鲁棒性,并添加不同类型的噪声、调节SNR,以显示其抗噪和抗混响能力(against noise and reverberance)。
结论(Conclusion)
- 文中提出的模型SELD-TCN针对于不同采样率的音频更鲁棒,且双向的RNN可以由非因果的TCN代替;
- SELD-TCN的抗噪和抗混响能力优于SELDnet;
- 相比于SELDnet,SELD-TCN的参数虽然更多,但是得益于卷积并行化处理的特性,SELD-TCN在训练和推理时更快。
References
【2】如何理解空洞卷积(dilated convolution)?
【3】http://dcase.community/challenge2019/task-sound-event-localization-and-detection
【4】波束形成算法学习笔记之二(固定波束形成)_Li Kang 笔记本-CSDN博客
【5】SELD-TCN: Sound Event Localization & Detection via Temporal Convolutional Networks