1.一种基于时序神经通路的语音识别模型中毒检测方法,其特征在于,包括以下步骤:
1)获取待检测的基于循环神经网络RNN结构的语音识别模型MR;获取用于训练待检测的语音识别模型的数据集并保存;
2)定义循环神经网络RNN的时序神经通路;循环神经网络RNN的时序神经通路为两组:第一组为在不考虑时间步的情况下,从输入到输出的前向传导过程中,前一层激活值最大的几个神经元与后一层激活值最大的几个神经元连接起来的时序神经通路;
第二组为在考虑时间步的情况下,T时刻的隐藏层激活值最大的几个神经元的激活值传递到T+1时刻对应的隐藏层神经元上的时序神经通路;
3)从步骤1)的数据集中选择K条数据作为测试音频,基于所述的时序神经通路构建用于优化测试音频的损失函数loss,使测试音频在输入语音识别模型后能够使时序神经通路上的神经元的激活值最大;
所述的损失函数loss包含两个部分:一个部分是用于语音识别模型训练时的损失函数CTC;另一部分是步骤2)中的时序神经通路上的神经元的激活值之和;所述的损失函数loss的构建过程如下:
3‑Step1:构建CTC损失函数,包括:
定义语音识别模型为y=F(x),其中x∈X,为输入音频X的某一帧,音频X对应的正确文本为T;输出y为字符的概率分布;
由此概率分布可以确定输出序列为π的概率如下式(1)所示:
其中,π表示可以解码为正确文本T的序列, 表示序列π中第i个字母的概率;
由此,定义在输入音频X下,输出为对应文本T的概率为:
因此构建的损失函数CTC如下式(3)所示:
CTCLoss(F(x),T)=‑log P(T|F(x)) (3)
3‑Step2:构建时序神经通路的损失函数NPath:
根据步骤2)中确定的时序神经通路构建时序神经通路的损失函数NPath如下式(4)所示:其中,N表示循环神经网络RNN模型的层数;M表示输入音频的帧数;maxk‑iψ(x,n)表示在不考虑时间步的情况下,输入x时,在第n层中能够组成时序神经通路的k‑i个神经元的激活值之和;maxl‑iφ(x,n)表示在考虑时间步的情况下,第n层中的l‑i个激活值最大的神经元的激活值之和;
3‑Step3:由3‑Step1和3‑Step2可获得总损失函数loss如下式(5)所示:loss=CTCLoss+λ·NPath (5)
其中:λ为平衡参数,可人为调节;
4)利用步骤3)中构建的损失函数loss构建近似中毒音频,包括:
4‑Step1:通过计算步骤3)中的损失函数对输入的测试音频的导数,获得在其梯度上的噪声,如下式(6)所示:
4‑Step2:根据4‑Step1中的噪声更新输入的测试样本x=x+s*noise,其中:s表示步长;
循环迭代,优化生成近似中毒测试音频;
5)将步骤4)中构建的近似中毒测试音频输入到待检测的语音识别模型MR中,统计MR对该近似中毒测试音频的识别结果与对应原文本的编辑距离;若编辑距离达到一定阈值,就判定该语音识别模型MR是中毒的。
2.根据权利要求1所述的基于时序神经通路的语音识别模型中毒检测方法,其特征在于,所述的数据集为Librispeech数据集。
3.根据权利要求1所述的基于时序神经通路的语音识别模型中毒检测方法,其特征在于,迭代终止条件为:达到循环最高上限值或输入x的识别结果不等于原始识别结果。
4.根据权利要求1所述的基于时序神经通路的语音识别模型中毒检测方法,其特征在于,所述的编辑距离是指:在两个序列
5.一种基于时序神经通路的语音识别模型中毒检测装置,其特征在于,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序;所述计算机处理器执行所述计算机程序时实现如权利要求1‑4任一项所述的基于时序神经通路的语音识别模型中毒检测方法。