.. role:: python(code) :language: python 评测算法详细介绍 ======================================== FGSM算法 [#FGSM]_ ----------------- 算法介绍 ^^^^^^^^ :code:`FGSM` 是作为一个针对图像分类模型的攻击算法而被提出来的算法,可参考“图像分类算法评测介绍”的相关内容。其形式如下: .. math:: x^{'}=x-\varepsilon \cdot sign(\triangledown_x J(x, y)) 我们在此处对 :code:`FGSM` 进行了修改,使其适应语音模型。具体地,我们使用语音模型中较为常见的CTC loss作为待优化目标函数 J(x,y),其中x是输入音频,y是希望定向攻击到的句子。 参数说明 ~~~~~~~~ 1. :code:`eps`: 扰动的规模限制 PGD算法 [#PGD]_ --------------- 算法介绍 ^^^^^^^^ :code:`PGD` 是作为一个针对图像分类模型的攻击算法而被提出来的算法,可参考“图像分类算法评测介绍”的相关内容。其形式如下: .. math:: \\g_t=\triangledown x_t(L(f_\theta (x_t), y)) \\x_{t+1} = \prod _{x+S}(x_t+\varepsilon (\frac{g_t}{|| g_t ||})) 我们在此处对 :code:`PGD` 进行了修改,使其适应语音模型。具体地,我们使用语音模型中较为常见的CTC loss作为待优化目标函数 J(x,y),其中x是输入音频,y是希望定向攻击到的句子。 参数说明 ~~~~~~~~ 1. :code:`eps` 扰动的规模限制 2. :code:`alpha` 梯度步长 3. :code:`iterations` 迭代次数 Genetic算法 [#Genetic]_ ----------------------- 算法介绍 ^^^^^^^^ :code:`Genetic` 算法是一种黑盒攻击算法,采用遗传算法生成对抗样本,并借助梯度估计的方法减少迭代轮数。算法流程如下: 1. 初始化,设置最大进化次数T,初始群体P。 2. 计算每个个体的CTC loss,挑选最小的,计算与目标语句的编辑距离。若大于2,执行遗传算法。否则,估计梯度,执行梯度下降算法。 遗传算法会挑选top k的个体作为精英,根据其CTC loss计算“选取概率”,按概率选择两个个体 :math:`x_1,x_2` ,使这两个个体进行交叉,并以一定概率发生变异。 交叉函数会随机生成一个01掩码 :math:`M` ,计算 :math:`x_1 \cdot M + x_2 \cdot (1-M)` ,其中 :math:`\cdot` 为逐元素乘。 变异函数会加入一个随机噪声。噪声先从一个高斯分布采样得到,再经过一个高通过滤器。变异概率会根据当前分数和上一步的分数之差来进行动量更新。 在执行梯度下降法前,会先估计梯度。首先挑出CTC loss最小的个体,拷贝 :math:`n` 份,每一份都随机一个分量加一微小扰动。使用前向差分公式,可以得到该分量的偏导数。最后执行一步梯度下降。 参数说明 ~~~~~~~~ 1. :code:`pop_size` 种群大小 2. :code:`elite_size` 精英个数 3. :code:`mutation_p` 变异概率 4. :code:`noise_stdev` 变异时噪声所服从高斯分布的方差 5. :code:`momentum` 动量超参,用于更新变异概率 6. :code:`alpha` 变异权重,用于更新变异概率 7. :code:`iterations` 最大进化轮数 8. :code:`num_points_estimate` 用来估计梯度的采样点数 9. :code:`delta_for_gradient` 前向差分估计梯度用步长 10. :code:`delta_for_perturbation` 噪声更新用步长 11. :code:`decrease_factor` 噪声更新步长衰减因子 CW算法 [#CW]_ ------------- 算法介绍 ^^^^^^^^ CW算法由Nicholas Carlini与David Wagner首先于图像领域提出,并在后续应用于音频领域中。CW算法通过构造新的损失函数,将带约束优化问题转化为无约束优化问题,求解目标函数为 :math:`min l(x+\delta,t) + \lambda ||\delta||_2^2` ,其中l函数为CTC损失函数。 由于发现实际优化时,优化过程经常震荡而不收敛,作者提出一开始设置一个较大的扰动规模限制,随着优化过程逐渐缩小该限制。 参数说明 ~~~~~~~~ 1. :code:`eps` 初始扰动规模限制 2. :code:`lambd` :math:`\lambda` ,即损失函数中噪声大小一项的权重 3. :code:`iterations` 最大迭代轮数 4. :code:`lr` 学习率 5. :code:`decrease_factor` 扰动规模衰减幅度 6. :code:`num_iter_decrease_eps` 扰动规模衰减频率 Imperceptible CW算法 [#ImpCW]_ ------------------------------ 算法介绍 ^^^^^^^^ 使用CW算法后,尽管能得到无穷范数/二范数意义下噪声非常小的对抗样本,却无法得到人耳不可查觉的对抗样本。这是因为噪声的二范数并不能很好地衡量噪声的鲜明程度。 为了更好地建模“不可查觉噪声”,使用频域掩码的技术,提出频域掩码损失函数,代替CW算法中的 :math:`||\delta||_2^2` 一项。 实际优化中,发现不对噪声规模做约束的情况下想直接找到一个频域掩码下的对抗样本比较困难,因此作者提出使用一个二阶段算法: 1. 采用CW算法,找到一个噪声规模较大的对抗样本 2. 引入频域掩码损失函数,找到频域掩码下的对抗样本。 参数说明 ~~~~~~~~ 1. :code:`eps` 初始扰动规模限制,CW用 2. :code:`max_iter_1` 一阶段的CW算法迭代轮数 3. :code:`max_iter_2` 二阶段的迭代轮数 4. :code:`lr_1` 一阶段的学习率 5. :code:`lr_2` 二阶段的学习率 6. :code:`decrease_factor_eps` 一阶段中,扰动规模衰减幅度 7. :code:`num_iter_decrease_eps` 一阶段中,噪声扰动衰减频率 8. :code:`alpha` 二阶段中,频域掩码损失函数权重 9. :code:`decrease_factor_alpha` 二阶段中,频域掩码损失函数权重的衰减幅度 10. :code:`num_iter_decrease_alpha` 二阶段中,频域掩码损失函数权重的衰减频率 11. :code:`increase_factor_alpha` 二阶段中,频域掩码损失函数权重的增加幅度 12. :code:`num_iter_increase_alpha` 二阶段中,频域掩码损失函数权重的增加频率 13. :code:`win_length` 窗长,计算频域掩码用 14. :code:`hop_length` 窗口滑动距离,计算频域掩码用 15. :code:`n_fft` 窗口样本数,计算频域掩码用 16. :code:`sample_rate` 采样频率与,计算频域掩码用 参考文献 --------- .. [#FGSM] Goodfellow, I. J., Shlens, J., & Szegedy, C. (2014). Explaining and harnessing adversarial examples. In International Conference on Learning Representations. .. [#PGD] Madry, A., Makelov, A., Schmidt, L., Tsipras, D., & Vladu, A. (2018, February). Towards Deep Learning Models Resistant to Adversarial Attacks. In International Conference on Learning Representations. .. [#Genetic] Taori, R., Kamsetty, A., Chu, B., & Vemuri, N. (2019, May). Targeted adversarial examples for black box audio systems. In 2019 IEEE Security and Privacy Workshops (SPW) (pp. 15-20). IEEE. .. [#CW] Carlini, N., & Wagner, D. (2018, May). Audio adversarial examples: Targeted attacks on speech-to-text. In 2018 IEEE Security and Privacy Workshops (SPW) (pp. 1-7). IEEE. .. [#ImpCW] Qin, Y., Carlini, N., Cottrell, G., Goodfellow, I., & Raffel, C. (2019, May). Imperceptible, robust, and targeted adversarial examples for automatic speech recognition. In International conference on machine learning (pp. 5231-5240). PMLR.