
10. 在CNN训练中结合使用正常图像与对抗性图像(含Python代码及数据集)
5星
- 浏览量: 0
- 大小:None
- 文件类型:ZIP
简介:
本研究探讨了在CNN模型训练过程中同时利用正常图像和对抗性图像的方法,并提供Python代码和相关数据集,以提升模型鲁棒性和准确性。
在本教程中,您将学习如何在训练过程中生成(1)正常图像和(2)对抗性图像的批次。这样做可以提高模型对泛化能力和防御对抗攻击的能力。
上周我们介绍了一种简单的防御方法来应对对抗性攻击:该方法包括三个步骤:
首先,在原始训练集上训练CNN;
接着,从测试集或等效维护集中生成对抗样本;
最后,使用这些对抗样本来微调网络。
尽管这种方法效果良好,但我们可以通过调整训练过程进一步改进。
我们不需要在一组特定的对抗示例上进行微调来达到这一目的;而是可以修改批量数据生成的过程本身。
当我们训练神经网络时,通常会将数据分成若干批次处理。每个批次都是整个训练集的一个子集,并且其大小一般为2的幂次方(如8、16、32等)。对于每一个这样的小批量数据,我们执行前向传播计算损失值,然后进行反向传播调整网络权重,这是大多数神经网络的标准训练流程。
为了将对抗性示例纳入标准训练过程之中:
首先初始化我们的模型;
接着选择总共N个随机的训练样本;
利用FGSM等技术生成同样数量(即N)的对抗样本来匹配这些原始数据点;
然后合并这两个集合构成一个大小为Nx2的数据批次用于后续处理。
在这样的批量中,同时包含对抗性示例和正常训练图像来更新模型参数。
这种方法的优点在于它允许模型从自身经验学习,并且能够更好地适应各种输入。
全部评论 (0)
还没有任何评论哟~


