app_deep_learning

T81-558: PyTorch - Applications of Deep Neural Networks @Washington University in St. Louis

APACHE-2.0 License

Stars
366

T81 558:Applications of Deep Neural Networks

Washington University in St. Louis

Instructor: Jeff Heaton

  • Section 1. Spring 2024, Tuesday, 2:30 PM, Location: Cupples I / 215

Course Description

Deep learning is a group of exciting new technologies for neural networks. Through a combination of advanced training techniques and neural network architectural components, it is now possible to create neural networks that can handle tabular data, images, text, and audio as both input and output. Deep learning allows a neural network to learn hierarchies of information in a way that is like the function of the human brain. This course will introduce the student to classic neural network structures, Convolution Neural Networks (CNN), Long Short-Term Memory (LSTM), Gated Recurrent Neural Networks (GRU), General Adversarial Networks (GAN) and reinforcement learning. Application of these architectures to computer vision, time series, security, natural language processing (NLP), and data generation will be covered. High Performance Computing (HPC) aspects will demonstrate how deep learning can be leveraged both on graphical processing units (GPUs), as well as grids. Focus is primarily upon the application of deep learning to problems, with some introduction to mathematical foundations. Students will use the Python programming language to implement deep learning using PyTorch. It is not necessary to know Python prior to this course; however, familiarity of at least one programming language is assumed. This course will be delivered in a hybrid format that includes both classroom and online instruction.

Objectives

  1. Explain how neural networks (deep and otherwise) compare to other machine learning models.
  2. Determine when a deep neural network would be a good choice for a particular problem.
  3. Demonstrate your understanding of the material through a final project uploaded to GitHub.

Syllabus

This syllabus presents the expected class schedule, due dates, and reading assignments. Download current syllabus

Module Content
Module 1Meet on 08/27/2024 Module 1: Python Preliminaries1.1: Course Overview1.2: Introduction to Python1.3: Python Lists, Dictionaries, Sets & JSON1.4: File Handling1.5: Functions, Lambdas, and Map/ReducePython PreliminariesWe will meet on campus this week! (first meeting)
Module 2Week of 09/03/2024 Module 2: Python for Machine Learning 2.1: Introduction to Pandas for Deep Learning2.2: Encoding Categorical Values in Pandas2.3: Grouping, Sorting, and Shuffling2.4: Using Apply and Map in Pandas2.5: Feature Engineering in PadasModule 1 Program due: 09/04/2024 Icebreaker due: 09/04/2024
Module 3Week of 09/10/2024 Module 3: PyTorch for Neural Networks3.1: Deep Learning and Neural Network Introduction3.2: Introduction to PyTorch3.3: Encoding a Feature Vector for PyTorch Deep Learning3.4: Early Stopping and Network Persistence3.5: Sequences vs Classes in PyTorchModule 2: Program due: 09/11/2024
Module 4Week of 09/17/2024 Module 4: Training for Tabular Data4.1: Using K-Fold Cross-validation with PyTorch4.2: Training Schedules for PyTorch4.3: Dropout Regularization4.4: Batch Normalization4.5: RAPIDS for Tabular DataModule 3 Program due: 09/18/2024
Module 5Week of 09/24/2024 Module 5: CNN and Computer Vision5.1 Image Processing in Python5.2 Using Convolutional Neural Networks5.3 Using Pretrained Neural Networks5.4 Looking at Generators and Image Augmentation5.5 Recognizing Multiple Images with YOLOModule 4 Program due: 09/25/2024
Module 6Meet on 10/01/2024 Module 6: ChatGPT and Large Language Models6.1: Introduction to Transformers6.2: Accessing the ChatGPT API6.3: LLM Memory6.4: Introduction to Embeddings6.5: Prompt EngineeringModule 5 Program due: 10/02/2024We will meet on campus this week! (second meeting)
Module 7Week of 10/15/2024 Module 7: Image Generative Models7.1: Introduction to Generative AI7.2: Generating Faces with StyleGAN37.3: GANS to Enhance Old Photographs Deoldify7.4: Text to Images with StableDiffusion7.5: Finetuning with DreamboothModule 6 Program due: 10/16/2024
Module 8Meet on 10/22/2024 Module 8: Kaggle8.1 Introduction to Kaggle8.2 Building Ensembles with Scikit-Learn and PyTorch8.3 How Should you Architect Your PyTorch Neural Network: Hyperparameters8.4 Bayesian Hyperparameter Optimization for PyTorch8.5 Current Semester's KaggleModule 7 Program due: 10/23/2024We will meet on campus this week! (third meeting)
Module 9Week of 10/29/2024 Module 9: Facial Recognition9.1 Detecting Faces in an Image9.2 Detecting Facial Features9.3 Image Augmentation9.4 Application: Emotion Detection9.5 Application: Blink EfficiencyModule 8 Assignment due: 10/30/2024
Module 10Week of 11/05/2024 Module 10: Time Series in PyTorchTime Series Data Encoding for Deep Learning, PyTorchSeasonality and TrendLSTM-Based Time Series with PyTorchCNN-Based Time Series with PyTorchPredicting with Meta ProphetModule 9 Program due: 11/06/2024
Module 11Week of 11/12/2024 Module 11: Natural Language Processing11.1 Introduction to Natural Language Processing11.2 Hugging Face Introduction11.3 Hugging Face Tokenizers11.4 Hugging Face Data Sets11.5 Training a Model in Hugging FaceModule 10 Program due: 11/13/2024
Module 12Week of 11/19/2024 Module 12: Reinforcement LearningKaggle Assignment due: 11/30/2024 (approx 4-6PM, due to Kaggle GMT timezone)Introduction to GymnasiumIntroduction to Q-LearningStable Baselines Q-LearningAtari Games with Stable Baselines Neural NetworksFuture of Reinforcement Learning
Module 13Meet on 11/26/2024 Module 13: Deployment and Monitoring13.1: Using Denoising AutoEncoders 13.2: Anomaly Detection13.3: Model Drift and Retraining13.4: Tensor Processing Units (TPUs)13.5: Future Directions in Artificial IntelligenceWe will meet on campus this week! (fourth meeting)Final project due: 12/03/2024

Datasets