Module 2: Convolutional Neural Networks
Module Overview
This module introduces Convolutional Neural Networks (CNNs), a specialized type of neural network designed specifically for processing structured grid-like data such as images. While traditional neural networks struggle with the spatial structure of images, CNNs excel by implementing convolution operations that can automatically detect important features like edges, textures, and shapes.
You'll learn the fundamental operations that make CNNs work—convolution and pooling—and understand how these operations allow the network to build increasingly complex representations of visual data.
Learning Objectives
- Describe convolution and pooling
- Apply a convolutional neural network to an image classification task
- Use a pre-trained convolution neural network for image classification
Guided Project
Open DS_432_Convolutional_Neural_Networks_Lecture.ipynb in the GitHub repository to follow along with the guided project.
Module Assignment
Apply three different CNN approaches to classify images of mountains and forests using transfer learning, custom CNN models, and data augmentation techniques.
Assignment Solution Video
Additional Resources
CNN Fundamentals
- Stanford CS231n: Convolutional Neural Networks
- Feature Visualization: How Neural Networks Build Up Their Understanding of Images
- Deep Residual Learning for Image Recognition (ResNet Paper)
Implementation and Tools
- Keras Applications: Pre-trained Models
- TensorFlow: Image Data Augmentation
- TensorFlow: Transfer Learning and Fine-tuning