Parameters:
model (tensorflow.keras.Model): The target model to attack.
x (numpy.ndarray): The input example to attack.
y (numpy.ndarray): The true labels of the input example.
epsilon (float): The magnitude of the perturbation (default: 0.01).
Returns:
adversarial_example (numpy.ndarray): The perturbed input example.
PGD
Projected Gradient Descent (PGD) attack.
Parameters:
model (tensorflow.keras.Model): The target model to attack.
x (numpy.ndarray): The input example to attack.
y (numpy.ndarray): The true labels of the input example.
epsilon (float): The maximum magnitude of the perturbation (default: 0.01).
alpha (float): The step size for each iteration (default: 0.01).
num_steps (int): The number of PGD iterations (default: 10).
Returns:
adversarial_example (numpy.ndarray): The perturbed input example.
BIM
Basic Iterative Method (BIM) attack.
Parameters:
model (tensorflow.keras.Model): The target model to attack.
x (numpy.ndarray): The input example to attack.
y (numpy.ndarray): The true labels of the input example.
epsilon (float): The maximum magnitude of the perturbation (default: 0.01).
alpha (float): The step size for each iteration (default: 0.01).
num_steps (int): The number of BIM iterations (default: 10).
Returns:
adversarial_example (numpy.ndarray): The perturbed input example.
CW
Carlini & Wagner (C&W) attack.
Parameters:
model (tensorflow.keras.Model): The target model to attack.
x (numpy.ndarray): The input example to attack.
y (numpy.ndarray): The true labels of the input example.
epsilon (float): The maximum magnitude of the perturbation (default: 0.01).
c (float): The weight of the L2 norm of the perturbation (default: 1).
kappa (float): The confidence parameter (default: 0).
num_steps (int): The number of C&W iterations (default: 10).
alpha (float): The step size for each iteration (default: 0.01).
Returns:
adversarial_example (numpy.ndarray): The perturbed input example.
Deepfool
Deepfool attack.
Parameters:
model (tensorflow.keras.Model): The target model to attack.
x (numpy.ndarray): The input example to attack.
y (numpy.ndarray): The true labels of the input example.
num_steps (int): The number of DeepFool iterations (default: 10).
Returns:
adversarial_example (numpy.ndarray): The perturbed input example.
JSMA
Jacobian-based Saliency Map Attack (JSMA) attack.
Parameters:
model (tensorflow.keras.Model): The target model to attack.
x (numpy.ndarray): The input example to attack.
y (numpy.ndarray): The true labels of the input example.
theta (float): The threshold for selecting pixels (default: 0.1).
gamma (float): The step size for each iteration (default: 0.1).
num_steps (int): The number of JSMA iterations (default: 10).
Returns:
adversarial_example (numpy.ndarray): The perturbed input example.