Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于IBD—IPS在Ciafr-10数据下采用Badnet攻击的Resnet-18模型AUROC低的疑问 #89

Open
Liu-GuangBin opened this issue Dec 26, 2024 · 14 comments

Comments

@Liu-GuangBin
Copy link

Liu-GuangBin commented Dec 26, 2024

您好,我利用BackdoorBox提供的代码训练了一个Resnet-18网络
我们利用IBD—IPS评估时的ASR和BA和训练中的数据一致
但检测的效果不好,ROC仅0.7
请问是哪儿出了问题,是选取的BN放大层出了问题吗
20241226195533

@THUYimingLi
Copy link
Owner

您好,我利用BackdoorBox提供的代码训练了一个Resnet-18网络 我们利用IBD—IPS评估时的ASR和BA和训练中的数据一致 但检测的效果不好,ROC仅0.7 请问是哪儿出了问题,是选取的BN放大层出了问题吗 20241226195533

感谢对我们工作的关注。请先检查你的设置是否正确,例如,你是否使用了训练时用的触发器进行测试。此外,建议你把你的整个代码截图出来,单纯从结果能看到的信息非常有限

@Liu-GuangBin
Copy link
Author

Liu-GuangBin commented Dec 26, 2024

您好!我通过调整目标标签和触发器图案,观察到攻击成功率(ASR)发生了变化,并且这些变化与训练日志记录的结果不一致。这证实了我最初的触发器、目标标签以及模型配置是正确的。
为了进一步排查问题,我在IBD_IPS代码的第143行取消了注释,在控制台打印了被放大的层信息。我发现实际处理的层顺序与论文中描述的方法不一致——论文中是从最后一层逐步向前到某一层进行处理,而打印给出的信息似乎与此不符。这可能是检测不佳的原因。
20241226204840
20241226204820
我已经将我的测试的代码和对应模型权重上传,以便您能够更方便地审查和提供指导。
[因github限制单个文件20MB,故将文件压缩成两个分卷,麻烦将ckpt2.zip改名成ckpt.z01,解压ckpt.zip即可]
Uploading ckpt.zip…
Uploading ckpt2.zip…

@Liu-GuangBin
Copy link
Author

github上传似乎失败,无法下载。我上传到了百度云盘。链接:https://pan.baidu.com/s/1y3zuJbLepWtM8sp2ixQLfQ?pwd=vhdx

@LiHu1997
Copy link

请问你跑了SCALE_UP吗,我这边跑出来的AUC只有0.5几,请问你知道是什么原因吗

@LiHu1997
Copy link

1735278972054
IBD-IPS 结果好像还行

@LandAndLand
Copy link
Contributor

请问你跑了SCALE_UP吗,我这边跑出来的AUC只有0.5几,请问你知道是什么原因吗
感谢你对我们工作的关注!这个问题在closed issue里面有提到过。对于该问题,我猜测应该是触发器的设置引起的。你可以按照https://github.com/THUYimingLi/BackdoorBox/blob/main/tests/test_SCALE_UP.py中的第127行的trigger patter来毒化样本。也就是,使用随机noise组成的3*3 patch作为触发器。超参使用SCALE-UP.py默认的即可,具体超参见https://github.com/THUYimingLi/BackdoorBox/blob/main/core/defenses/SCALE_UP.py。我们已经在最新的测试样本检测的后门防御工作IBD-PSC中分析了SCALE-UP可能对于白色小方块和黑白棋格的触发器的效果有限,希望作者顺便关注一下IBD-PSC: Input-level Backdoor Detection via Parameter-oriented Scaling Consistency(ICML 2024,https://arxiv.org/abs/2405.09786),代码复现非常简单。代码地址:https://github.com/THUYimingLi/BackdoorBox/blob/main/tests/test_IBD-PSC.py。希望能够解决你的问题,有任何问题欢迎再次咨询!

@LandAndLand
Copy link
Contributor

您好!我通过调整目标标签和触发器图案,观察到攻击成功率(ASR)发生了变化,并且这些变化与训练日志记录的结果不一致。这证实了我最初的触发器、目标标签以及模型配置是正确的。 为了进一步排查问题,我在IBD_IPS代码的第143行取消了注释,在控制台打印了被放大的层信息。我发现实际处理的层顺序与论文中描述的方法不一致——论文中是从最后一层逐步向前到某一层进行处理,而打印给出的信息似乎与此不符。这可能是检测不佳的原因。 20241226204840 20241226204820 我已经将我的测试的代码和对应模型权重上传,以便您能够更方便地审查和提供指导。 [因github限制单个文件20MB,故将文件压缩成两个分卷,麻烦将ckpt2.zip改名成ckpt.z01,解压ckpt.zip即可] Uploading ckpt.zip… Uploading ckpt2.zip…

这个放大的过程是正确的。我们从模型最后一层隐藏层开始,往前放大BN层,总共放大k层。这个k是我们的需要动态求解的。这里看起来是你求解的为k=9。 此时是放大的第一个模型。为了检测的稳定,我们继续增大k,得到n个模型。n取5,所以得到放大的5个模型。看起来前面5个放大的layer是对的。后面为什么又重新出现了一些额外的放大信息,我们正在排查,请耐心等候

@LandAndLand
Copy link
Contributor

