Content of the course: The course is going to cover various theoretical and applied aspects of deep learning. The high-level contents are:
Introduction to neural networks and implementation in PyTorch
Suggested Reading links - Why Deep Neural Networks for Function Approximation , Universal approximation - Cybenko
Assignment 1: "Our task is to predict house prices using Neural Networks. The dataset is publicly available at Kaggle (https://www.kaggle.com/c/house-prices-advanced-regression-techniques). Most of the house property features are categorical features, and one may have to use Embedding layers to convert them into real vectors of desired dimensions. There are separate training and test datasets. You are required to use train.csv to train your NN model, and evaluate it on the test set. Don't forget to use feature/data standardization. You may also refer to some of the sample submissions on data preparation. Happy learning!"
Autoencoders and Generative Adversarial Networks (Theory and Applications)
PPT - Module2 , Repo for GCN- https://github.com/baranwa2/MetabolicPathwayPrediction
Codes- AutoEncoder_example , AdversarialAutoEncoder_example , VariationalAutoEncoder_example
Suggested Reading links - Auto-Encoding Variational Bayes , Adversarial Autoencoders , Semi-Supervised Classification with Graph Convolutional Networks
Assignment 2 - Replicate the task given at: https://github.com/hrenski/Adversarial-Autoencoder-Experimients/blob/master/aae_faces_Gauss.ipynb "Experiment with generating new faces, and explore the role of generator and discriminator hyperparameters!"
Recurrent Neural Networks (Theory and Applications)
PPT - Module3 , Repo for Microbiome project - https://gitlab.eecs.umich.edu/mayank.baranwal/Microbiome
Assignment 3 - "You are expected to learn to predict angular positions and velocities of the two links in a double-pendulum system. The equations describing the evolution of a double pendulum system are described in https://scipython.com/blog/the-double-pendulum/. Simulate the double-pendulum system for random initial conditions with $\theta_1, \theta_2\in (-\pi,pi]$ and $\dot{\theta}_1, \dot{\theta}_2 \in [-5,5]$. Set $m_1=2m_2=2$ and $l_1=0.5l_2=1$. Simulate this system 200 times with a randomly chosen initial condition. For each of the 200 scenarios, sample the outputs (angular positions and velocities) at $t=1,2,3,\dots,10$ time instants and store them, along with initial condition at $t=0$. Of the 200 examples, randomly sample 150 examples and make this your training set. The remaining 50 examples are kept as a test set. Train an LSTM model with teacher forcing to predict the outputs at all time instants given the initial condition, and validate your trained model on the test set."
Neural-ODEs (Theory and Applications)
Code Link- Demo-NeuralODE.ipynb
Assignment 4 - "You are expected to learn to predict angular positions and velocities of the two links in a double-pendulum system. The equations describing the evolution of a double pendulum system are described in https://scipython.com/blog/the-double-pendulum/. Simulate the double-pendulum system for random initial conditions with $\theta_1, \theta_2\in (-\pi,pi]$ and $\dot{\theta}_1, \dot{\theta}_2 \in [-5,5]$. Set $m_1=2m_2=2$ and $l_1=0.5l_2=1$. Simulate this system 200 times with a randomly chosen initial condition. For each of the 200 scenarios, sample the outputs (angular positions and velocities) at $t=1,2,3,\dots,10$ time instants and store them, along with initial condition at $t=0$. Of the 200 examples, randomly sample 150 examples and make this your training set. The remaining 50 examples are kept as a test set. Train an ODENet to predict the outputs at all time instants given the initial condition, and validate your trained model on the test set."
Physics-Informed Neural Networks (Theory and Applications)
Code Link- PINN_Example
Assignment 5 - Consider the pde $u_t + x u_x = u$ with the initial condition $u(x,0) = x^2$. The analytical solution to this pde is $u(t,x) = x^2e^{-t}$. Simulate this system for $x\in[0,2]$ and $t\in[0,5]$. Randomly sample 100 points containing the tuple-$(t,x,u)$ such that $x\in[0,1]$ and $t\in[0,1]$. Create a simple NN that takes $x$ and $t$ as inputs and predicts $u$. Train this model using supervised loss. Validate this model for $x\in[1,2]$ and $t\in[2,5]$. Does the static model capture the evolution across the entire domain?
Now repeat the same process but this time include the Physics loss + IC loss, along with the supervised loss. Train a PINN to see if you're able to capture the trend overall.
Reinforcement Learning (Theory and Application)
PPT - Module6
Assignment 1 : colab link1
Assignment 2 : colab link2
Assignment 3 : colab link3
Assignment 4 : colab link4
Assignment 5 : colab link5
Dates : Every Wednesday starting on September 7th.
Time : 2pm-5pm (1.5 hours of theory seminars, followed by 1.5 hours of implementation).
Venue : Seminar Room, SysCon department, IIT-B
Instructor: Prof. Mayank Baranwal [Scientist, TCS Research || Adjunct Asst. Professor, SysCon]