convex_adversarial
convex_adversarial copied to clipboard
epsilon in CIFAR10
Hi,
I've run the code like the following for epsilon=8/255=0.03137 on CIFAR-10:
python examples/cifar.py --proj 50 --norm_train l1_median --norm_test l1 --starting_epsilon 0.001 --epsilon 0.03137 --schedule_length 20 --epochs 60 --cuda_ids 1
However, I've noticed that, in the case of CIFAR, you've used the normalization with the standard deviation 0.225 in the loader (link to loader file), but epsilon is just added to the normalized input (link). So do I have to normalize the epsilon? like 0.03137/0.225?
FYI, with eps=0.03137 I can get the errors Robust error 0.519 Error 0.392 which are much better than those reported in the paper Robust error 0.792 Error 0.722 and similar to the reported results for eps=2/255 (Note that 2/255~0.03137/0.225) Robust error 0.528 Error 0.389.
~ Sungyoon
Correct, the epsilon needs to be normalized. I was manually doing this in my experiments by passing in the normalized epsilon directly to the script, but I forgot the default parameter is not normalized.
~Eric
Thanks for the quick response.