1.基于对比学习的深度学习模型蒸馏中毒防御方法,包括以下步骤:
1)数据集准备;选择MNIST,CIFAR10,ImageNet,GTSRB,CASIA的图像数据集;
2)中毒模型准备;
3)使用干净样本生成正例;
4)构建学生模型蒸馏损失函数和学习样本的损失函数;
具体包括:
4.1)使用以下损失函数作为样本之间的对比损失函数,并使用Com_loss作为模型的蒸馏:其中,m(x)表示样本x在模型m图层组末端经过转换模块后的输出;u,v分别代表两张样本;Sim(u,v,m)用来衡量在模型m内,u和v之间的相似程度;n表示正例数据集N中生成的正例数量;x0表示原始样本,正例数据集中的样本均是由原始样本x0生成;
4.2)构建学生模型学习样本的硬损失函数:其中,M是图像类别的数量;yic为符号函数,如果样本i的真实类别等于c,则取1,否则取
0;Pic表示样本i属于类别c的预测概率,N表示样本数量;
5)模型蒸馏。
2.如权利要求1所述的基于对比学习的深度学习模型蒸馏中毒防御方法,其特征在于:所述的图像数据集是图片大小为32*32的10分类的CIFAR10图像数据集。
3.如权利要求1所述的基于对比学习的深度学习模型蒸馏中毒防御方法,其特征在于:步骤2)具体包括:
2.1)选择中毒方法:选择BadNets,PoisonFrog,Trojannn,Feature Collision Attack的中毒攻击方法;
2.2)选择深度学习网络:选择LeNet,AlexNet,VGG11,ResNet34的网络;
2.3)模型中毒操作:在CIFAR10数据集上用BadNets中毒,训练的中毒模型在测试集上干净样本的准确率为98.37%,中毒样本的准确率为100%。
4.如权利要求3所述的基于对比学习的深度学习模型蒸馏中毒防御方法,其特征在于:步骤2.1)中的中毒方法选用Trojannn,步骤2.2)中的深度学习网络选用AlexNet网络。
5.如权利要求1所述的基于对比学习的深度学习模型蒸馏中毒防御方法,其特征在于:步骤3)具体包括:
3.1)构建数据增强操作集:为了取得更好的效果,使用以下操作,来作为数据增强的操作集;
随机裁剪:将样本随机裁剪为固定大小的图片;
添加随机噪声:在样本上,添加随机的噪声;
随机颜色失真:在样本的随机区域内做颜色失真操作;
随机缺失:在样本的随机区域上,将此区域内像素赋0值;
随机旋转:将样本随机旋转90度,180,270度;
3.2)根据样本生成正例样本数据集:用一张干净样本,使用3.1)中的数据增强,随机生成n张图片作为正例,并与干净样本共同组成正例数据集的集合N。
6.如权利要求1所述的基于对比学习的深度学习模型蒸馏中毒防御方法,其特征在于:步骤5)具体包括:
5.1)准备样本:在训练数据集中,从各类样本中,抽样取出设定比例的样本;将每个样本分别进行步骤3)生成各自的正例数据集;最后,将各个正例数据集,加入至集合N*中;
5.2)蒸馏:在集合N*中,随机取一定数量的正例数据集,对学生模型进行训练操作。
7.如权利要求6所述的基于对比学习的深度学习模型蒸馏中毒防御方法,其特征在于:步骤5.1)所述的设定比例是10%。