Dr. Edgar J. Lobaton
Electrical and Computer Engineering
ECE 542 Neural Networks
3 Credit Hours
(also offered as CSC 591-601)
Recent development on computer hardware as well the existence of large datasets have fueled the development of new neural network and deep learning techniques which have demonstrated some of the best performance in machine learning tasks. This course provides an introduction to artificial neural networks, recurring neural networks, deep learning, and convolutional neural networks.
Linear Algebra (NC State MA 405 or equivalent), Probability and Statistics (NC State ST371, NC State MA421 or equivalent). The course will use elementary matrix algebra, includes matrix/vector multiplication, matrix inverses, matrix description of the solution to linear equations, eigenvalues and eigenvectors. The course will use elementary probability theory: means, variance, covariance, expected values/moments of linear functions, stationarity. Programming experience in object-oriented languages is needed (e.g., C++ or Python). We will make use of various libraries in Python.
Upon completion of the course, the student will be able to:
- Explain the basic concepts behind Neural Networks including training methodologies using backpropagation, and the universal approximation theorem
- Explain the basic concepts associated with the various network structures / models including Convolutional Neural Networks (CNNs), Recurring Neural Networks (RNNs), Restricted Boltzmann Machines (RBMs), Generative Adversarial Networks (GANs), and others.
- Implement Neural Networks using state-of-the-art software libraries
- Tune Neural Networks
Homework will be submitted via Moodle or uploaded to a shared drive..
Deep Learning, I. Goodfellow, Y. Bengio and A. Courville, MIT Press, 2016, ISBN 9780262035613
Computer and Internet Requirements
Please review minimum computer specifications recommended by NC State University and Engineering Online.
Most assignments will need require the use of Open-Source libraries in Python. The student is responsible for getting access to computer resources powerful enough to complete the assignments. One option is to access remote resources at NCSU via the Virtual Computing Lab (VCL) at: http://vcl.ncsu.edu/. Additionally, free trial periods exist for students using cloud resources such as IBM Cloud, Amazon Web Services (AWS) and Google Cloud.