CPSC 585 – Artificial Neural Networks Project 7 solved

$35.00

Category: You will receive a download link of the .ZIP file upon Payment

Description

5/5 - (1 vote)

In this project, you will improve on the results of Project 5 using Convolutional Neural Networks.

Note: while this project uses the same dataset as Project 5 and you should read that project to understand the details of the dataset, you do not need to have completed Project 5 in order to do this project.

The project may be completed individually, or in a group of no more than three students.

Platforms and Libraries

The platform and library requirements for this project are the same as for Project 5, but CNNs are more computationally intensive than MLPs (minutes per epoch on a CPU rather than seconds), so access to a GPU or TPU is almost certainly required.

Reusing Code

Code from A Whirlwind Tour of Python and from the library documentation may be reused. All other code and the results of experiments must be your own original work or the original work of other members of your team.

Experiments

Run the following experiments in a Jupyter notebook, performing each action in a code cell and answering each question in a Markdown cell.

  1. Load the data from emnist_letters.npz and use plt.imshow() to verify that the image data has been loaded correctly, and that the corresponding labels are correct.
  2. The Keras examples include a Simple MNIST convnet. Note the accuracy obtained by that code compared to Chollet’s example from the previous project. Apply this architecture to the EMNIST Letters data.

What accuracy do you achieve? How does this compare with the accuracy for MNIST? If you completed Project 5, how does this compare with the accuracy you achieved in that project?

  1. While the fit() method provides a progress bar and some metrics for each epoch, it is often easier to visualize the training process by plotting a loss curve. Use the History object that this method returns to plot how the loss changes with the number of training epochs.
  2. Unfortunately, fit() does not return until training is complete. In order to avoid going down dead ends while adjusting your architecture and tuning its hyperparameters, you may prefer to visualize metrics during the process. TensorFlow includes the TensorBoard tool and the TensorBoard notebook extension for this purpose.

Note: if you get a 403 error when trying to use TensorBoard in Google Colab, you may need to enable third-party cookies.

  1. Now that you have a baseline convolutional network for comparison, begin experimenting with alternative architectures, optimizers, and hyperparameters for the EMNIST Letters dataset. How much can you improve the accuracy over Project 5?
  2. When finished, evaluate your results on the test set.
  3. Use plt.imshow() to view some of the misclassified images and examine their labels. Describe what you think might have gone wrong.

Submission

A Markdown cell at the top of the notebook should include project summary information as described in the Syllabus for README files.

Since you may be actively editing and making changes to the code cells in your notebook, be certain that each of your code cells still runs correctly before submission. You may wish to do this by selecting Run All from the drop-down menu bar.

Submit your Jupyter .ipynb notebook file through Canvas before class on the due date.

If the assignment is completed by a team, only one submission is required. Be certain to identify the names of all students on your team at the top of the notebook. See the following sections of the Canvas documentation for instructions on group submission: