Image denoising using PCA, NMF, K-SVD, Spectral decomposition, CNN and state of the art generative adversarial denoising autoencoder