ASNI: Adaptive Structured Noise Injection for shallow and deep neural networks