MANAS Taskphase: What did I learn?

Hi! So this blog is a brief idea which will enlighten you about how I got into Project MANAS – the official AI and Robotics club of MIT. It consists of the learnings that I went through during my Task Phase, the 5 months long rigorous selection process which I was able to survive because of the great guidance of the mentors that I received here.
My journey started on 9/9/2018 when I walked into the MIT Automobile Workshop for my first interview. I wouldn’t lie, I really felt comfortable the moment I sat down and had a word with the team as they were very welcoming. The amount of enthusiasm and passion the team had was really captivating. When I got in the task-phase I realized that I found myself a family, people I could look up to in a place like Manipal where I was barely three months old!
PROJECT MANAS, this one is for you!

1.Getting Started

2.Machine Learning

  • Andrew Ng Coursera (Week 1-6):
    This is really an awesome place to get started with Machine Learning and Deep Learning. Professor Andrew explains all the theory especially the Mathematics part in moderate depth (many find it overwhelming, but I think it is crucial to know the logic and Math behind every working formula and algorithm.) Though in some cases he doesn’t go deeper into deriving formulas which require basic Calculus from 10+2, he does explain the parts which are necessary. Deriving the formulas which were left untouched will definitely improve your understanding of the concept. Also, this course requires you to code in MATLAB/Octave for the assignments which according to him is very useful in building concepts, but I personally executed the code in Python which is a very widely used language in ML. Also, I have heard from a few friends that a major portion of the code for the assignments is already there, we just have to code the main formula part. So if you are really interested in studying further topics like Neural Networks, Convolutional Neural Networks, Reinforcement Learning and much more I very highly prefer you implement with Python because for all those topics the frameworks are in Python and you have to switch to it eventually, so it’s better that you learn to implement from the basics instead of directly jumping to advanced topics which you will have a very hard time to figure out the code for.

Here’s the link for the course:
Andrew Ng Machine Learning

0*bgV76bVbGcSOhXOr.jpg

3.Robotic Operating System (ROS)

ROS:
The beginner tutorials will familiarize you with ROS, a meta operating system, used for communication in robots. I worked on Kinetic distro of ROS.
The intermediate level explains how to package the functionalities of ROS in bigger projects. The installation procedure and tutorials are in the following link:
ROS Tutorial

Logo-ROS-Robot-Operating-System1

4.OpenCV (Computer Vision)

  • OpenCV Core Module:
    The Core module of OpenCV contains all of the basic building blocks of the library. It will give you a basic idea of how images are stored and processed. It also teaches how filters work and basic image operations like blending. changing contrast and brightness.
    Following is the link for the module:
    Core Module
  • OpenCV ImgProc Module:
    The imgproc module of OpenCV contains functions for image processing and manipulation. It begins with drawing simple geometry in OpenCV to smoothing images and detecting edges using Canny Edge Detector and Hough Line transform.
    ImgProc Module

expanding-possibilities-computer-vision-with-ai-wallpaper.jpg

5.CS 231n (Convolutional Neural Networks)

Convolutional Neural Networks for Visual Recognition is a course offered by Stanford University and one of the best courses out there to start with convolutional neural networks.
This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification.

Resources:
Course Notes
Video Tutorials (Lecture 1-16)

Fig2GCNN1

Apart from all of these courses which we were required to complete in the task-phase, I found many others which will definitely aid you in the learning journey.

1.Python Basics

IBM Coursera Data Science Specialization is a very basic and well-rounded specialization which teaches you all the basics of Python that is required for implementing Andrew Ng Machine Learning assignments. It also builds up your Python Foundations for further Deep Learning courses provided by deeplearning.ai (mentioned further).
If you are short of time(like I was) you could do courses 4,6,7,8 only to get started with implementing the Andrew Ng assignments. This will take you around 4-6 hours to consume the videos.

Following is the link for this course:
IBM Coursera Data Science Specialization

Python-programming-Gamers-and-coders-of-the-world-unite-1024x490

2.Deep Learning and Neural Networks

Coursera Deep Learning Specialization course 1 by deeplearning.ai
This Deep Learning course is the best course I have ever seen! Period! Not only this particular course but the entire 5-course Specialization is amazing and I recommend it 100% to anyone who is serious about Deep Learning. Professor Andrew Ng teaches this course too.
This course is taught entirely in Python and the code syntax is also taught from very basics. You could directly jump onto this course once you’re done with the first 6 weeks of Andrew Ng Machine Learning.
It retouches upon the basics of Neural Networks and gives you a good practice on the Numpy library of Python which is the core library of Machine Learning. It’s okay if you don’t have prior experience with Python, this course will take care of it for you.
You will learn to implement an entire Neural Network from scratch using just Numpy. Complete all the assignments religiously and you will have a very solid conceptual and coding base for creating a Neural Network.

Following is the link for the course:
Neural Networks and Deep Learning

Following are my handwritten notes for this course:
Neural Networks

td-deep-learning.jpg

3.OpenCV (Computer Vision)

While learning OpenCV from its documentation there are some topics which are not explained well.

Following are the links to the best videos I found on YouTube which explains the particular topic in detail:

This is the best Hough line transform video:
Hough line transform theory
Explains Hough line transform using a mathematical example:
Hough line transform solved example

Computerphile is a sister channel of the very famous Numberphile YouTube channel. All their videos are very informative. The videos explain the concepts from very basics and will present the topics in a very interesting way. Must watch all of their computer vision videos!
Some of the videos which are very crucial to start with learning computer vision are as follows:
Computerphile Digital Images
Computerphile Resizing Images
Computerphile Multiple Dimension Images
Computerphile Blurs and Filters
Computerphile Sobel Derivatives
Computerphile Canny Edge Detector

maxresdefault.jpg

4.CNN (Convolutional Neural Networks)

Coursera Deep Learning Specialization course 4 by deeplearning.ai is yet another masterpiece which according to me is better than CS231n as it teaches the very basics of CNNs and solves all the doubts you could still have after doing CS231n.
It is again a very well structured course. Implement all the assignments religiously and you’ll be pretty comfortable with CNNs.

Following is the link for the course:
Convolutional Neural Networks

Thanks for reading my blog! Hope I could provide you with some value. If there are any suggestions or any better courses that you find please please let me know!
Happy (deep) learning! 🙂

3 thoughts on “MANAS Taskphase: What did I learn?

Leave a comment