Table of Contents
- Forget the math for now
- Start with visual resources
- Get your hands dirty
- Pick your language
- The final step
- Closing thoughts on getting started with machine learning
Machine learning is one of the most popular topics today. It is also not beginner-friendly, rather the opposite. It is one of those subjects that are hard to start with. This article will give you a roadmap that will help you start with machine learning the easy way. Use the following steps and start learning machine learning today.
Forget the math for now
This may sound as a weird advice since machine learning is based on mathematics and statistics. However, it is the mathematical and statistical side of machine learning that is often the hardest for beginners to swallow. It is not so hard to imagine a guy or girl interested in machine learning. With the current traction of this subject this group is gaining new members every day.
The problem with learning machine learning
Since you are reading this article, you are probably one of these people as well. Now, let’s say you already saw some introductory lecture on machine learning. What is one of the things you will hear in almost every time? The probabilities are quite high that you will hear about mathematics, especially precalculus and calculus, and statistics. How encouraging is hearing any of this if you don’t know anything about these subjects?
Let’s compare it to wanting to learn how to drive a car. So, imagine you want to learn to drive a car. You find someone who already has the necessary knowledge. His answer? Do you know something about internal combustion engines, ignition systems, cooling, changing oil, etc.? Unless you are really passionate about cars, your answer will probably be no.
You are curious and interested in driving and you just want to whet your appetite. Do you really need to know all these and many things right now? The answer is a big no. All you need is the minimum amount of information so you can follow your new interest and try to drive a car. In the case of driving a car, this will be how to start the engine.
Next, you will need to know how to use the steering wheel, pedals, transmission, winker and mirrors. This is all you need at this moment. You don’t need to know anything else, assuming there is an experienced driver in the car with you. Why can’t we apply this approach same to learning machine learning and focus only on the smallest amount information necessary at the moment?
Breaking the laws and rules
The answer is, we can. It is not necessary to bury yourself under pile of books on precalculus, calculus and statistics at this moment. There is no law or rule saying you have to something like that. And, even if there was such a law, who says you can’t break it? And, even if there was someone saying such a thing, who says you have to listen? Break these illusionary laws and rules.
Don’t make your journey to machine learning harder than it has to be. This journey already is and will be hard enough. Make it easier instead. Just for now, skip any math and statistic if you don’t understand these subjects. Math and stats can wait for a day, or a week. Focus on what matters the most right now. That is getting your feet whet as fast as you can. Which brings us to the next step.
Start with visual resources
In the beginning starting learning machine learning was quite hard for me. I made a mistake and did we just discussed not to do. Yes, I started with mathematics. I got my hands on books about precalculus and calculus. Then, I started learning about various machine learning models and algorithms. I also started watching online university lectures on these topics.
As you can guess, it didn’t take long and I was overwhelmed and discouraged. I actually decided to put machine learning on the metaphorical “some day” to do list. The problem was that I couldn’t any of the things I was reading about put into pictures. I couldn’t imagine how layers, perceptron and neural networks work. All I saw was just mathematical functions.
Imagination and knowledge
It was like reading a book in a foreign language. I didn’t know what was the plot about or who were the main characters. I didn’t know anything. The whole book was just a stack of pages full of cryptic text. When you think about it, this is often one of the reasons why we can’t perform some move we didn’t learn to do properly. We can’t “see” ourselves perform that move.
On the other hand, when we have this knowledge, we can perform that move without blinking an eye. Masters can perform it even without the need to see anything. If you are skilled programmer, think about a moment when you are trying to solve some problem. How often do you “write” the code inside your mind? How often do try to imagine different solutions before really typing anything? You can literally see the lines and possible outcomes as clear as if the code was written in the text editor.
This is also why it is often hard to explain something you know to someone who lacks your knowledge. You can imagine it and see it like it is real. The other person can’t. This then creates a problem in communication between you two. It can sometimes look like you both are speaking different languages. And, in some sense, you are. Your knowledge has direct impact on your language.
Solving the knowledge gap
So, how can we avoid this knowledge gap? A simple solution, that worked for me, was to start with visual resources. However, I am not talking about resources such as videos, slides and pictures. What I mean by visual resources are playgrounds. Yes, playgrounds were the key. These playgrounds helped me see how all those functions models and algorithms approximately work.
What’s more, everything was real-time. I could see the results of my changes almost immediately. My action was followed by reaction and could observe the results. This feedback loop was the second key. It was like reverse engineering machine learning models and algorithms. This approach may not work for everyone. For some, studying learning models and algorithms may work better.
Give this idea a try and see it for yourself if it works for you. For example, one playground you can use is TensorFlow playground. Right now, don’t think too much about what exactly epoch, learning rate, activation, regularization, regularization rate or problem type mean. Your current goal is to play with different values and options and see what happens. That’s all.
Your goal is to create that feedback loop we talked about earlier. Do some random action, pick some random options. Then, let the model react on that action action and observe what happens. Then, repeat the process with all options. This will give you a better visual representation of what effects your actions, and option choices, approximately have. This visual representation will be useful in the next step.
Get your hands dirty
Now it is time to move from visuals resources to actual code. And, no. We will still not touch any math. At this point our goal will be following. We will find the easiest tutorial that includes code. Then, we will try to follow it and reproduce the desired results the tutorial should lead to. At this point, it is still not important to know what each line of code does.
All we want is to get our hands dirty and make the switch from visual playground to actual code. It is like trying to ride a bike, or drive car, for the first time. You don’t really know what are you doing. You just follow the instructions and observe what happens. The only thing you know is what do you want to achieve—ride a bike, drive a car or train machine learning algorithm.
What should you do when you successfully finish the tutorial? Meaning, you achieve the same results as the author? You go back to the starting line and the same tutorial again. Now, your goal is not just following the instructions and achieving desired results. This time, you want to dig deeper. You want to know what each line of code of actually does.
After you reproduce the results for the second time, it is time to start changing the code. Start playing with values and observe how the results change. Then, try to understand why what you did led to that specific change. If you can’t find the explanation of what happened, contact the author of the tutorial, search online, ask questions on forums, talk with people.
It is important to emphasize two things here. First, don’t rush this step. This can take some time. You are learning something completely new and unknown. So, be patient. Second, don’t let any failure discourage yourself. Remember that every failure is not bad. Every failure brings you one step closer to success—understanding of how the code you wrote actually works.
After you figure out how the code works find another easy tutorial and repeat the process. Your goal at this step is to get your hands on as many tutorials as you can and to understand the code. This is the most important. You are not just following the instructions, you are changing them and learning from the feedback. You are again learning by reverse engineering, but now you are working with code.
Pick your language
It was difficult to decide whether to put this step before the previous about tutorials or after it. In the end, I decided for this order. Why? It is because of what I mean by “pick your language”. The goal of this article is to help you get started with machine learning. This is our primary objective. Programming language is secondary, maybe even tertiary.
Your goal at this step is to consider available options and choose one programming language. Why only one? The reason is simple. You want to learn that language really well. It is not about shallow understanding and ability to read the code. It is about gaining deep knowledge and becoming proficient in the language you chose, and maybe even master at with time.
Making the right choice
What language will be the best choice, at least in the beginning? Whether this is the best choice is highly subjective and some people will disagree. My suggestion is Python. There are four reasons for Python. When you take a look at some courses on programming, you will often see that they teach Python. This is the first reason. Python is a very easy language to learn.
The second reason is that there is an abundance of tutorials and learning materials and resources written in Python. Search for machine learning tutorial and chances are very high that it will be written in Python. This will help you accelerate your progress because you will not have to search for too long or think about how to rewrite the code into a different language.
The third reason is that Python is a favorite choice among scientist in the fields of machine learning and data science. So, it is not only the amount of tutorials. There is also an abundance of libraries written in Python. Some popular libraries written in Python are TensorFlow, Keras, scikit-learn, Theano, Pylearn2, Pyevolve, nupic, pattern and Caffe.
The fourth and final reason is that Python is also useful for web development. So, if you are a web developer and you will lose interest in machine learning, you can still use Python in your work. However, what if Python is not what you want? If you want some different options to consider, other good languages are R, C++ or Java.
The final step
If you made it here, it means that your interest in this subject is very strong. You’ve learned a lot so far about machine learning. Now, it is time to dive into the hard stuff. It is time for studying more difficult resources that will provide you with required knowledge. This means filling the gaps you have in mathematics and statistics.
Next, when you manage to improve your knowledge of mathematics and statistics dive deeper into machine learning. Learn about existing models and algorithms and how they work and also about the terminology and theory. Then, learn about the best practices and optimization. You made it very far, but this is just the tip of the iceberg. There is much much more you will have to learn.
So, start with mathematics, statistic and gaining deeper knowledge of machine learning. This will be enough to keep you busy for a long time. And, if you still don’t have enough start reading research papers. This will help you stay on the edge and keep you up-to-date about what is going on in the field.
Closing thoughts on getting started with machine learning
Congratulations. You reached the end. I hope you found this article useful and that it will make your journey into machine learning easier. Before I let you go, there is one final advice I would like to share with you. When you decide to learn anything, always look for the minimum effective dose. Don’t bury yourself under stacks of resources. Doing so will only overwhelm you.
It will also make the whole learning experience more difficult than it has to be. This can demotivate and discourage you and also force you to reconsider your choice. So, don’t do that. Instead, always look for the easiest way to start, the smallest step you can begin with. Get momentum. Then, focus on making progress. With time, you will reach the finish line. Thank you for your time and have a great day!
Do you have any questions, recommendations, thoughts, advice or tip you would like to share with other readers of this blog, and me? Great! Please share it in a comment. Or, if you want to keep things more "private", feel free to contact me on twitter or send me a mail. I would love to hear from you.
Did you like this article? Please subscribe.