Deep Learning
Fundamentals of deep learning, including architectures (e.g., MLPs, CNNs, RNNs, Transformers, and GNNs) and learning algorithms under different paradigms (supervised / unsupervised / reinforcement learning). Emphasis on design principles and motivating applications. [3-0-2]
Although deep learning is based on many well known artificial intelligence (AI) concepts dating back decades or more, it has come to prominence again based on the number of recent successes. A combination of improved algorithms, increased access to data, and the availability of low-cost/high-performance computing resources have dramatically improved the performance of deep learning for certain application areas.
This course will focus on implementation and applications of deep learning systems for tasks such object recognition, speech recognition, language processing, and autonomous driving. Specific concepts will include neural networks, deep neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs) as well as improvement and optimization techniques such as back propagation, gradient decent, parameter tuning and regularization. This course will involve extensive hands-on programming assignments. Comfort programming in a high level languages such as Matlab or Python is required as well a solid understanding of linear algebra.
Prerequisite:
ONE OF
MATH 152 – Linear Systems
MATH 221 – Matrix Algebra
AND ONE OF
MATH 318 – Probability with Physical Applications
MATH 302 – Introduction to Probability
STAT 302 – Introduction to Probability
STAT 321 – Stochastic Signals and Systems
ELEC 321 – Stochastic Signals and Systems
AND ONE OF
CPEN 221 – Software Construction I
CPEN 223 – Software Design for Engineers I
CPSC 259 – Data Structures and Algorithms for Electrical Engineers
4 credits