My AI/ML track in IIT Bombay

From some of the best Profs of India

  IITB        Courses        Deep Learning        AI/ML        Computer Vision        Materials  
Log:
Dec' 22: Updated IE-643 and CS-725
May' 23: Updated DS-899, CS-726 and CS-736
May' 24: Updated CS-772


Inspired from this and this post, I am sharing my views and materials that were generated by taking some of the courses, here at IIT Bombay, for my future reference. The materials that I am sharing here are generally my own intellectual property, like course presentations, reports etc. This is an ongoing blog and will be updated at the end of each semester. To be honest there are no such AI/ML tracks here at IIT Bombay, but one can make according to their requirements. I am enrolled here as a PhD in C-MInDS department, and for some obvious obligatory reasons, I need to do an AI/ML track which was curated by my supervisor, since he is the best in recommending courses.

Deep Learning - Theory and Practice (IE-643)


This is from the IEOR department, and one of my favorite courses taught by P. Balamurugan. The depth and breadth covered in this course is just amazing, exactly what is needed by a student. There are no such requirements for this course, except one needs to be comfortable with Python3 and should have some knowledge of machine learning and Pytorch. When I joined the course, I didn't have any experience of Pytorch, since I used to do everything in either Tensorflow or Keras, but I picked it along the way. This might be a bit difficult to those folks who don't like math and extensive coding, but DL/ML is all about coding, math and creating new technology. So, if you are really into Deep Learning and need to take a course, I will surely recommend this one.

Another good thing about this course is, this course does not have an end-semester exam, but one needs to do a good project to finish the course requirement. To be honest, this form of teaching is necessary, since there is nothing to gain from rote learning. When creating new technology, one should know the concepts, not memorize formulas and solve sums. This course is open book too, and the questions are a bit difficult, if you don't prepare regularly.

So, for me I had to do a pre-mid-sem presentation , a post mid-sem presentation an end-sem presentation along with the report of an interesting project which fetched me an AP grade. I did learn a lot from this course, and we also coded some stuff from scratch, and wrote a report on detecting camouflaged objects. The assignments were challenging and very relevant to the coursework, which challenges you to do things differently.

Foundations of Machine Learning (CS-725)


This course is a necessity, in case you are willing to take the Advanced Machine Learning course. This course is taught by Preethi Jyothi. The materials offered in this course are lucid and this also has an open book exam. If you are taking this course, you have to take one quiz, mid-sem exam, end-sem exam and one project, which can be done in a team of 3 to 5. There is flexibility and one can choose any topic one wishes to explore in the future. We had some tough assignments, and it took a whole week to find the best hyper-parameters. I really learned a lot, since I never expected that we need to put so much effort on just hyper-parameter tuning when building things from scratch, which the normal libraries takes care of internally. For the project, the main team members who contributed were Prateek Chanda (ex Microsoft Research) and Sandarbh Yadav (ex Oracle). I could have contributed much in this project, but I had some other stuff too, hence teamwork paid off. We made the best report and presentation for this course.

This course covers the foundations of machine learning. If you are into core-statistical-ml you can take this course. Deep leaning folks need to take this course, since this covers some basic foundations which will be required by other advanced courses. Don't expect the exams to be easy, just because it is open-book, it is the reverse here in IIT Bombay, all the courses have unique question papers, which are created from previous iteration of the courses, and will compel you to think naturally even with all the materials in hand.

Communication Skills (DS-899)


This might look like one of the redundant courses at first glance (for it being a P/NP course), but this is a gem. At least respect the fact that the best profs in India are giving their precious time for this course for you, which they could actually utilize in their research. We had all the good faculties from each of the departments come, pitch, and assign homework. Yeah, the homework might be a bit tiring if you have other commitments like RnD and difficult courses since each of the assignments takes a minimum of 5 hours of commitment. We did learn a lot of different perspectives which trained us to become better and more skillful academicians. The course is well structured, and expect one assignment every week. Don't miss the classes since attendance is mandatory here. Here are some of the materials generated from this course:



Advanced Machine Learning (CS-726)


The course is taught by Prof. Sunita Sarawagi. The way she relates the explainable and classic Probabilistic Graphical Models with Deep Learning is just on a different level. This is one of a kind course specifically designed for those students who want to pursue research in Machine Learning and the advanced concepts of Deep Learning. Though this is a conceptually loaded course, one might want to learn these concepts again, even after the course ends. I liked the part where we were taught about Generative Networks, where there were several variants of it, and I would like to revisit the material once again from time to time. I think it is entirely okay not to do good in this course since stuff from the last 50 years is taught in a 4 months period, but I would definitely recommend this course once you have made up your mind to do research in core Machine Learning. Another piece of advice would be to start the project from the beginning, which we didn't (I would also like to genuinely thank my team members for saving me); we procrastinated till the last date due to various reasons and made the report and presentation the day before the submission. Here is a sample of the assignment submitted by us, and also the course presentation and report.

Medical Image Computing (CS-736)


This course is taught by none other than my own advisor, Prof. Suyash P. Awate. I think these links ([link1] and [link2]) have better reviews of the course. I highly recommend taking this course since this is one of a kind. There are a lot of evergreen classic Machine Learning topics that are essential for practicing theoretical and applied DL, which are thoroughly taught here. The only piece of advice I would like to give is to practice the materials regularly, rather than cramming up for 2 days before the exam. Things really go blank if you cram up before the night, this is a mathematically loaded course, so pay attention to detail, and don't neglect even a single line from the slide. If this is the first time you are learning about topics related to statistics and algorithms, then this course will be very difficult for you. Make sure you have the required prerequisites for the course. Also, all the good students (senior year BTechs from all the departments) take this course (they already have a fair understanding of all the topics covered in this course) hence the competition is really tough for this course (at least for me). Make very short notes and make sure you are able to re-create the fundamental knowledge of topics depicted in the slides exactly, using those notes.

Deep Learning for Natural Language Processing (CS-772)


This is taught by one of the most senior faculty of CSE-IITB, Pushpak Bhattacharyya, who is known for creating the foundations of NLP in India. I am glad that my guide recommended this course, and there was a lot to learn from this course. This course is taught differently, which I would ideally follow when teaching my courses, where practical knowledge is paid much attention to by giving more weightage to course projects and assignments. There is more focus on insights rather than information. He starts with foundational topics like perceptron and covers most parts of Deep Learning, which is widely studied in most courses. Since the instructor is famous for linguistics, this course tries to teach you why things are going wrong when things are going wrong inside the neural network, i.e., focus on explainability and logical analysis. The materials taught in this course are pretty common, but the instructor's insight won't be available in most of the courses. I personally think that quizzes and exams are not very important in life, focus on learning, no need to worry when you are getting negative marks, take chances and learn more. We had assignments, course projects, quizzes, mid sem, and end sem. I will recommend taking this course, and also recommend taking the beginner NLP course, which wasn't taken by me. Here are the Assignment-1, Assignment-2, Midsem Project and Endsem Project presentations for the course.

Epilogue


This ends my course list in Machine Learning. I personally feel that there is a lot to learn from. Life is just learning things continuously, and courses are just a part of that learning. New things will come and go, and those who adapt and learn to new things fast can survive. To create foundational changes in the knowledge of human existence, one must invest considerable time. I would suggest you choose a track, like going into Machine Learning, Quantum Computing, Mathematics, or Cyber Security, and invest your life in learning different topics from different sources, focusing on what you want to do rather than learning everything. Don't be like, “Oh! I have topped this course, so I must know everything in this, I don't need to learn more.” Continuously learn whenever possible and open your mind to particular ideas that interest you. Also, please take courses at your own risk... All the best!