“This course will offer a mathematical and practical perspective on artificial neural networks for machine learning. Students will learn about the most prominent network architectures including multilayer feedforward neural networks, convolutional neural networks (CNNs), auto-encoders, recurrent neural networks (RNNs), and generative-adversarial networks (GANs). This course will also teach students optimization and regularization techniques used to train them -- such as back-propagation, stochastic gradient descent, dropout, pooling, and batch normalization. Connections to related machine learning techniques and algorithms, such as probabilistic graphical models, will be explored. In addition to understanding the mathematics behind deep learning, students will also engage in hands-on course projects. Students will have the opportunity to train neural networks for a wide range of applications, such as object detection, facial expression recognition, handwriting analysis, and natural language processing. Prerequisite: Machine Learning (CS 539), and knowledge of Linear Algebra (such as MA 2071) and Algorithms (such as CS 2223).”
CS 541 involved learning about many central deep learning concepts and applications of said concepts. The main concepts that the class went over include a basic machine learning review of linear algebra and machine learning models (mainly linear regression), feed-forward neural networks, convolution (with CNNs), RNNs, and GANs. Several optimizations and other considerations were also discussed in the class. The projects consisted of implementing some of these networks. For the second half of the semester, there was a group project, where my group decided to develop networks that was able to predict what captions should be written given an image, utilizing concepts including CNNs, RNNs, and NLP (natural language processing). The project also involved presenting to the whole class with the project and the findings.