Convolution Neural Networks (or CNNs) are neural networks that involve one or more convolution layers. CNNs are used in variety of machine-learning applications including image classification, natural language processing or classifying sentences into different categories.