一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于迁移训练的声纹识别中毒样本生成方法与流程

2021-09-10 20:13:00 来源:中国专利 TAG:迁移 样本 中毒 深度 识别


1.本发明涉及一种基于迁移训练的声纹识别中毒样本生成方法,本发明属于深度学习安全领域。


背景技术:

2.深度学习是人工智能最常见的技术之一,在近几年飞速发展,它可以处理许多复杂的任务,包括图像识别、对象检测、语音识别、信号处理等。声纹识别作为目前最成熟的生物特征认证技术之一,基于深度学习的声纹识别技术使其精度得到极大的提高。但事实证明,深度学习模型容易受到攻击,攻击者通过发现模型的弱点并制作出与原始样本不同的对抗样本,从而使训练后的模型无法正确运行,因此针对声纹识别的攻击方法引起了广泛的关注。
3.目前针对深度学习的攻击可以分为对抗攻击与中毒攻击,对抗攻击即在测试阶段,攻击者通过在原始数据上添加精心设计的微小扰动得到对抗样本,对深度学习模型进行愚弄,使其以较高置信度误判输入,是以往研究的重点,但在实际某些情况下,攻击者因为没有权限而很难在测试阶段对数据进行修改,因而这种攻击存在明显的弊端。中毒攻击发生在模型训练阶段,一般通过将制作的中毒样本加入到原训练集中,从而在训练完成的深度学习模型中嵌入后门触发器,在测试阶段输入指定样本,触发毒性爆发。在之前的工作中,中毒攻击通常更改训练数据的部分类标使模型中毒训练,但这样不仅会大幅度降低测试集的精度,也会对指定样本无差别的分类,使得这种攻击方法实用性不高。


技术实现要素:

4.为了克服现有技术的不足,本发明提出一种基于迁移训练的声纹识别中毒样本生成方法,该方法是针对基于深度学习的声纹识别模型有目标的攻击,将标注正确但经过精细调整的中毒样本加入训练集中,在测试阶段对于指定样本可以使其以很高的置信度分类错误。
5.本发明解决其技术问题所采用的技术方案是:
6.一种基于迁移训练的声纹识别中毒样本生成方法,包括以下步骤:
7.(1)对语音数据集预处理:对于每一段语音采用傅里叶变换将其转化为频谱,再通过图像的形式保存为语谱图;
8.(2)搭建声纹识别模型:预先确定声纹识别模型的结构,层数以及各层的参数且不再变化。指定用来训练该模型的数据集,即语音样本,分别给这些样本标注身份标签并输入模型训练,数据集中的样本应以高准确度被正确预测;
9.(3)获得迁移训练任务数据集的特征表示空间:将新任务数据集输入到预训练的声纹识别模型中,只取softmax之前层的输出,即样本的特征表示空间,该空间的维度由构建模型时定义;
10.(4)从测试集中选择目标样本与基样本:先指定需要攻击的目标样本,再选择需要
攻击的类别,从该类别中选择特征表示空间最接近目标的一个样本,将其视为基样本;
11.(5)利用优化算法生成中毒样本:以基样本为起始点,利用adam优化算法与后向步骤进行迭代生成中毒样本,每次迭代过程中通过预训练声纹识别模型更新特征表示空间,最终使目标样本与中毒样本特征表示空间无限接近,但输入空间几乎不改变;
12.(6)将中毒样本加入到原训练集中进行迁移训练:在不改变原模型权重的情况下,只重新训练替换的softmax层适用当前分类任务,训练集为原训练集加上一个中毒样本,在测试阶段,目标样本将会被误分类为基样本的标签。
13.本发明中,预处理语音数据集提取语谱图特征并搭建声纹识别模型,使模型能够高精度准确预测数据集中语音的身份标签。将用来迁移的新数据集输入该模型中来获得准确的特征表示空间,从新测试集中选择基样本与目标样本,它们应属于不同的类别;利用adam优化算法与后向步骤找到一个输入空间接近基样本,但特征空间接近目标样本的中毒示例,将此中毒音频加入训练集迁移训练,使其适用当前的分类任务,在测试阶段输入目标样本,模型会以很高的置信度将其分类为基样本的身份标签。
14.本发明的有益效果为:(1)本发明对声纹身份进行分类时未采用传统的声学特征的方法,而是通过将语音转化为语谱图进行训练,可以充分利用卷积神经网络在图像上提取特征的优点,使精度得到极大的提高。(2)本发明应用场景为在大规模数据集训练的模型上进行迁移训练,中毒样本由攻击者发布到网上供用户训练使用,该中毒样本的标签已由专家正确标注(纯净标签),但依然会使模型出现漏洞,避免了训练阶段强行更改标签的问题。(3)本发明的中毒攻击方法只需加入一个中毒样本到训练集中就可以使模型错误识别为基样本标签,不仅效率高,而且测试集的精度不会降低。
15.本发明通过在迁移训练过程中加入中毒样本进行有目标的攻击,中毒样本通过前向后向算法生成,不仅与原始音频几乎没有区别,而且被正确的标注类别,增强了攻击的隐蔽性。经过中毒训练的声纹识别模型会将指定的音频样本识别为目标类别。
附图说明
16.图1是基于迁移训练的中毒攻击总体流程图。
17.图2是基于迁移训练的中毒攻击原理图。
18.图3是声纹识别模型及迁移训练结构图。
具体实施方式
19.下面结合附图对本发明做进一步说明。
20.参照图1~图3,一种基于迁移训练的声纹识别中毒样本生成方法,包括以下步骤:
21.(1)对数据集进行预处理,将它们转化为语谱图,步骤如下:
22.(1.1):分帧,语音信号中的频率随时间而变化,是个非平稳态过程,所以在大多数情况下,对整个信号进行傅立叶变换是没有意义的,随着时间的推移会丢失信号的频率轮廓,为了避免这种情况,需要进行分帧操作,把每一帧当成平稳信号处理,通过连接相邻帧来获得信号频率轮廓的良好近似,将n个采样点集合成一个观测单位,称为帧,长度为t
total
的语音信号分帧公式如下:
23.u=h[(t
total

t
overlap
)/t
inc
]
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0024]
t
overlap
=t
s

