说话人验证任务中混合变体的多任务学习
在当今的技术领域,说话人验证(Speaker Verification,SV)作为一项关键技术,在众多应用中发挥着重要作用,如人员身份验证等。然而,传统的深度嵌入模型在训练时通常需要大量标注好的数据集,这不仅耗时费力,而且成本高昂。因此,利用聚类生成伪标签(Pseudo-Labels,PLs)进行自监督训练的方法逐渐受到关注。但这种方法存在一个问题,即下游性能在很大程度上依赖于准确的PLs,而聚类算法生成的PLs往往不准确且包含噪声,容易导致模型过拟合,从而影响性能。
1. 说话人验证技术概述
说话人验证的主要任务是根据说话人的语音特征,确认说话人的身份是否与其声称的一致。传统上,i-向量框架是语音嵌入的主流方法之一,它能够以无监督的方式总结语音的分布模式,并且在相对较少的训练数据下也能生成固定大小的紧凑向量来表示说话人的身份。近年来,基于深度学习的架构如ECAPA - TDNN逐渐崭露头角,在文本无关的说话人识别中取得了最先进(SOTA)的性能。
大多数深度嵌入模型采用全监督方式进行训练,需要大量带有说话人标签的数据集。但获取高质量的标注数据集成本高、耗时长,因此人们开始关注更经济但有噪声或未标注的数据集。为了解决这个问题,常见的方法是使用聚类生成PLs,并使用这些标签训练说话人嵌入网络。然而,由于PLs的不准确和噪声,深度过参数化网络容易过拟合训练PLs中的噪声和损坏,导致性能下降。
为了缓解这些副作用,研究人员采用了mixup方法,通过对不同数据样本及其标签进行插值来增强数据,从而提高模型对未见过样本的泛化能力。本文在此基础上,探索了四种其他的mixup变体,旨在进一步提升说话人验证系统的性能和鲁棒性。
2. 相关背景知识
2.1 标签噪声处理方法
从噪声标签中学习的方法通常可分为两类:一类是专注于创建抗噪声算法,直接从噪声标签中学习;另一类是标签清洗方法,旨在去除或纠正错误标注的数据。本文采用多种mixup策略进行多任务学习(MTL),试图提出一种抗噪声的自监督方法,减轻标签噪声的影响,并在PLs的差异之外实现良好的泛化。
2.2 实例混合(i - Mix)用于说话人验证
对于目标函数$L_{pair}(x, y)$,其中$x$是输入数据,$y$是对应的PL,给定两个数据实例$(x_i, y_i)$和$(x_j, y_j)$,i - mix损失定义如下:
$L_{i - mix}^{pair}((x_i, y_i), (x_j, y_j)) = L_{pair}(\lambda x_i + (1 - \lambda)x_j, \lambda y_i + (1 - \lambda)y_j)$
$= \lambda L_{pair}(\lambda x_i + (1 - \lambda)x_j, y_i) + (1 - \lambda)L_{pair}(\lambda x_i + (1 - \lambda)x_j, y_j)$
其中$\lambda \sim Beta(\alpha, \alpha)$是来自Beta分布的混合系数,PLs是one - hot向量。i - mix增强策略旨在生成具有身份标签$\lambda y_i + (1 - \lambda)y_j$的合成训练样本$\lambda x_i + (1 - \lambda)x_j$,以提高自监督说话人嵌入网络的泛化能力。
同时,使用加性角边际softmax(AAMSoftmax)目标来训练自监督说话人嵌入网络,其公式为:
$L_{AAMSoftmax} = -\frac{1}{N} \sum_{i = 1}^{N} \log(\frac{e^{s(\cos(\theta_{y_i, i} + m))}}{K_1})$
其中$K_1 = e^{s(\cos(\theta_{y_i, i} + m))} + \sum_{j = 1, j \neq i}^{C} e^{s\cos\theta_{j, i}}$,$N$是批量大小,$C$是类别数,$y_i$对应PL索引,$\theta_{j, i}$表示权重矩阵$W_j$的列向量与第$i$个嵌入$\omega_i$之间的角度,$s = 30$是表示球体的半径,$m = 0.35$是控制角边际的超参数。
将i - mix策略融入自监督AAMSoftmax中,以提升网络的泛化能力:
$L_{i - AAMSoftmax} = -\lambda \frac{1}{N} \sum_{i = 1}^{N} \log(\frac{\exp(s(\cos(\theta_{y_i, mix(i, r \neq i)} + m)))}{K_{AAM}^{mix, i}})$
$-(1 - \lambda) \frac{1}{N} \sum_{i = 1}^{N} \log(\frac{\exp(s(\cos(\theta_{y_{r \neq i}, mix(i, r \neq i)} + m)))}{K_{AAM}^{mix, r \neq i}})$
$K_{AAM}^{mix, i} = \exp(s(\cos(\theta_{y_i, mix(i, r \neq i)} + m))) + \sum_{j = 1, j \neq i}^{c} \exp(s(\cos(\theta_{y_j, mix(i, r \neq i)})))$
2.3 潜在级实例混合(l - Mix)用于说话人验证
虽然将i - mix增强应用于原始数据在说话人验证的泛化方面已证明其有效性,但由于线性插值的性质,标准的i - mix策略只能在原始样本之间生成合成样本,这限制了合成样本的多样性。因此,提出了潜在级i - mix(l - mix)方法。
在l - mix框架中,先在梅尔频率倒谱系数(MFCC)特征上训练变分自编码器(VAE),然后使用训练好的VAE在潜在空间进行mixup,生成新的MFCC样本$x_{l - mix}$。类似于i - mix,l - mix可以应用于自监督AAMSoftmax目标:
$L_{l - AAMSoftmax} = -\lambda \frac{1}{N} \sum_{i = 1}^{N} \log(\frac{\exp(s(\cos(\theta_{y_i, l - mix(i, r \neq i)} + m)))}{K_{AAM}^{l - mix, i}})$
$-(1 - \lambda) \frac{1}{N} \sum_{i = 1}^{N} \log(\frac{\exp(s(\cos(\theta_{y_{r \neq i}, l - mix(i, r \neq i)} + m)))}{K_{AAM}^{l - mix, r \neq i}})$
$K_{AAM}^{l - mix, i} = \exp(s(\cos(\theta_{y_i, l - mix(i, r \neq i)} + m))) + \sum_{j = 1, j \neq i}^{c} \exp(s(\cos(\theta_{y_j, l - mix(i, r \neq i)})))$
由于VAE的非线性性质,l - mix生成的样本预计比标准i - mix策略更加多样化。
3. 提出的混合策略
Mixup是一种非常有效的数据增强方法,它不仅可以减少对对抗样本的记忆,而且性能优于经验风险最小化。本文提出了以下四种mixup变体:
3.1 DoubleMix
这是一种基于简单插值的数据增强方法,最初用于文本分类,通过学习隐藏空间中的“移位”特征来增强模型的鲁棒性。它首先利用多种增强方法为每个训练数据生成扰动样本(第一步使用Dirichlet分布的系数进行mixup),然后在神经网络的隐藏空间中使用扰动样本和原始样本进行第二步插值,无需标签混合。由于使用的是次优的噪声PLs,DoubleMix是抑制训练过程中错误标签记忆效应的理想选择。
将其应用于i - mix(输入空间)和l - mix(潜在空间)的自监督说话人验证(SSSV)设置中,生成更多样化的增强样本,有助于减少对训练中使用的特定增强的记忆,从而提高泛化和鲁棒性。同时,在训练目标中添加Jensen - Shannon散度(JSD)正则化项,以最小化原始数据$p_{org}$和扰动变体$p_{i - mix}$、$p_{l - mix}$的预测分布之间的距离,稳定训练过程。此外,约束原始样本的混合权重大于合成扰动样本的权重,以平衡适当扰动和潜在注入噪声之间的权衡。
3.2 基于帧的混合
这种方法不是用系数$\lambda \in [0, 1]$对两个完整的MFCC输入进行插值,而是从一个MFCC样本中选择一定百分比($100 * \lambda$)的随机帧,并用第二个样本中的帧替换它们(随机选择并保持其在第二个样本中的顺序)。标签的插值方式与经典mixup类似。这种基于帧的mixup方法可以进一步增强模型的鲁棒性,并提高局部帧级别的注意力。
3.3 矩交换混合(MoEx)
MoEx方法鼓励利用说话人语音的矩信息,因为这些信息可以揭示说话人的风格。研究表明,从实例归一化和位置归一化中提取的矩(均值和标准差)可以大致捕捉图像的风格和形状信息。在MoEx中,将一个训练图像的学习特征的矩替换为另一个图像的矩,并对目标标签进行插值,迫使模型从矩以及归一化特征中提取训练识别信号。在说话人验证中,将MoEx应用于说话人的语音帧,以鼓励在验证过程中利用矩信息。
3.4 虚拟混合训练(VMT)
受VMT的启发,该方法鼓励模型在训练点之间表现出线性行为。将这种正则化方法应用于基于i - mix和l - mix的SV系统,作为额外的无监督任务。VMT最初用于无监督域适应,通过构建未标记训练点的周围点并强制周围点和训练点之间的一致预测,来平滑神经网络的输出分布。
通过最小化每两个混合样本(两个输入MFCC特征)对应的生成说话人嵌入与它们单独嵌入输出的插值之间的JSD或余弦距离来计算VMT损失。这样,VMT对训练样本之间的区域施加局部Lipschitz性,这是成功训练聚类假设的关键因素。特别是,这种VMT任务可以进一步减轻错误PLs的记忆。
4. 多任务学习(MTL)
同时利用多种mixup策略并非易事,因为不同任务可能有相互冲突的需求。为了将上述mixup策略结合起来,本文采用了多任务学习(MTL)的训练范式,将每个mixup目标视为不同的任务。除了单独研究这些策略外,还使用共享表示和硬参数共享同时训练它们,以学习这些任务之间的共同特征和语义,并结合/转移它们不同的归纳偏差,从而诱导出更简单、更具泛化性的假设,解释所有任务。
由于这些策略都与SV任务密切相关,这种方法有望产生更好的说话人嵌入和更高的SV性能,因为它可以隐式地作为一种自我纠正方法,引导模型的注意力只关注最显著的特征。此外,任务之间的硬参数共享大大降低了过拟合的风险,特别是对于小数据集,MTL可以提高每个样本的数据效率,潜在地加快学习速度,并减少对大规模数据的需求。
然而,MTL也可能带来一些负面转移挑战,如跨任务干扰、一个或多个任务主导训练过程、任务学习速度不同或模型的表示能力有限等。本文对一些基于MTL的想法及其克服噪声标签的有效性进行了研究,以实现对未见过样本的良好泛化。
本文提出的MTL框架的一般架构包括一个全局共享的特征提取器或嵌入网络(ECAPA - TDNN模型),用于生成话语级嵌入,然后是特定任务的输出分支(全连接层)或模块,用于为每个任务进行预测。将各种特定任务的损失目标组合成一个单一的聚合损失函数$loss_{MTL}$,模型通过最小化该损失函数进行训练。
5. 实验结果与分析
为了评估提出的方法,在VoxCeleb2数据集上进行了一系列实验。使用VoxCeleb2的开发子集(包含来自5994个说话人的1092009个话语)训练嵌入网络,并根据原始VoxCeleb1试验列表(包含来自40个说话人的4874个话语)进行评估。
实验中使用的声学特征是通过Kaldi工具包提取的40维MFCC,每10ms提取一次,使用25ms的汉明窗。采用了波形级数据增强,包括加性噪声和房间脉冲响应(RIR)模拟。对于基于ECAPA - TDNN的系统,还对提取的MFCC特征进行了类似于specaugment方案的增强。生成512维的说话人嵌入,并使用余弦相似度进行最终验证。
设置5000为聚类的最佳数量。MTL通过两种不同的方式进行:一种是通过多个辅助任务(添加多个辅助损失),所有任务通过单个共享模型(ECAPA - TDNN)进行优化;另一种是通过多头架构(MHA),使用多个额外的输出头(特定任务的线性层),每个头专门用于一个不同的任务。
表1展示了使用Agglomerative Hierarchical Clustering(AHC)生成的PLs进行训练的不同系统的等错误率(EER)性能比较。可以看出,采用的基于ECAPA - TDNN的嵌入系统在AAMSoftmax目标下进行训练是鲁棒的,能够很好地泛化,尽管优化了多个目标或PLs中存在大量噪声,但仍能取得与监督基线相当的性能。
| Labels/Model | MHA | double i - mix | double l - mix | frames mixup | MoEx mixup | VMT mixup | i - mix (α = 1) | i - mix (α = 0.5) | l - mix (α = 1) | l - mix (α = 0.5) |
|---|---|---|---|---|---|---|---|---|---|---|
| AHC (mean - std scaling) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | 3.478 | 3.51 | 3.377 | 3.409 |
| AHC (l2 - Norm) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | 3.42 | 3.399 | 3.314 | 3.372 |
| AHC (l2 - Norm) Coef. 8 | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | 5.265 | 4.798 | 4.798 | 5.525 |
| … | … | … | … | … | … | … | … | … | … | … |
表2展示了使用原始真实标签进行训练的不同系统的EER性能比较。结果表明,使用真实标签时,MTL方法通常更具优势,能够提供验证性能增益或与不采用MTL的基线相当的结果。
| Labels/Model | MHA | double i - mix | double l - mix | frames mixup | MoEx mixup | VMT mixup | i - mix (α = 1) | i - mix (α = 0.5) | l - mix (α = 1) | l - mix (α = 0.5) |
|---|---|---|---|---|---|---|---|---|---|---|
| True labels (Supervised baseline) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | 1.988 | 1.341 | 1.612 | 1.458 |
| True labels Coef. 0.5 | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | 1.925 | 1.538 | 1.787 | 1.474 |
| … | … | … | … | … | … | … | … | … | … | … |
通过实验还可以观察到,当使用多个目标函数时,验证性能通常会更稳定和持续地提高。然而,当使用AHC PLs组合多个损失目标时,下游验证性能会出现整体下降,这表明组合多个相关的基于mixup的目标并不总是有益的。正则化诱导的MTL在相关任务上表现良好,但可能优于惩罚模型复杂性的正则化,轻微的数据流形或任务语义转移就足以导致任务之间的对抗竞争。
此外,提出的双重i - mix和双重l - mix策略似乎略优于其他基于MTL的mixup策略,并且将它们与VMT mixup结合使用有助于进一步提高性能。这可能是因为双重i - mix、双重l - mix目标和VMT mixup不使用PLs,仅基于$p_{org}$和$p_{i - mix}$、$p_{l - mix}$之间的JSD距离或余弦相似度。相反,MoEx和基于帧的混合都依赖于噪声PLs,可能会加剧对性能的负面影响。
在不同系统中,余弦距离通常能带来最佳性能,这可以通过其在最终验证决策中的使用来解释。采用多头架构(MHA)在性能上似乎没有明显优于单头架构,除了在l - mix参数$\alpha = 0.5$的情况下以及验证性能的稳定性方面。
6. 与其他基线的比较
表3展示了与最近一些采用其他自监督学习(SSL)目标的SOTA SSSV方法的比较。结果表明,本文提出的方法明显优于所有基线,与i - mix和l - mix相当。
| SSL Objective | EER (%) |
|---|---|
| MoBY | 8.2 |
| InfoNCE | 7.36 |
| MoCo | 7.3 |
| ProtoNCE | 7.21 |
| PCL | 7.11 |
| MTL (Multi - objectives) (Ours) | 3.77 |
7. 方法的额外优势
除了上述优点外,本文提出的方法还有其他潜在的好处:
-
适应动态环境
:MTL框架在学习者处于不断变化的环境(如域转移)时特别有用。
-
抗音频欺骗
:由于MTL增强了对抗鲁棒性,结合有助于分析说话人风格的MoEx mixup和提高局部帧级注意力的基于帧的混合,该方法在自动说话人验证中对抗音频欺骗方面具有很大的潜力。
-
小数据集适用
:与使用大规模数据集不同,MTL在数据有限(小数据集)时很有用,它允许模型利用任务之间共享的信息来提高泛化性能。
-
降低过拟合风险
:在只有质量较差的PLs可用的情况下,硬参数共享可以降低过拟合特定任务参数的风险,从而减少对高度随机PLs的记忆。
8. 未来改进方向
为了进一步提升模型性能,未来可以考虑以下改进方向:
-
扩大模型规模
:由于多任务网络通常需要比单任务网络更大,扩大模型宽度以更好地处理不同任务是一个有前途的方向。
-
调整任务权重
:使用任务间权重,通过强制梯度具有相似的大小(避免负竞争)或采用任务不确定性,鼓励任务之间的梯度方向相似,以避免冲突的任务梯度。
-
改进输出层
:在模型输出端使用MLP头而不是单个线性层,以减少权重共享,为每个任务提供更具体的参数,防止负转移。
-
引入注意力机制
:注意力机制可以帮助减少负转移,提高模型性能。
-
采用软参数共享
:通过l1 - 范数正则化约束每个任务的特定权重,使它们更接近,这在许多基于MTL的工作中很常见。
-
最终微调
:由于任务之间存在竞争,最后仅使用i - mix或l - mix进行微调可能会进一步提升性能。
综上所述,本文提出的基于mixup变体的多任务学习方法在说话人验证任务中具有很大的潜力,通过合理的改进和优化,有望进一步提升系统的性能和鲁棒性。
说话人验证任务中混合变体的多任务学习
9. 实验过程的详细分析
在实验过程中,各个环节都对最终结果产生了重要影响。首先是数据预处理阶段,提取40维MFCC特征时,使用Kaldi工具包每10ms提取一次,搭配25ms的汉明窗,这种设置能够较为准确地捕捉语音的特征信息。波形级数据增强中的加性噪声和房间脉冲响应(RIR)模拟,增加了数据的多样性,使模型能够适应不同的声学环境。对于基于ECAPA - TDNN的系统,对MFCC特征进行类似于specaugment方案的增强,进一步提升了模型的泛化能力。
在聚类数量的选择上,设置5000为最佳数量,这是经过多次实验和分析得出的结果。合适的聚类数量能够更好地生成伪标签,从而为后续的训练提供更准确的指导。
MTL的两种实现方式,即多个辅助任务和多头架构(MHA),各有特点。多个辅助任务通过单个共享模型优化多个辅助损失,能够充分利用模型的共享参数,提高训练效率。而MHA使用多个额外的输出头为不同任务服务,能够为每个任务提供更专门的参数,增强任务的针对性。在实验中,不同的任务组合和权重系数会对结果产生显著影响,需要进行大量的实验来找到最优的配置。
10. 各混合策略的作用机制深入探讨
10.1 DoubleMix的作用机制
DoubleMix通过两步插值生成多样化的增强样本,其核心在于学习隐藏空间中的“移位”特征。在第一步使用Dirichlet分布的系数进行mixup生成扰动样本时,能够引入更多的随机性和多样性。第二步在隐藏空间进行插值,无需标签混合,避免了伪标签噪声的影响。添加的JSD正则化项,能够使模型在训练过程中更加稳定,约束原始样本和扰动样本的预测分布距离,从而引导模型学习到更具泛化性的特征。
10.2 基于帧的混合的作用机制
基于帧的混合方法打破了传统mixup对整个输入进行插值的方式,而是在帧级别进行操作。通过随机选择一定百分比的帧进行替换,能够突出局部帧的特征信息,提高模型在局部帧级别的注意力。这种方法能够更好地捕捉说话人语音的细节特征,增强模型的鲁棒性。
10.3 矩交换混合(MoEx)的作用机制
MoEx鼓励模型利用说话人语音的矩信息,因为矩(均值和标准差)能够反映说话人的风格。在训练过程中,将一个训练图像的学习特征的矩替换为另一个图像的矩,并对目标标签进行插值,迫使模型从矩信息中提取识别信号。在说话人验证中,这种方法能够使模型更好地捕捉说话人的风格特征,提高验证的准确性。
10.4 虚拟混合训练(VMT)的作用机制
VMT通过构建未标记训练点的周围点,并强制周围点和训练点之间的一致预测,平滑了神经网络的输出分布。通过最小化JSD或余弦距离,使模型在训练点之间表现出线性行为,对训练样本之间的区域施加局部Lipschitz性。这种性质对于聚类假设的成功训练至关重要,能够减少模型对错误伪标签的记忆,提高模型的泛化能力。
11. 多任务学习中的挑战与应对策略
虽然多任务学习(MTL)在说话人验证任务中具有诸多优势,但也面临着一些挑战。
11.1 跨任务干扰
在MTL中,不同任务之间可能存在干扰,导致模型无法有效地学习每个任务的特征。为了应对这个问题,可以采用以下策略:
-
调整任务权重
:通过合理设置任务之间的权重,使每个任务的梯度具有相似的大小,避免某个任务主导训练过程。
-
任务不确定性
:引入任务不确定性,根据任务的难度和重要性动态调整任务的权重。
-
梯度方向控制
:鼓励任务之间的梯度方向相似,避免冲突的任务梯度。可以使用对抗方法或直接替换梯度向量来实现。
11.2 任务学习速度不同
不同任务的学习速度可能不同,导致某些任务在训练过程中无法充分学习。为了解决这个问题,可以:
-
动态调整学习率
:根据每个任务的学习进度,动态调整其学习率,使各个任务能够以相似的速度学习。
-
分阶段训练
:将训练过程分为多个阶段,在不同阶段重点关注不同的任务,确保每个任务都能得到充分的训练。
11.3 模型表示能力有限
模型的表示能力有限可能导致无法很好地处理多个任务。可以通过以下方法提升模型的表示能力:
-
扩大模型规模
:增加模型的宽度和深度,使其能够容纳更多的参数,从而更好地处理不同的任务。
-
引入注意力机制
:注意力机制可以帮助模型自动选择重要的特征,提高模型的表示能力。
12. 可视化分析实验结果
为了更直观地观察模型的训练过程和性能变化,对实验结果进行了可视化分析。通过绘制训练准确率、损失、验证等错误率(EER)和最小检测成本(MinDCF)的变化曲线,可以清晰地看到模型的训练情况。
在使用多个目标函数时,验证性能通常会更稳定和持续地提高。从可视化结果中可以看出,MTL模型在开始时验证性能可能较差,但随着训练的进行,能够快速收敛到最佳EER性能。然而,当使用AHC伪标签组合多个损失目标时,下游验证性能会出现整体下降,这在可视化曲线中也有明显的体现。
另外,对比使用真实标签和伪标签的训练过程,可以发现使用真实标签时,模型的验证性能更加稳定,即使同时优化多个目标函数,也能保持较好的性能。这进一步说明了高质量伪标签对于MTL方法的重要性。
13. 总结与展望
本文提出了一种基于mixup变体的多任务学习方法,用于说话人验证任务。通过探索四种mixup变体,并将它们与多任务学习相结合,旨在提高说话人验证系统的性能和鲁棒性。
实验结果表明,该方法在VoxCeleb2数据集上取得了较好的效果,明显优于最近一些采用其他自监督学习目标的SOTA SSSV方法。同时,该方法具有适应动态环境、抗音频欺骗、适用于小数据集和降低过拟合风险等额外优势。
然而,该方法仍然存在一些挑战,如跨任务干扰、任务学习速度不同和模型表示能力有限等。未来可以通过扩大模型规模、调整任务权重、改进输出层、引入注意力机制、采用软参数共享和最终微调等方法进行改进。
展望未来,说话人验证技术将不断发展,多任务学习和mixup方法有望在更多领域得到应用和拓展。通过不断优化和改进,相信能够进一步提升说话人验证系统的性能,为实际应用提供更可靠的支持。
以下是一个mermaid流程图,展示了本文提出的MTL框架的一般流程:
graph LR
A[输入数据] --> B[全局共享特征提取器/嵌入网络(ECAPA - TDNN)]
B --> C[特定任务输出分支/模块]
C --> D[计算特定任务损失]
D --> E[聚合损失函数lossMTL]
E --> F[模型训练(最小化lossMTL)]
通过以上的研究和分析,我们对说话人验证任务中混合变体的多任务学习方法有了更深入的理解,为未来的研究和应用提供了有价值的参考。
超级会员免费看
64

被折叠的 条评论
为什么被折叠?



