How to get started with machine learning?
Why machine learning?
March 2016, there was a lot of buzz around Google’s AlphaGo program taking on world champion Lee Se-dol at the game of Go, a board based game that I had no idea about. AlphaGo won a series of 5 games 4–1 against Se-dol. ‘What is all the fuss about?’, I thought to my programmer self, ‘Code the rules of the game into a program and make the best possible decision on every move’. But this was different. Go was considered to be one of the toughest games to teach to a computer. Computers match or surpass top humans in a wide variety of games: Othello, Scrabble, backgammon, poker, even Jeopardy. But not Go. As recently as 2014, the automation of expert-level Go remained one of AI’s greatest unsolved riddles.
Apparently folks at Deep Mind, which developed AlphaGo and they were later acquired by Google, had trained a computer program to teach itself Go. They had apparently not explicitly coded the rules of the game into the program, but had programmed it to learn the game by trial and error. They called it deep reinforcement learning. This was considered to be a huge event. Everything sounded like rocket science to me.
There was a sudden surge in articles about artificial intelligence and machine learning. There was talk of super intelligent bots taking away all our jobs. Elon Musk even termed AI as the biggest existential threat to humanity!! Was it true? How had the world come to this? What else can be achieved through machine learning? Can I make use of it in my work? I had so many questions. Hence I resolved to teach myself sufficiently to be able to understand all this.
So where should one start?
Don’t waste any time looking further and take this course on Coursera. It is a introductory level course on machine learning. Starting with linear regression, the course gradually introduces you to advanced machine learning topics. The course contents are divided in 10 `weeks`. Each ‘week’ has video lectures of about 2 hours and an assignment, which can take up to 3 hours to be done depending on your understanding of course materials . The course is self paced and you don’t have to stick to the ‘week’ schedule. I completed the course in 2 weeks (I was not working and as a result I had a lot of free time).
The course is not mathematically rigorous and is only designed to give you a flavor of various machine learning algorithms and topics. However one could feel a bit lost without knowledge of linear algebra, statistics and probability. If you have studied these topics before you can quickly brush up your knowledge here— linear algebra review, probability review and statistics review. I had studied these topics as a part of my undergrad, which was 4 years prior to taking this course, and yet I could understand the course contents without revising these topics. I only occasionally needed to google some concepts from these topics.
To complete the assignments you would be using Octave or MATLAB. You will do fine if you have used either of these software packages before. Don’t sweat if you haven’t, the course only makes use of very basic functionality and you can quickly learn to use these from online tutorials. I had used MATLAB before (again while pursuing my undergrad) but I decided to use Octave since it is free.
Did taking this course help?
Definitely. At least now everything doesn’t sound like rocket science to me. I can understand research papers and publications. Blog posts and news articles make more sense to me. At the startup, where I am working, I have already deployed a binary classification system, based on supervised learning, in production. In the machine learning universe it is fairly “hello world”-ish but it serves our purpose.
What next?
This question on Quora serves as a very useful guide on more advanced topics which can be pursued after the introductory course.
If you are a python developer and are interested in seeing the machine learning algorithms in action you can start with scikit-learn. Its an open source python library and provides a lot of machine learning algorithms out of the box. DataQuest has courses on using python for data science.
If you’re interested in a career in data science, many people go on from the introductory machine learning course to take the Data Science specialization. According to Andrew Ng, the professor for this course, many students are successfully using this combination to start off data science careers.
Kaggle is a community for data scientists and hosts data science competitions. If you are not sure what project to work on, Kaggle competitions can be a great way to start. Before working on Kaggle competitions you will have to understand and learn things like exploratory data analysis, preparing and cleaning your data. DataQuest is a good place to get started with all this.
Happy learning :)