t
inc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0025]
其中u表示帧的数量,t
s
表示每帧涵盖的时间,t
inc
表示后一帧对前一帧的位移量(简称帧移),t
overlap
表示相邻两帧间的重叠部分,用来避免相邻两帧的变化过大,保持语音信息的完整性,h(.)表示取整函数,第i帧语音信号表示为s
i
(n),n=0,1,2,

,n

1,这里0≤i≤u;
[0026]
(1.2):加窗,为了增加每一帧左端与右端的连续性,需要对帧进行加窗处理,通过一个窗函数使原本没有周期性的语音信号呈现周期函数的部分特征,最常用的是汉明窗,某一帧乘上汉明窗后信号为s

i
(n):
[0027]
s

i
(n)=s
i
(n)
×
w(n)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0028]
w(n)=0.54

0.46cos[2πn/(n

1)],0≤n≤n
‑1ꢀꢀꢀꢀꢀꢀ
(4)
[0029]
(1.3):提取语音频谱图:对语音信号从时域转换到频域处理,将每一帧采用短时傅里叶变换得到在频谱上的能量分布,公式如下
[0030][0031]
其中s

i
(n)是输入的语音信号,k表示频率点,n表示傅里叶变换的点数,与变换后频率点的总个数相同,一般取每一帧采样点的数量。x
i
(k)代表第i帧的频谱,表示频率与能量的关系;为了使那些幅值较低的成分相对高幅值成分得以拉高,以便观察掩盖在低幅噪声中的周期信号,将频谱转换为对数功率谱:
[0032]
x

i
(k)=10log
10
|x
i
(k)|2ꢀꢀꢀ
(6)
[0033]
将每一帧的对数功率谱求转置矩阵后映射到一个灰度级表示:
[0034][0035]
其中x

i
(k)=[x

i
(1),x

i
(2),...,x

i
(n)],y
i
表示第i帧的灰度矩阵,最后将每一帧的灰度级表示在时间轴上拼凑起来得到语谱图,起到用二维表示三维的作用,公式如下:
[0036]
y
gray
=[y1,y1,...,y
u
]
ꢀꢀꢀ
(8)
[0037]
此处y
gray
表示灰度语谱图,最后将其进行彩色映射y=rgb(y
gray
)变为彩色语谱图y;
[0038]
(2)搭建声纹识别模型,过程如下:
[0039]
先预先指定模型的结构,层数以及各层的参数且不再变化,采用的分类模型结构包含卷积层,池化层,批归一化层(bn层),全连接层,模型结构图如图3所示,其中卷积层,池化层,批归一化层构成一个卷积块,其卷积层用来提取语谱图的局部特征,池化层扩大感知视野,bn层用批量数据来对输入归一化,加速收敛,减小过拟合,卷积层的数学表达式如下:
[0040]
h
out
=(h
in
2padding

kernel_size)/stride 1
ꢀꢀꢀꢀꢀ
(9)
[0041]
w
out
=(w
in
2padding

kernel_size)/stride 1
ꢀꢀꢀꢀ
(10)
[0042]
其中,h
out
为卷积层输出的宽度,w
out
为卷积层输出的长度,h
in
为输入卷积层的宽度,w
in
为输入卷积层的长度,padding为输入的每条边补充0的层数,stride为卷积步长,kernel_size为卷积核尺寸。若模型输入的语谱图为y,则经过第m个卷积块后的输出为:
[0043]
y
(m)
=conv_block(y
(m

1)
)
ꢀꢀꢀꢀ
(11)
[0044]
其中,y
(0)
=y,conv_block表示卷积块,然后使用flatten函数将最终卷积块后的输出变换为一维矩阵输入至全连接层:
[0045]
z
(0)
=flatten(y
(i)
)
ꢀꢀꢀꢀꢀ
(12)
[0046]
z
(l)
=relu(w
(l)
·
z
(l

1)
b
(l)
)
ꢀꢀꢀꢀꢀꢀ
(13)
[0047]
其中i表示卷积块的总个数,z
(l

1)
和z
(l)
分别表示第l个全连接层的输入和输出,这里1≤l≤j

