CNN-tutorial

Nowadays, computer vision has been growing rapidly. From robotics and selfdriving cars to augmented reality devices and facial recognition software, models that make predictions from  images are embedded all around us. Convolutional neural networks (CNNs), as a type of newly emerged technique in the past few decades, are becoming a more common machine learning model that is used to classify images, such as handwritten digits, animals, and people.

The goal of our project is to introduce students to CNNs based on their previous exposure to neural networks in class, and help them familiarize with applying their knowledge via some small activities. Students will first be exposed to the idea of twodimensional (2D) convolutions and the corresponding mathematical equations. To enrich their understanding, students will then practice convolution by applying simple filters to images. Activities will include applying premade filters to images as well as designing filters to augment images, such as creating an edge detector filter. These simple exercises will help to illustrate the practical utility of these operations in classification problems and how they relate to other aspects of neural networks that we explored in class.

After developing an understanding of 2D convolutions, students will be introduced to the general architecture of CNNs using graphical representations and having the opportunity to directly interact with pre-built models. It is not expected that students will be able to build a CNN from scratch, but it is expected that they can describe the general model architecture.

What is convolution?