/t81_558_deep_learning

Washington University (in St. Louis) Course T81-558: Applications of Deep Neural Networks

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

T81 558:Applications of Deep Neural Networks

Washington University in St. Louis

Instructor: Jeff Heaton

The content of this course changes as technology evolves, to keep up to date with changes follow me on GitHub.

Spring 2019, Mondays, Online and in class room: Lopata Hall / 302

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 of much greater complexity. 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 computer vision with Convolution Neural Networks (CNN), time series analysis with Long Short-Term Memory (LSTM), classic neural network structures and application to computer security. 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 mathematical foundations. Students will use the Python programming language to implement deep learning using Google TensorFlow and Keras. 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 1
Meet on 01/14/2019
  • Python Preliminaries
  • We will meet on campus this week! (first meeting)
Module 2
Week of 01/28/2019
Module 3
Week of 02/04/2019
Module 4
Week of 02/11/2019
Module 5
Meet on 02/18/2019
  • Classifcation and Regression
  • Module 4 Assignment due: 02/19/2019
  • We will meet on campus this week! (2nd Meeting)
Module 6
Week of 02/25/2019
Module 7
Meet on 03/04/2019
  • Convolutional Neural Networks and Computer Vision
  • Module 6 Assignment due: 03/05/2019
  • Current topics pt 1 due 03/05/2019
  • We will meet on campus this week! (3rd Meeting)
Module 8
Week of 03/18/2019
Module 9
Week of 03/25/2019
Module 10
Week of 04/01/2019
Module 11
Week of 04/08/2019
Module 12
Meet on 04/15/2019
  • Security and Deep Learning
  • Kaggle Assignment due: 04/16/2019 (approx 4-6PM, due to Kaggle GMT timezone)
  • We will meet on campus this week! (4th Meeting)
Module 13
Week of 04/22/2019
  • Current topics pt 2 due 04/23/2019
  • Advanced/New Deep Learning Topics
Module 14
Week of 04/29/2019
  • GPU, HPC and Cloud
  • Final Project due 04/30/2019

Datasets

  • Iris - Classify between 3 iris species.
  • Auto MPG - Regression to determine MPG.
  • WC Breast Cancer - Binary classification: malignant or benign.
  • toy1 - The toy1 dataset, regression for weights of geometric solids.

Note: Other datasets may be added as the class progresses.

Final Project

For the final project you can choose a security project or choose your own dataset to create and fit a neural network. For more information:

  • Security Project - See Canvas for more information.
  • Independent Project - Choose your own dataset or one of my suggestions.

Other Information