1,j表示全连接层的总数量,w
(l)
表示该层的权重矩阵,b
(l)
表示该层的偏置矩阵,采用relu激活函数来减少参数间的依存关系,缓解过拟合现象;
[0048]
该模型的参数有卷积层的数量和大小、池化层的大小、全连接层神经元的数量;将此模型在50个不同说话人的数据集上进行训练,使其拥有良好的提取样本特征的能力,可作为小型声纹识别任务迁移训练的通用模板;
[0049]
(3)获得迁移任务数据集的特征表示空间,过程如下:
[0050]
将此数据集输入到预训练的声纹识别模型中,保存预训练模型网络倒数第二层(softmax层之前的全连接层)的输出即:
[0051][0052]
全连接层可以提取全局特征,因此该层编码的了高级语音特征,称之为特征表示空间,表示样本在分类决策面上的分布,不同身份语音的特征表示空间应有明显的差异;
[0053]
(4)选择目标样本与基样本,步骤如下:
[0054]
(4.1):从测试集中根据攻击者的需求选择一个目标类别t和一个基类别b,从标签为t的样本中随机挑选一个目标样本y
t

[0055]
y
t
=select(g
t
)
ꢀꢀꢀꢀꢀꢀ
(15)
[0056]
其中g
t
表示测试集中所有标签为t的样本,成功的攻击会使迁移训练后的模型将目标样本y
t
预测为基类别b。
[0057]
(4.2):从标签为b的样本中挑选基样本y
b
,选择基样本时优先选择特征空间最接近目标样本的示例,选择算法如下:
[0058][0059]
其中表示目标样本的特征表示空间,表示第i个候选基样本的特征表示空间,m表示特征空间的维数,此算法使用欧式距离选择特征表示空间靠近目标的基样本y
b
,在中毒样本生成过程中可以减少迭代次数,增加攻击成功率,优化中毒样本的质量;
[0060]
(5)用前向后向算法生成中毒样本,步骤如下:
[0061]
(5.1):加载目标样本的特征表示空间,根据样本频谱图的维数与特征空间的维数选择参数α以满足以下损失函数:
[0062][0063]
以基样本y
b
为起始优化点,即y

=y
b
迭代生成中毒样本,y

表示优化过程中的中毒
样本的语谱图,表示该中毒样本的特征表示空间,最终生成的中毒样本y
p
不仅特征表示空间贴近目标样本,它本身的语谱图相对于基样本几乎不改变,参数α的计算如下:
[0064]
α=β
×
(m/q)2ꢀꢀꢀꢀꢀ
(18)
[0065]
β是超参数,m是特征表示空间的维数,q是样本输入特征的维数,由此选择的α可根据样本不同的维数自适应数值以调整优化的重心。
[0066]
(5.2):使用前向传播与adam算法优化中毒样本,adam更新梯度时对梯度的一阶矩估计和二阶矩估计进行了综合考虑:
[0067][0068][0069][0070][0071][0072]
其中t是迭代的次数,在第一次迭代中,y
′0=y

,α
t
是指定的学习率且不再变化,β1和β2是指数衰减率,表示当时损失函数相对于中毒样本y

t
‑1的梯度,m
t
是梯度的指数移动平均数,v
t
是梯度平方的指数移动平均数,因m0和v0初始化为0,所以用与对梯度均值进行偏差修正,ε是用来避免除数为0的极小数。adam对更新步长的计算,从梯度均值和梯度平方两个角度进行自适应调节,可以加速收敛速度;
[0073]
(5.3):后向算法用来优化中毒样本的输入空间,使中毒样本与基样本的语谱图更相似,以此欺骗样本标签标注者,其中λ是调整语谱图的相似度的超参数,clip用来将扰动限制到规定范围:
[0074][0075]
(5.4):重复(5.3)

