I am training a Convolution Neural Network similar to LeNet5 to detect road signs in the German Traffic Signs Dataset. With about 35,000 training samples I get to 95% validation accuracy. To improve accuracy, I tried augmenting the training set with random Affine transformations of original images.

When I perform augmentation and then normalize my data (mean subtraction and division by standard deviation), the network converges very slowly and validation accuracy actually goes down. However when I perform augmentation after normalization the same network converges much faster and the validation error improves to 97%.

Is there a theoretical basis for this? To me it makes more sense to perform augmentation before normalization because un-normalized images look much better and I can tell if augmentation is working correctly by plotting those images.


closed as unclear what you're asking by mdewey, Michael Chernick, gung Sep 10 '17 at 0:57

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ Exactly!! Augmentation is always done before. I am surprised by the behavior of your network. Can you post both the architectures ? $\endgroup$ – Nain Apr 10 '17 at 12:21
  • $\begingroup$ What is the validation procedure? Is it a separate chunk? Do you split and cross-validate? $\endgroup$ – broncoAbierto Sep 8 '17 at 15:16

The thing is, in the case of normalizing after augmentation, if you are normalizing your images by subtracting off the mean and dividing by the variance of the pixels, for operations like Brightness and/or Contrast changes in the images, most likely these augmentation operations are not having effect because the normalization zeros the mean and makes the stddev unit.

For the second case, yes, it is strange.

Hope I could help.


Not the answer you're looking for? Browse other questions tagged or ask your own question.