Skip to content

hackmd-github-sync-badge

Week 6

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. If you are using JupyterHub, you can include those plots in your Jupyter notebook.

Assignment 6.2

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. If you are using JupyterHub, you can include those plots in your Jupyter notebook.

Assignment 6.2.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. If you are using JupyterHub, you can include those plots in your Jupyter notebook.

Assignment 6.3

Load the ResNet50 model. Perform image classification on five to ten images of your choice. They can be personal images or publically available images. Include the images in dsc650/assignments/assignment06/images/. Save the predictions dsc650/assignments/assignment06/results/predictions/resnet50 directory. If you are using JupyterHub, you can include those plots in your Jupyter notebook.

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.

If you are using Jupyter, you can create a zip archive by running the Package Assignments.ipynb notebook.

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

You are required to have a minimum of 10 posts each week. Similar to previous courses, any topic counts towards your discussion count, as long as you are active more than 2 days per week with 10 posts, you will receive full credit. Refer to the optional topics below as a starting place.

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