您好!我通过调整目标标签和触发器图案,观察到攻击成功率(ASR)发生了变化,并且这些变化与训练日志记录的结果不一致。这证实了我最初的触发器、目标标签以及模型配置是正确的。 为了进一步排查问题,我在IBD_IPS代码的第143行取消了注释,在控制台打印了被放大的层信息。我发现实际处理的层顺序与论文中描述的方法不一致——论文中是从最后一层逐步向前到某一层进行处理,而打印给出的信息似乎与此不符。这可能是检测不佳的原因。 20241226204840 20241226204820 我已经将我的测试的代码和对应模型权重上传,以便您能够更方便地审查和提供指导。 [因github限制单个文件20MB,故将文件压缩成两个分卷,麻烦将ckpt2.zip改名成ckpt.z01,解压ckpt.zip即可] Uploading ckpt.zip… Uploading ckpt2.zip…

image
你好,我们再次验证了检测效果,如上图所示,检测结果是没有问题的。考虑到之前有issue提出问题,最后排查出是自己的本地代码环境问题,请你再仔细检查一下自己的代码运行环境,代码修改等,看看是否出现了问题。

@LandAndLand
Copy link
Contributor

您好,我利用BackdoorBox提供的代码训练了一个Resnet-18网络 我们利用IBD—IPS评估时的ASR和BA和训练中的数据一致 但检测的效果不好,ROC仅0.7 请问是哪儿出了问题,是选取的BN放大层出了问题吗 20241226195533
下面是我们测试的target label为1的结果。
image

@Liu-GuangBin
Copy link
Author

请问你跑了SCALE_UP吗,我这边跑出来的AUC只有0.5几,请问你知道是什么原因吗

是Bandet攻击吗,SCALE_UP在白色和黑色以及黑白触发器的效果不好,IBD_IPS论文中有讲

@Liu-GuangBin
Copy link
Author

1735278972054 IBD-IPS 结果好像还行

请问你这个用的是什么触发器呢,方便将模型ckpt文件和触发器的代码发网盘分享下不

@Liu-GuangBin
Copy link
Author

您好!我通过调整目标标签和触发器图案,观察到攻击成功率(ASR)发生了变化,并且这些变化与训练日志记录的结果不一致。这证实了我最初的触发器、目标标签以及模型配置是正确的。 为了进一步排查问题,我在IBD_IPS代码的第143行取消了注释,在控制台打印了被放大的层信息。我发现实际处理的层顺序与论文中描述的方法不一致——论文中是从最后一层逐步向前到某一层进行处理,而打印给出的信息似乎与此不符。这可能是检测不佳的原因。 20241226204840 20241226204820 我已经将我的测试的代码和对应模型权重上传,以便您能够更方便地审查和提供指导。 [因github限制单个文件20MB,故将文件压缩成两个分卷,麻烦将ckpt2.zip改名成ckpt.z01,解压ckpt.zip即可] Uploading ckpt.zip… Uploading ckpt2.zip…

image 你好,我们再次验证了检测效果,如上图所示,检测结果是没有问题的。考虑到之前有issue提出问题,最后排查出是自己的本地代码环境问题,请你再仔细检查一下自己的代码运行环境,代码修改等,看看是否出现了问题。

好的,感谢你的排查,我再继续看看我的代码

@THUYimingLi
Copy link
Owner

您好!我通过调整目标标签和触发器图案,观察到攻击成功率(ASR)发生了变化,并且这些变化与训练日志记录的结果不一致。这证实了我最初的触发器、目标标签以及模型配置是正确的。 为了进一步排查问题,我在IBD_IPS代码的第143行取消了注释,在控制台打印了被放大的层信息。我发现实际处理的层顺序与论文中描述的方法不一致——论文中是从最后一层逐步向前到某一层进行处理,而打印给出的信息似乎与此不符。这可能是检测不佳的原因。 20241226204840 20241226204820 我已经将我的测试的代码和对应模型权重上传,以便您能够更方便地审查和提供指导。 [因github限制单个文件20MB,故将文件压缩成两个分卷,麻烦将ckpt2.zip改名成ckpt.z01,解压ckpt.zip即可] Uploading ckpt.zip… Uploading ckpt2.zip…

image 你好,我们再次验证了检测效果,如上图所示,检测结果是没有问题的。考虑到之前有issue提出问题,最后排查出是自己的本地代码环境问题,请你再仔细检查一下自己的代码运行环境,代码修改等,看看是否出现了问题。

好的,感谢你的排查,我再继续看看我的代码

尤其是你需要检查你的环境是否正确,比如你是否在Linux环境下运行,还是在笔记本本地运行(之前有个issue的问题就来源于此),你各个库的版本是否匹配我们的Requirements.txt

@LandAndLand
Copy link
Contributor

1735278972054 IBD-IPS 结果好像还行

请问你这个用的是什么触发器呢,方便将模型ckpt文件和触发器的代码发网盘分享下不

你好 我们刚刚上传了target label分别为0和1的两个在CIFAR-10上训练好的BadNets后门模型(效果展示图已经贴在上面的回答中)。触发器为默认设置:
pattern = torch.zeros((32, 32), dtype=torch.uint8)
pattern[-3:, -3:] = 255
weight = torch.zeros((32, 32), dtype=torch.float32)
weight[-3:, -3:] = 1.0。
模型地址:https://drive.google.com/drive/folders/1i6PsShRHE8Aol3ZVTSh2GchT-gDAi6l6?usp=drive_link。
你可以用这两个模型来debug一下你的代码。
非常感谢你关注我们的工作,祝你科研顺利!!]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants