E237B: Hands-on Deep Learning

Deep learning has become an unprecedented and universally powerful tool with applications to a plethora of application domains with problems ranging from vision, speech, natural language processing, robotics, and several other areas. This course will provide select important advances in deep learning. We will particularly focus on a hands-on approach where students will learn techniques and immediately try them out in class to construct their own deep networks. This course will introduce students to topics such as multi-layer perceptrons (MLPs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), and long short-term memory (LSTMs). We will see how each of these networks differ and how they are suited for specific problems. This short course will take students through every step of the process, including:

― The use of python and keras to quickly construct deep networks programmatically.

― Various topics in deep learning such as gradient-descent based optimization, regularization and loss functions.

― Dense Networks, CNNs, RNNs, LSTMs.

― Case study: Digit classification using MNIST dataset using dense networks, CNNs, RNNs and LSTMs.