Figure saving with proper size
This commit is contained in:
parent
04cf5cb9bc
commit
35fc6dd2e5
BIN
Filter_Analysis/Images/GaussianBlurPerformance.png
Normal file
BIN
Filter_Analysis/Images/GaussianBlurPerformance.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
@ -121,7 +121,7 @@ def test(model, device, test_loader, epsilon):
|
|||||||
strength = 2*i + 1
|
strength = 2*i + 1
|
||||||
|
|
||||||
# Apply the filter with the specified strength
|
# Apply the filter with the specified strength
|
||||||
filtered_input = defense_filters.bilateral_filter(perturbed_data_normalized, batch_size=len(perturbed_data_normalized), d=strength)
|
filtered_input = defense_filters.gaussian_blur(perturbed_data_normalized, batch_size=len(perturbed_data_normalized), ksize=(strength, strength))
|
||||||
# Evaluate the model on the filtered images
|
# Evaluate the model on the filtered images
|
||||||
filtered_output = model(filtered_input)
|
filtered_output = model(filtered_input)
|
||||||
# Get the predicted classification
|
# Get the predicted classification
|
||||||
@ -158,7 +158,7 @@ def test(model, device, test_loader, epsilon):
|
|||||||
print(f"Unfiltered Accuracy = {unfiltered_correct} / {len(test_loader)} = {unfiltered_acc}")
|
print(f"Unfiltered Accuracy = {unfiltered_correct} / {len(test_loader)} = {unfiltered_acc}")
|
||||||
for i in range(TESTED_STRENGTH_COUNT):
|
for i in range(TESTED_STRENGTH_COUNT):
|
||||||
strength = 2*i + 1
|
strength = 2*i + 1
|
||||||
print(f"Bilateral Filter (strength = {strength}) = {filtered_correct_counts[i]} / {len(test_loader)} = {filtered_accuracies[i]}")
|
print(f"Gaussian Blur (strength = {strength}) = {filtered_correct_counts[i]} / {len(test_loader)} = {filtered_accuracies[i]}")
|
||||||
|
|
||||||
return unfiltered_acc, filtered_accuracies
|
return unfiltered_acc, filtered_accuracies
|
||||||
|
|
||||||
@ -172,14 +172,14 @@ for eps in epsilons:
|
|||||||
filtered_accuracies.append(filtered_accuracy)
|
filtered_accuracies.append(filtered_accuracy)
|
||||||
|
|
||||||
# Plot the results
|
# Plot the results
|
||||||
|
plt.figure(figsize=(16,9))
|
||||||
plt.plot(epsilons, unfiltered_accuracies, label="Attacked Accuracy")
|
plt.plot(epsilons, unfiltered_accuracies, label="Attacked Accuracy")
|
||||||
for i in range(TESTED_STRENGTH_COUNT):
|
for i in range(TESTED_STRENGTH_COUNT):
|
||||||
filtered_accuracy = [filter_eps[i] for filter_eps in filtered_accuracies]
|
filtered_accuracy = [filter_eps[i] for filter_eps in filtered_accuracies]
|
||||||
plt.plot(epsilons, filtered_accuracy, label=f"Bilateral Filter (strength = {2*i + 1})")
|
plt.plot(epsilons, filtered_accuracy, label=f"Gaussian Blur (strength = {2*i + 1})")
|
||||||
|
|
||||||
plt.legend()
|
plt.legend(loc="upper right")
|
||||||
plt.title("Bilateral Filter Performance")
|
plt.title("Gaussian Blur Performance")
|
||||||
plt.xlabel("Attack Strength ($\\epsilon$)")
|
plt.xlabel("Attack Strength ($\\epsilon$)")
|
||||||
plt.ylabel("Accuracy")
|
plt.ylabel("Accuracy")
|
||||||
|
plt.savefig("Images/GaussianBlurPerformance.png", )
|
||||||
plt.show()
|
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
Attacking classifier models essentially boils down to adding precisely calculated noise to the input image, thereby tricking the classifier into selecting an incorrect class. The goal is to understand the efficacy of an array of denoising algorithms as adversarial machine learning defenses.
|
Attacking classifier models essentially boils down to adding precisely calculated noise to the input image, thereby tricking the classifier into selecting an incorrect class. The goal is to understand the efficacy of an array of denoising algorithms as adversarial machine learning defenses.
|
||||||
|
|
||||||
## Individual Denoising Algorithms
|
## Requirements
|
||||||
|
For a given filter to be beneficial to th e
|
||||||
## An Ensemble Approach
|
1. The filter
|
||||||
|
|
||||||
## Training the Model on Filtered Data
|
|
||||||
|
@ -954,3 +954,212 @@ Bilateral Filter (strength = 7) = 1999 / 10000 = 0.1999
|
|||||||
|
|
||||||
Bilateral Filter (strength = 9) = 1444 / 10000 = 0.1444
|
Bilateral Filter (strength = 9) = 1444 / 10000 = 0.1444
|
||||||
|
|
||||||
|
|
||||||
|
## Gaussian Blur
|
||||||
|
====== EPSILON: 0.0 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 9879 / 10000 = 0.9879
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 9682 / 10000 = 0.9682
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 7731 / 10000 = 0.7731
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 5250 / 10000 = 0.525
|
||||||
|
|
||||||
|
====== EPSILON: 0.025 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 9796 / 10000 = 0.9796
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 9796 / 10000 = 0.9796
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 9801 / 10000 = 0.9801
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 9512 / 10000 = 0.9512
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 7381 / 10000 = 0.7381
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 4862 / 10000 = 0.4862
|
||||||
|
|
||||||
|
====== EPSILON: 0.05 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 9600 / 10000 = 0.96
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 9600 / 10000 = 0.96
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 9674 / 10000 = 0.9674
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 9271 / 10000 = 0.9271
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 6922 / 10000 = 0.6922
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 4446 / 10000 = 0.4446
|
||||||
|
|
||||||
|
====== EPSILON: 0.07500000000000001 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 9260 / 10000 = 0.926
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 9260 / 10000 = 0.926
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 9460 / 10000 = 0.946
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 8939 / 10000 = 0.8939
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 6427 / 10000 = 0.6427
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 3989 / 10000 = 0.3989
|
||||||
|
|
||||||
|
====== EPSILON: 0.1 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 8753 / 10000 = 0.8753
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 8753 / 10000 = 0.8753
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 9133 / 10000 = 0.9133
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 8516 / 10000 = 0.8516
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 5881 / 10000 = 0.5881
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 3603 / 10000 = 0.3603
|
||||||
|
|
||||||
|
====== EPSILON: 0.125 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 8104 / 10000 = 0.8104
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 8104 / 10000 = 0.8104
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 8690 / 10000 = 0.869
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 7989 / 10000 = 0.7989
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 5278 / 10000 = 0.5278
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 3263 / 10000 = 0.3263
|
||||||
|
|
||||||
|
====== EPSILON: 0.15000000000000002 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 7229 / 10000 = 0.7229
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 7229 / 10000 = 0.7229
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 8135 / 10000 = 0.8135
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 7415 / 10000 = 0.7415
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 4710 / 10000 = 0.471
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 2968 / 10000 = 0.2968
|
||||||
|
|
||||||
|
====== EPSILON: 0.17500000000000002 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 6207 / 10000 = 0.6207
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 6207 / 10000 = 0.6207
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 7456 / 10000 = 0.7456
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 6741 / 10000 = 0.6741
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 4224 / 10000 = 0.4224
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 2683 / 10000 = 0.2683
|
||||||
|
|
||||||
|
====== EPSILON: 0.2 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 5008 / 10000 = 0.5008
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 5008 / 10000 = 0.5008
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 6636 / 10000 = 0.6636
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 5983 / 10000 = 0.5983
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 3755 / 10000 = 0.3755
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 2453 / 10000 = 0.2453
|
||||||
|
|
||||||
|
====== EPSILON: 0.225 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 3894 / 10000 = 0.3894
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 3894 / 10000 = 0.3894
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 5821 / 10000 = 0.5821
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 5243 / 10000 = 0.5243
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 3359 / 10000 = 0.3359
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 2269 / 10000 = 0.2269
|
||||||
|
|
||||||
|
====== EPSILON: 0.25 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 2922 / 10000 = 0.2922
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 2922 / 10000 = 0.2922
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 5050 / 10000 = 0.505
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 4591 / 10000 = 0.4591
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 3034 / 10000 = 0.3034
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 2112 / 10000 = 0.2112
|
||||||
|
|
||||||
|
====== EPSILON: 0.275 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 2149 / 10000 = 0.2149
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 2149 / 10000 = 0.2149
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 4290 / 10000 = 0.429
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 3998 / 10000 = 0.3998
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 2743 / 10000 = 0.2743
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 1983 / 10000 = 0.1983
|
||||||
|
|
||||||
|
====== EPSILON: 0.30000000000000004 ======
|
||||||
|
|
||||||
|
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||||
|
|
||||||
|
Unfiltered Accuracy = 1599 / 10000 = 0.1599
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 1) = 1599 / 10000 = 0.1599
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 3) = 3648 / 10000 = 0.3648
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 5) = 3481 / 10000 = 0.3481
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 7) = 2493 / 10000 = 0.2493
|
||||||
|
|
||||||
|
Gaussian Blur (strength = 9) = 1884 / 10000 = 0.1884
|
||||||
|
Loading…
Reference in New Issue
Block a user