autoencoders are unsupervised learning where CNNs are supervised. Learning the input space can be thought of as a form of regularization when training data is scarce. http://www.deeplearningbook.org/ is a wonderful resource to learn more about why and when to use different architectures.