12/08/2018, 16:03

Beginning Machine Learning Series: Roadmap

Preface Machine learning is a really large and evolving field of study. Most people (including myself) find it overwhelming just to get started because of the vast information that need to cover from mathematic to programming to actually put it into practice and not to mention the lack of data ...

Preface

Machine learning is a really large and evolving field of study. Most people (including myself) find it overwhelming just to get started because of the vast information that need to cover from mathematic to programming to actually put it into practice and not to mention the lack of data and real projects that you can apply the knowledge into. You'll most likely have an idea of what you want to do, but a quick trip to google for possible algorithms, shown that there are just too many options to choose from.

Getting Start

Looking back I think it is a good idea to start from the very basic so that you can understand what’s happening “under the hood” of all the various machine learning algorithms before you can be ready to really apply them; hence as a result is this Roadmap. A word of warning, as I'm also a complete beginner who's trying to tackle along this topic, there are bound to be some changes to this Roadmap as I progress along and find somthing that need to be add/update/delete.

Notice that you don't have to follow this Roadmap from the bottom up, feel free to jump into any section that you would like and jump back when you're stuggle with something. It's also recommended that you do a little bit of research before hand about what you want to do and which direction you want to take before jumping in; wasting one or two months on this is really worth it. Another thing is as you might have noticed the word series in the title, so there will be follow up article. Each month I will publish a new article introducing new algorithm(s) and will put the link into Learning Algorithms section.

Mathematic (1-2 months)

OK hold your horses! I know how you feel it isn't exactly sexy to just sit and study math, but trust me you have to be ready to think about math before machine learning will make any sense. If you aren't familiar with thinking in vector spaces or matrices then thinking about feature spaces or decision boundarie will be a real struggle (like in my case).

A good starting point is to learn Linear Algebra. After you've finished you should be comfortable with vectors, matrix multiplication, determinants, and Eigenvector decomposition; all of which act as a bridge to understanding machine learning algorithms.

After that you should learn Calculus, bring most of your attention to learning and understanding the meaning of derivatives, and how we can use them for optimization.

Programming (2-3 weeks)

This is the part that I myself enjoy the most, as a programmer I just love to learn and try out new language.But enough about me. It's time you pick your prefer programming language. There are a lot of choice out there, but the most recommened one are Python or R, though I'll use Python through out in the future post in this series about marchine learning.

There are a lot of resources available online that teach you how to program if you are new to programming. Just focus on the language itself and don't worry about the machine learning part just yet; and also don't worry too much in understanding the detail of the language skip that part. You only need to understand enough to be able to read and understand the code.

Algorithms

Types of Machine Learning Algorithms are commonly divided into categories according to their purpose and the main categories are the following:

  • Supervised Learning
  • Unsupervised Learning
  • Semi-supervised Learning
  • Reinforcement Learning

with each can be divided further down into sub-categories

  • Classification
  • Regression
  • Clustering
  • Dimenality Reduction

Working with Machine Learning

Once you have learned and pick the right algorithm that you think best suited for your work, put it into action, jump into a short-term project that you feel passionate about. You don't need to write down an implementation of algorithm from scratch, there are good libraries out there on the internet that can help you. Here are some library written in Python

  • NumPy
  • SciPy
  • Pandas
  • SciKit-Team
  • Keras
  • TensorFlow
  • Theano
  • NLTK
  • Gensim
  • Scrapy
  • Statsmodels

Also there are great resources/tutorials/competition on Kaggle which you can follow along. They provided a good example as well as example dataset that you can work with.

Further Reading

  • Deep Learning
  • Neural Networks
  • Artificial Intelligence
  • Machine Learning Courses
    • http://ai.stanford.edu/courses/
    • http://mlss.cc/
    • https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/
    • http://mlg.eng.cam.ac.uk/
  • Books
    • Machine Learning for Hacker
    • Machine Learning in Action
    • Learning scikit-learn: Machine Learning in Python
    • Machine Learning with TensorFlow
    • An Introduction to Statistical Learning
  • Videos
    • Machine Learning Recipes with Josh Gordon
    • Machine Learning for Hackers
    • Fresh Machine Learning

Encouragement

Don't be afraid to fail. Most of your time in machine learning will be spent trying to figure out why an algorithm didn’t pan out how you expected that’s normal. If your stuggling with some part same say math just go back to that section and review it again. Don't feel embarrassed because you can catch everything in one go. Just go for it. Early projects are a sandbox for learning the methods by failing  so make use of it and give it everything you got.

0