CPEN 455

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