## Course Description

A first level course on the engineering of machine learning software. The course will focus on learning through implementing various types of machine learning systems. By the end of the course, students will be able to implement neural networks to perform classification on image, text, and other types of data. Students will also have a high-level understandings of neural network models used to generate images, such as autoencoders and GAN. We will focus on implementations using Python, Numpy, and PyTorch. Course Information Sheet

All announcements will be made on Quercus.

## Course Staff

**Instructor:** Lisa Zhang**Office Hours:** Thursday 4pm-5pm BA2197 (and by appointment)**Email:** lczhang [at] cs [dot] toronto [dot] edu

Please include "APS360" in your email subject.

**Teaching Assistants:** Andrew Jung, Huan Ling, Farzaneh Mahdisoltani, Jake Snell

## Tentative Schedule

The course schedule is tentative, and subject to change.

Date | Material | Reading | Deadline | |
---|---|---|---|---|

Week 1 | May 6 | Monday Lecture:- Introduction
- Biological and Artificial Neurons
- Slides
Thursday Lecture:Thursday Lab 1:- Python and PyTorch
| Resources: - Colab Instructions
- Software Installation Instructions (old)
- Python and Numpy Tutorial
- PyTorch Introduction [ipynb] [viewer]
Lecture Notes: Study Question: | Lab 1 (May 15) |

Week 2 | May 13 | Monday Lecture:(Lisa is away from May 14-25)Thursday Lecture (Jake):- Neural Network Training - Hyperparameters and Validation Set
- Slides [wip]
Thursday Lab 2:- Cats vs Dogs
| Lecture Notes: Study Question: | Lab 2 (May 22) |

Week 3 | May 20 | Monday: Victoria Day, No LectureThursday Lecture (Jake):- Multi-Class Classification
- Slides [wip]
Thursday Lab 3(a):- Data Collection
| Lecture Notes: Reading:Study Question: | Lab 3a (May 24) |

Week 4 | May 27 | Monday Lecture:- Convolutional Neural Networks
Thursday Lecture:- Convolutional Architectures and Transfer Learning
Thursday Lab 3(b):- Gesture Recognition
| Lecture Notes: - Regularization
- CNN Architectures
Reading:- A Comprehensive Guide to Convolutional Neural Networks
- Convolutional Neural Networks (CNNs / ConvNets)
- Convolutional Neural Network #Architectures
Just For Fun: | Lab 3b (Jun 5) |

Week 5 | June 3 | Monday Lecture:- Regularization
- Deconvolutions and Autoencoders
Thursday Lecture- Word Embeddings
- Project Outline
Thursday Lab 4:- Autoencoders
| Lecture Notes: - Autoencoder
Reading: | Lab 4 (June 12) |

Week 6 | June 10 | Monday Lecture:- GloVe and Sentiment Analysis
- Recurrent Neural Networks
Thursday Lecture:- Recurrent Neural Networks (cont'd)
Thursday Lab 5:- Spam Detection with RNNs
| Lecture Notes: - GloVe and Sentiment Analysis
- Recurrent Neural Networks
Reading:- Representations (up to but excluding "Recursive Neural Networks")
- Understanding LSTMs (up to but excluding "Step-by-Step LSTM Walk Through")
- RNN Effectiveness
- Sentiment Analysis TorchText
| Lab 5 (Jun 19) |

Week 7 | Jun 17 | Monday Lecture:- Midterm Review
Thursday Lecture:- Midterm (6pm-8pm)
| Project Approval (June 21) | |

Reading week, no class | Project Proposal (June 27) | |||

Week 8 | July 1 | Monday: Canada Day, No LectureThursday Lecture:- Text Generation using Recurrent Neural Networks
| Lecture Notes: - Text Generation using Recurrent Neural Networks
Reading: | |

Week 9 | July 8 | Monday Lecture:- Generative Adversarial Networks
Thursday Guest Lecture (TBD)Thursday Lab: Project | Lecture Notes: - Generative Adversarial Networks
| Progress Meetings (July 8-15) |

Week 10 | July 15 | Monday Lecture:- Reinforcement Learning
Thursday Guest Lecture (TBD)Thursday Lab: Project | Lecture Notes: - Reinforcement Learning
| |

Week 11 | July 22 | Monday Lecture:- Ethics in AI
Thursday Guest Lecture (TBD)Thursday Lab: Project | Reading:- Model Cards for Model Reporting *Required for Monday's lecture
| Progress Report (July 24) |

Week 12 | July 29 | Monday Lecture:- Final Term Test Review
Thursday:- Final Term Test (6pm-8:30pm)
| ||

Week 13 | Aug 5 | Monday: Civic Holiday, No LectureThursday:- Project
| Presentation Slides | |

Week 14 | Aug 12 | Monday: Project PresentationsThursday: Project Presentations | Project Repository (August 15) | |

Exams |