Fork me on GitHub

Friday, July 15, 2016

#MachineLearning on steroids


This winter break I did something different. I didn't do a typical Software Engineering Internship. I used this break to learn as much as possible about Machine Learning mostly because of #FOMO and that it’s a field I have been interested in for a while.



My regime included an internship, Coursera course, open source contribution, reading books and papers (lots of them), competing on kaggle.com (or tried to) and following relevant blogs and twitter accounts. If you follow me on twitter, apologies for all the #MachineLearning tweets, in my defense I left a warning..;).
Here is how it went.

1) The internship
I interned local startup called Data Prophet that specializes in Machine Learning. I can't talk about it due to NDA but I'm very proud of the work I did there. I got to work with a smart and curious team from whom I absorbed a lot. I also got to work with iexperience interns from America. The company generously paid for my Machine Learning Course on Coursera (more info next). The highlight of the internship was the company hackathon where we got to play with brain waves.

This is a course taught by Andrew Ng, a professor at Stanford, founder of Baidu and co-founder of Coursera. He definitely is an influential figure in Machine Learning. The course runs over 11 weeks, it is free but a certificate costs $49. It covers basics of Machine Leaning, basic Math and programming knowledge are enough prerequisites. It gives a comprehensive guide to the vast array of algorithms. I completed it with the 100%. I highly recommend it for any beginner in Machine Learning. 


3) Open source contribution
I have been contributing to Scikit-Learn, an open source python Machine Learning library and SOMPY. I contributed by working on some issues. So far I have made 3 pull requests, all of which have been merged. Score! I have also contributed to SOMPY documentation. 


4) Reading research papers.
This one was tricky at first. It takes a while to get used to academics' language but I have found my way and actually enjoy it. Nothing beats reading an interesting paper over a cup of tea..;). I have read (and still am, actually am writing this post as a break from a paper) interesting papers on Natural Language Processing, Deep Learning and Kohonen Self Organising Map (for my thesis). Trust me when I say it gets addictive.

5) Following relevant content.
This one is easy, just click a button and you have found your tribe. It’s also very addictive. I have a bookmark folder that I’m happy to share with anyone interested. The following have been very useful for me:
·        http://www.wildml.com
·        http://karpathy.github.io/
·        Colah.github.io

Blogs are a good source for latest developments, opinions and tutorials (simpler language than papers)

6) Competing
 I love competitions, so the idea of participating on Kaggle resonated with me. Unfortunately, due to limitations of my PC, I can only participate in some competitions. Oh well, once I have worked around it, I’ll write a post about y progress. They also get quite addictive, on submitting a solution, you are more likely to spend hours improving your score by 0.1%.

My top 3 lessons from the experience:
1) Machine Learning is a very broad subject; you'll definitely get lost if you try to understand everything. Rather pick a topic or two, at most three to focus on.
2) Seek help if you are stuck.
3) Don't give up!

You are probably thinking, wasn’t that too much Machine Learning for 5 weeks? Well, it was intended to be a binge, remember. I did other things too, like attending DebConf, travelling (writing this from Tanzania), reading (Malcolm Gladwell’s David and Goliath  and Blink) , listening to Psychology podcasts and of course running #Balance.
As the break comes, I believe my objective has been met (at least partially). I'm definitely more comfortable with Machine Learning terms and the current trends. I also still have a lot more to learn, hence the papers, blogs and courses. I don’t know what this will lead to, perhaps a postgrad in Machine Learning, a job as a scientist, or just a hobby. I can’t tell, but I did and do enjoy making Computers intelligent. Here is to the last leg of my degree!


No comments:

Post a Comment