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
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!