Feature/dynamic backdoor gan #2734
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#Overview
I am an MSc Data Science student at the University of Edinburgh, contributing this feature as part of my research on adversarial machine learning. My work focuses on designing and evaluating GAN-based dynamic backdoor attacks, and this PR integrates my implementation into ART to support the broader adversarial ML community.
Description
This PR introduces a GAN-based Dynamic Backdoor poisoning attack to the Adversarial Robustness Toolbox (ART).
Summary: Adds a new attack class
DynamicBackdoorGAN
that generates input-specific, adaptive perturbations instead of static patches.Motivation: Traditional backdoor implementations in ART use fixed triggers, which are easier to detect. This contribution provides a modern, stealthy, and research-driven attack for benchmarking model robustness.
Files added/updated:
art/attacks/poisoning/dynamic_backdoor_gan.py
– implementation of the new attackart/attacks/poisoning/__init__.py
– registered the attackexamples/dynamicbackdoorgan_demo.py
– example usage on MNIST and CIFAR-10docs/poisoning/dynamic_backdoor_gan.md
– usage documentationFixes # (no open issue, new feature contribution)
Type of change
Testing
examples/dynamicbackdoorgan_demo.py
.Test Configuration:
Checklist