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!