Disclaimer: I am still in the process of learning and claim no expertise in the field of Machine Learning, this post is based on my current experiences while learning ML and the techniques that have worked for me.
"Machine learning is something every developer at every company needs to know about, right now." - Kevin Scott, Microsoft CTO
Machine Learning is undeniably todays buzzword. You can see or hear it almost everywhere and everyone is getting into ML, companies are implementing this technology to improve their products, and developers are also riding the trend.
However, there are still questions from developers that I see everywhere that even myself had asked once, questions like "I don't have a PhD, is there a way to learn ML?" or "I'm no good at math, can I still learn ML?". The answer is, there's always a way and of course you can!
But, before we go into the actual "how-to"s, we first need to understand what Machine Learning is, how it works, and examples of its implementations.
Machine Learning is a subfield of AI that enables a software perform a task without explicit programming or rules, it does this by learning patterns from data using algorithms (i.e Regression, SVM, etc...). Examples of ML implementations are recommendation systems from Amazon and Netflix, Paypal's fraud detection, and predicting stock prices.
Deep Learning is a subfield of Machine Learning that uses algorithms inspired by the structure and function of the human brain called Artificial Neural Networks or ANN. Examples of DL implementations are Tesla's autopilot and Google DeepMind's AlphaGo.
The answer is simple, you learn by doing. Okay let me give you an example, when you want to learn a new language or maybe a framework, you install it on your machine then read the docs or watch a tutorial video and at the same time type on your IDE, right? This, I think is the "Software Developer way of learning".
Assuming you already know Python or R, you can do the same with Machine Learning even without mastering the math and theory behind it. Yes, you read that right! But don't get me wrong, knowing the math and theory behind the ML models are still important.
What we are doing here is called top-down learning which is an approach to quickly learn the high-level step-by-step process of a subject first before dedicating your time learning the theory. This approach is the opposite of traditional way of learning (learn theory; do things later) known as bottom-up learning.
Yes really, yes I'm serious, and yes it does work, at least for me. I guess it's because the feeling is more familiar when learning new languages or frameworks where we first dip our toes and see how it works (and feel excited) before dedicating more of our time. In fact, this approach is also recommended by Adrian Rosebrock and Jason Brownlee who both have a PhD degree in Computer Science and AI, respectively.
- Machine Learning Mastery by Jason Brownlee, PhD
- PyImageSearch by Adrian Rosebrock, PhD
- PythonProgramming.net by Sentdex
For starters, I recommend to follow Machine Learning Mastery's getting started guide or Sentdex's Practical ML w/ Python video series. Both are very easy to follow and beginner friendly.
All three sources have Deep Learning series in them, but if you are like me and want to focus on Computer Vision and its DL implementations, then I recommend PyImageSearch.
These are only my personal recommendations, there are other blogs and platforms out there to learn ML (i.e Coursera, fast.ai) and I encourage you to check them and see what works for you, or you can follow Daniel's custom learning module:
With no prior knowledge of Machine Learning, I didn't know where to start from. After doing some researches online, I created my own learning module and I found it pretty effective. So I want to share how I learned about ML:
Standford Machine Learning Course on Coursea
- You will gain mathematical understanding/notions of ML algorithms
- You will gain exposure to different types of ML learning
- Hence the course uses Octave, I recommend understanding concepts only.
- To understand its syntax and data structures
Aurélien Géron - Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow_ Concepts, Tools, and Techniques to Build Intelligent Systems-O’Reilly Media (2019)
- Hands-on code examples alongside ML algorithms + explanations
- It covers various areas of ML - Deep Learning, NLP, Supervised Learning, Unsupervised Learning, Reinforcement Learning, etc.
- A collaborative website for data scientist and ML engineers where you can play with real datasets and compare your finding to other people's works!
Interest in Data Science?
- "Data Mining by Charu C.Aggarwal" is a great book to start with!
When you're done or much better while you're still at it, start a couple of mini-projects implementing what you've learned so far then push it on your Github or write an article about it. This will not only be an addition on your portfolio but will also test your knowledge (sort of like a personal quiz).
If you love reading, I recommend to get yourself a book about ML (e-book is fine too) or read ML research papers and implement what's written via code, this is a tip that I frequently see on other blogs. Although I never done this I believe its also a great resource to learn, specially when it comes to theory and math behind the ML models.
Finally, join an online AI community or your local one, not only will they serve as your support group while learning where you can ask questions but also will be your personal network. After all, nothing is more better than an actual human-to-human interaction.
Cover image credits: Geeks4Geeks