-
Notifications
You must be signed in to change notification settings - Fork 3
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
EOT attack can break through this method #1
Comments
Hello, may I ask how you achieved a PGD-20 accuracy of 60% in the evaluation, while my PGD-20 accuracy was only 38% |
Hi, please check the readme for the training and evaluation setting. The pretrained models are also available on the Google Drive provided in the readme. All the results can be reproduced via the provided evaluation code and pretrained models. For the evaluation, we follow the protocol in Double-win Quant (ICML 2021). The contribution of RPF mainly lies in a better trade-off between clean and robust accuracy due to distance preservation. It is possible that this method performs worse under stronger EOT attacks because the adversarial training strategy used in this method is a black-box one, which reduces the adversarial transferability among different paths instead of improving the adversarial robustness directly. One potential solution is to enhance the adversarial training by involving EOT-PGD. |
I downloaded the pretrained models in Google Drive and used the evaluation code, but the obtained robust accuracy of pgd and fgsm is 40%, which is much lower than 69.48% and 66.49% in the paper. |
I just followed the readme and run the code. The following code is the key to implementing RPF for evaluation
|
Thank you very much for your reply. I believe that trying to use EOT attacks for adversarial training in random methods is a good idea, but this still does not guarantee that the model's robustness has genuinely improved. Perhaps this is a common issue with experience-based robustness verification methods. |
I set args.rp to True when I ran the evaluation code, but I still got the wrong robust accuracy. What does the code look like when reading the pre-trained model? The source code looks like this: |
Hi, @2480667859. If you have not modified the source code and followed the evaluation code in the readme:
the results in the paper can be reproduced. Would you please share the evaluation log so that I can help? For the source code you mentioned
It loads all the weights from the pretrained model. The reason why |
Yes, the training recipe follows the one in Overfitting in adversarially robust deep learning. The detailed setting is provided in Section 4.1. It uses PGD-10 for 200 epochs with a multistep lr schedule. To reproduce the result of this baseline, you can try applying the AT framework provided in train.py with vanilla resnet.py. |
It seems like it did not load the pretrained weights correctly since the clean accuracy is around 10%. Please note that you need to retrain the vanilla resnet.py with the AT algorithm in Overfitting in adversarially robust deep learning. Then you can replace the model in the evaluate.py to perform the evaluation. One potential issue here is that Torchattack assumes that the input image is not normalized. Thus, we add a dataset normalization layer to the resnet. Please check here. |
I reproduced this code and it has a robust accuracy of 60% on PGD20 and only 42% on EOT-PGD20, which is much lower than baseline
The text was updated successfully, but these errors were encountered: