Before you proceed, I got to be honest here, the title is misleading. The title should have read something like this, "A pragmatic guide for a non-programmer / non-statistician busy (* ahem* lazy) business professional to get started with Machine Learning!". I'm sure you would agree that this title sounds a little banal. I had to think of something clever (maybe not) to make you click on the post ;)
Now that I have come clean, who should read this guide?
Easy! I have a couple of questions, and if you answer "yes" to those questions, then this guide is relevant for you.
Question #1: Are you that "Additional Personnel"?
Before you go..WTF !! You MUST read this fantastic post "Top 10 roles in AI and data science" by Casssie Kozyrkov ( Chief Decision Intelligence Engineer @ Google). She has listed down and clearly articulated top 10 roles and how each of those roles fit in AI. I strongly urge you to go through the article and evaluate yourself where you deem fit or aspire to position yourself.
If you identify yourself as someone described in #10: Additional Personnel , then you should read this guide. If you haven't checked out (you really should) the post, then here's a short description from the post.
"they are geniuses at their own discipline and have learned enough about data and decision-making to be remarkably useful to your project. Think of them as having their own major or specialization, but enough love for decision intelligence that they chose to minor in it."
Genius..hmm..that's quite flattering !!! Well, you get my point. I'm a customer engagement/business development professional. I neither do programming nor do anything related to statistics in my line of work. I talk about it though! I wanted to learn data science not only to go beyond jargon speak but also, more importantly, make myself useful for the organization. No matter what role you play, knowledge of data science is an absolute must going forward.
Good, now that you have identified yourself as the "genius" that supports data science projects & teams, here comes the second question.
Question #2: Are you prepared for a 90-100 days plan?
There are several "zero-to-hero in 30 days" plans for Machine Learning. Remember, this guide is for someone that has a full-time job, has a life outside work and most importantly has very little or no programming & statistics background.
Moreover, if you want to understand the basics of machine learning truly, it is important to go beyond the learning videos and try to get some hands-on experience. Watching videos is the easiest part of any course. It's the practice that takes time. So, to be successful, it is important you set aside a realistic goal. I would recommend a minimum of 90 days. If you are not slow on the uptake like truly yours, then you can probably shave off few weeks.
You may also want to check out Prof.Andrew Ng's answer on starting a career in machine learning.
How should you start a career in machine learning
Let's get started
If you have come this far, I presume you have answered yes to both the questions. One last caveat emptor before you proceed any further. There are many online resources where you can learn the below-suggested topics. The resources mentioned below are mostly free and worked for me. The main objectives of this guide are to highlight key topics that need to be covered and help you spend less time scouting for learning resources on the web. Do pick the learning resources that you are comfortable with.
Step-1 : Learn the basics
You may have already heard and read about Data Science, Machine Learning, Deep Learning, AI and more. Often, many of these terms are misused in the market. Though academics tend to be anal about the terms incorrectly, it is important that you understand these terms. So, do spend some time to learn the basics.
Data science is the discipline of making data useful - Cassie Kozyrkov
What on earth is data science? A quick 10 min introduction to data science
Introduction to data science ( Free Course)
Step-2 : Refresh your math knowledge
Basic understanding of statistics, probability , linear algebra and calculus is a must for you to get started with machine learning. Mosf of these topics would have been covered in high school math. So, if you have a really good memory and strong foundation on these areas, you can skip this part. Else, here are my recommendations
I'm more a visual learner, and some of the concepts in math are hard to visualize ( at least for me it is). I'm a huge fan of Grant Sanderson's 3blue1brown essence series.IMHO, his videos on are hands-down the best source for anyone that wants to learn math.
Essence of linear algebra
Essence of Calculus
Introduction to statistics
Step-3: Get started with programming
What is the best programming language for machine language? The honest answer is, there is no such thing as the best programming language for machine learning. The answer will vary depends on who you ask. For beginners, most recommended language is python given the wealth of libraries and ease of use.I would recommend the same as well.
Introduction to python
Introduction to data analysis
Kaggle - 7 Day python challenge : A quick way to get started on python
Introduction to jupyternotebook
Get yourself familiar with Jupyter notebooks. Not because it's widely in data science, but it's also an excellent learning tool for python. I use the jupyter notebook to practice python and add notes for future reference. Once you are done with the above steps, you are all set to get started with machine learning.
Step-4: Get started with Machine Learning
Prof. Andrew Ng's course on introduction to machine learning is one of the best courses out there to get started with machine learning. I did the course this quite a while ago, and I strongly recommend this course for absolute beginners. The course also includes supplemental sections on linear algebra and statistics. Even if you do not want to do the certification and complete the assignments, I strongly advise you to at least go through the course. Prof. Andrew Ng breaks down complex topics and helps you grasp the intuition behind the complex math and algorithms.
As I had mentioned earlier, I'm a visual learner and visualizing neural networks, gradient descent, back, and many such topics is a daunting task. Thanks again to Grant Sanderson's video on introduction to neural networks. His video provides the best visual introduction to neural networks. 3Brown1Blue's videos are excellent supplements to Prof.Andrew Ng's course.
Step -5 : Programming for Machine Learning
Once you have completed steps 1-4, you should have developed a good intuition and solid foundation on the core concepts of machine learning. It's time you get your hands dirty and put those theories into practice. Here, I have a couple of suggestions.
Option-1: Udacity - AI Programming with Python ($$$$$)
This is a paid course. This course provides an excellent introduction and touches upon all of the topics outlined in the earlier steps. The emphasis is on the coding part where you learn how to use datasets, create the neural network, train the neural network and finally, predict the results. The assignments are structured in a way that you get good practice around all of those steps. Another important feature of Udacity is the access to mentors. As a beginner, you will get stuck at times and having a mentor allows getting directions, tips & tricks whenever you are stuck. The other most important reason for me in choosing this course was that I had to pay for this course! Let's be honest..passion for learning can wax and wane depending on several factors especially for working professionals that are constantly juggling work and personal life. So, I needed something to nudge me now and then. Simply put, the motivation is not to lose my hard earned $$$. It may sound lame but just saying that sometimes negative reinforcements work!
Udacity - AI Programming with Python Nanodegree
I've published the dataset and code used for my final project ( Image classfication - Flowers) . Feel free to clone and try it out.
Option-2 : Fast.ai Machine Learning for Developers ( FREEEEE)
I have not audited the course. So, I cannot comment much about this course. Having said that, I did seek inputs from couple of my contacts that completed the course. They spoke highly of this course and strongly recommended for beignners that have some experience in coding.
Fast.ai Machine Learning for Developers
That's about it! Once, you have completed all the above steps; you can thump your chest and proudly pronounce that you understand the basics of Machine Learning. Please remember, the key word is "basics."
There's no one path to get started with Machine Learning. The path outlined in this guide worked for me. You can choose to get started with python programming or straight away pick a project and learn the concepts as you progress. Choose a path that works for you.
The field is abuzz with so many new developments and hardcore researchers & data scientists dominate this field.So, ML can be quite intimidating to get started. Do remember the "Top 10 AI roles". Once you get past initial jitters, you will soon realize it is fun as well.
Finally, as you progress, you will quickly realize that there's more to learn. The quote from Prof.Andrew Ng says it all.
"But the most important thing is to keep on learning. Not just for a few months, but for years."
Resources & References
1. This is why anyone can learn machine learning
2. Neural networks and deep learning, a free online book from Michael Nielsen
3. Cassie Kozyrkov's blog
4. Analytics Vidhya
5. Kaggle Learning Modules
6. Practice your python
7. Machine Learning Mastery
8. Machine Learning projects for beginnners
9. ML friendly data sources
Disclaimer : This post does not represent the thoughts,intentions, plans or strategies of my employer.It is solely my opinion.Feel free to challenge me, disagree with me and share your thoughts in the comments section