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.
This course will be delivered in a hybrid format – both classroom and online instruction. In-class meetings will be held on 1/22, 2/12, 3/5 & 4/9.
- Explain how neural networks (deep and otherwise) compare to other machine learning models.
- Determine when a deep neural network would be a good choice for a particular problem.
- Demonstrate your understanding of the material through a final project uploaded to GitHub.
- Course Content/Sessions (GitHub) – Contains the workbooks, datasets and other files related to the course. Material for each class session is kept here.
- Blackboard – Submit assignments and track your grade.
- Piazza Q&A – Ask questions about this course. Python, TensorFlow or others.
- Class Videos – The YouTube playlist for the current semester..
- Syllabus – The current syllabus.