(5.4),直至样本特征空间的距离小于指定阈值或者迭代次数超出给定范围,保存中毒样本;
[0076]
(6)对中毒样本进行性能测试,步骤如下:
[0077]
(6.1):将中毒样本扩充到训练集中进行迁移训练:
[0078][0079]
d表示迁移任务原训练集,d=[y1,y2,...y
v
],v表示原训练集的样本数量,表示加入中毒样本后的训练集;针对测试集所有样本生成中毒示例并对它们分别进行迁移训练以评测攻击性能;在模型权重不变的情况,根据当前分类任务替换softmax层,对其进行重新训练,新模型应能以高精度预测语音身份;
[0080]
(6.2):计算中毒攻击的成功率:在测试阶段,对每一次迁移训练后的模型,输入目标样本到模型,若模型将其预测为基类的标签(或者预测错误),则攻击成功,否则,攻击失
败,攻击成功率表示为:
[0081][0082]
其中,f(.)表示目标样本经softmax层后输出的概率分布,表示目标样本的真实标签,equal(.)表示目标样本被正确预测的个数,n表示测试集即目标样本的个数,acc
p
表示攻击成功率,可以衡量此中毒攻击的性能。
[0083]
实例:实际实验中的数据
[0084]
(1)选取实验数据
[0085]
实验所用数据集均为didi语音数据集,此数据集收集了不同年龄段,不同性别,不同地区说话者在安静环境下录制的语音,每人大约有110句话。因为设备以及实验成本的限制,将选择50人的语音作为预训练的数据集,使模型具有良好的特征提取能力,迁移训练时再选择6/12个人的语音作为新分类任务。为了使训练结果具有高精度,数据集划分如下:每个人随机选择80句话作为训练集,其余作为验证集(测试集),并将其采用上述步骤转为语谱图。
[0086]
(2)参数确定
[0087]
语音数据预处理中,选择帧长t
s
=0.025s,帧叠取帧长的1/3,傅里叶变换的点数nfft=1024。
[0088]
本发明所采用的声纹识别模型结构如下:模型包含五个卷积层,五个池化层,五个批归一化层,四个全连接层。五个卷积层卷积核的大小均为3
×
3,卷积核的数量分别为32,128,256,256,256,激活函数均为“relu”;池化层中的池化尺寸为2
×
2;前三个全连接层神经元的个数为512,即特征空间的维数m=512,最后一个全连接层神经元的个数视分类任务而定。
[0089]
经过处理后的语谱图维数为224
×
224
×
3,特征空间的维数为512,选择超参数β=0.2,则目标损失函数的参数α=0.2
×
[512/(224
×
224
×
3)]2。adam优化过程中指数衰减率β1=0.9,β2=0.999,ε=1
×
10
‑8,后向传播取λ=α
t
来控制中毒样本与基样本的相似度,本次实验中α
t
取0.005与0.0005来进行对比。
[0090]
(3)实验结果
[0091]
中毒样本扰动量衡量指标选择相对l2范数,函数表达式为:
[0092][0093]
其中y
b
是基样本,y
p
是中毒样本,用σ来衡量添加的扰动相对于原样本的改变量,σ值越小表示中毒样本的质量越好,越不容易区分。实验中预训练声纹识别模型的精度为99%,我们测试了将其迁移到6分类、12分类时中毒攻击的效果以及中毒样本的扰动大小,结果如表1所示,feat1距离表示攻击后基样本与目标样本特征空间的差异,值越小表示攻击的效果越好,针对所有测试集中的样本都生成对应的中毒样本分别进行迁移训练,再预测目标样本的标签以此衡量攻击成功率。
[0094]
本发明中毒攻击的原理如图3所示,用二维图像表示语音样本在特征空间的分布。在正常的训练过程中,每个类别之间会有明确的决策边界,训练良好的模型将其划分,用实线表示,选择基样本与目标样本并生成一个中毒样本,当加入中毒样本进行训练时,会将中毒样本划分到标注类别,即决策边界会发生微小的偏转,如虚线所示,此时目标样本因特征空间接近中毒样本而被分类到错误类别。
[0095]
表1为迁移训练中毒攻击结果分析;
[0096]
迁移任务模型精度学习率α
t
攻击成功率feat1距离扰动σ6分类99%0.000597%4.10.0026分类99%0.00599%3.10.00312分类99%0.000596%4.40.00312分类99%0.00599%3.50.004
[0097]
表1
[0098]
本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