Skip to content

Week 6

hackmd-github-sync-badge

In this lesson you will learn about Convolutional Neural Networks (ConvNets/CNNs). These are neural networks that are suited for a variety of image recognition tasks including image classification and object detection.

Objectives

After completing this week, you should be able to:

  • Build a ConvNet from labeled image data to perform multiple category image classification
  • Understand how to use existing models to classify images
  • Describe how to fine-tune existing models for specific classification tasks

Readings

  • Read chapter 5 in Deep Learning with Python

Weekly Resources

Assignment 6

Assignment 6.1

Using section 5.1 in Deep Learning with Python as a guide (listing 5.3 in particular), create a ConvNet model that classifies images in the MNIST digit dataset. Save the model, predictions, metrics, and validation plots in the dsc650/assignments/assignment06/results directory.

Assignment 6.2

a.

Using section 5.2 in Deep Learning with Python as a guide, create a ConvNet model that classifies images CIFAR10 small images classification dataset. Do not use dropout or data-augmentation in this part. Save the model, predictions, metrics, and validation plots in the dsc650/assignments/assignment06/results directory.

b.

Using section 5.2 in Deep Learning with Python as a guide, create a ConvNet model that classifies images CIFAR10 small images classification dataset. This time includes dropout and data-augmentation. Save the model, predictions, metrics, and validation plots in the dsc650/assignments/assignment06/results directory.

Assignment 6.3

Load the ResNet50 model and classify the images found in the data/raw/images directory. Save the predictions dsc650/assignments/assignment06/results/predictions/resnet50 directory.

Submission Instructions

For this assignment, you will submit a zip archive containing the contents of the dsc650/assignments/assignment06/ directory. Use the naming convention of assignment06_LastnameFirstname.zip for the zip archive. You can create this archive in Bash (or a similar Unix shell) using the following commands.

cd dsc650/assignments
zip -r assignment06_DoeJane.zip assignment06

Likewise, you can create a zip archive using Windows PowerShell with the following command.

Compress-Archive -Path assignment06 -DestinationPath 'assignment06_DoeJane.zip

Discussion Board

In this lesson, we focused on using ConvNets to classify entire images. In real-world use cases, we often want to perform different tasks such as object detection, image captioning, or face detection. For this discussion, pick one of the three topics below and write a 250 to 750-word discussion board post. Use the DSC 650 Slack channel for discussion and replies. For grading purposes, copy and paste your initial post and at least two replies to the Blackboard discussion board.

Topic 1 - Transfer Learning

Transfer learning is a machine learning technique that uses a model trained to solve another problem as the basis to build a related model. How would you implement transfer learning in a ConvNet or any other deep neural network? What is the benefit of fine-tuning an existing model instead of training your own from scratch?

Topic 2 - Object detection

In this lesson you trained models to perform simple image classification. In many use cases, we want to be able to pick out specific objects within an image. What use cases do you see for object detection? What techniques would you use to perform object detection?

Topic 3 - Face Detection

Face detection and recognition is one application of deep neural networks. What techniques are used to train models for face detection and recognition? Are there unsupervised techniques that do not require labeling the data?


Last update: March 12, 2023