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

A question about your method #1

Open
ideasplus opened this issue Dec 4, 2023 · 7 comments
Open

A question about your method #1

ideasplus opened this issue Dec 4, 2023 · 7 comments

Comments

@ideasplus
Copy link

ideasplus commented Dec 4, 2023

Hello,

I have a question after reading your paper. Does your defense require knowing the attack type in advance? PointCRT needs to train a classifier to distinguish clean and backdoor samples, making it attack-dependent. However, I think such a defense assumption is unreasonable.

Could you help me solve this issue? Looking forward to your reply.

@ideasplus
Copy link
Author

@Wilmido @ycz11 any updates?

@Wilmido
Copy link
Collaborator

Wilmido commented Dec 15, 2023

Sorry for replying late,
Your point is very valid, but PointCRT does not require the knowledge of the backdoor attack types in advance.

The purpose of training a classifier is to let the classifier know what a clean sample is, and all other samples are considered as backdoor samples. So we don't need to known backdoor samples as positive samples. As shown in Figure 6, we have actually conducted transferability experiments, and concluded that classifiers trained by transformation-based backdoor triggers as known backdoor attacks exhibits excellent transferability.

I hope the above response is helpful to you.

@ideasplus
Copy link
Author

ideasplus commented Dec 15, 2023

@Wilmido
Thanks for your response! Since I just had a quick look at the paper, I may have missed some details.

I have one more question: In your main experiments instead of the ablation study, do you train a series of classifiers on each to-be-detected attack or train a classifier on a default attack type and then detect all attack types?

@Wilmido
Copy link
Collaborator

Wilmido commented Dec 15, 2023

We rigorously conducted the main experiments on TeCo and SCALE-UP following their original repositories. They are conducted by the known backdoor attack. To be honest, we do not notice this problem. However, this setting ensures the fairest comparison with these methods. As you can see, directly applying their predefined thresholds from 2D images domain would be much more inappropriate. But, I personally, also agree that this seems tricky.

@ideasplus
Copy link
Author

@Wilmido
Thanks for your response and sorry for the late reply.

If I understand correctly, both TeCo and SCALE-UP claim that they do not have any prior information about the backdoor attack. They should just need the clean samples to determine the detector's threshold. I haven't looked at their code yet, do you mean they also need known poisoned samples to determine the threshold?

Please correct me if I'm wrong. Thank you.

@Wilmido
Copy link
Collaborator

Wilmido commented Dec 22, 2023

Indeed. The ROC evaluation code, including both TeCo and SCALE-UP, compares the predicted labels with the ground-truth labels (whether it is a backdoor sample) by employing corresponding functions sklearn.metrics.roc_curve to obtain thresholds.

from sklearn import metrics
fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=1)
print(metrics.roc_auc_score(y, pred))

So, you won't find the definition of "thresholds" in their repository codes because they are not manually selected! Our approach, in contrast, involves training a classifier to detect backdoor samples, eliminating the need for hyperparameter selection. However, it must be acknowledged that the requirement for a backdoor attack to train it is unavoidable, as you pointed out earlier.

@ideasplus
Copy link
Author

Ok, I see. Thanks for your kind reply.

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

2 participants