Become a Machine Learning Master in 4 Steps
Hey guys and gals! I’m sure you noticed what’s going on lately – there’s a change in the air and unless we keep up we may soon be left behind.
Oh. You don’t know what I’m talking about? Well, let me explain. I’ll start with some examples of the strange things that happen in my day. First, I look at my phone and it recognizes me and unlocks. Then I can simply ask it to do something and Siri says “yes dear” while setting my timers, messaging my wife, and dialing my boss. In the backyard my drone wakes up and chases away birds trying to eat my plants. In the background I can hear my wife asking Alexa for a blueberry milkshake recipe.
This is happening around you too isn’t it? Just a few years ago a world that would have been in the dreams of science fiction writers – talking robots, obedient computers, self-driving cars – is today a reality. Just a normal part of life.
The reason for this is arguably the biggest technological revolution since Claude Shannon gave us the bits and noisy channels that ushered in the digital revolution.
We are witnessing the rise of the intelligent machine.
The earlier revolution gave rise to all our programming languages, digital graphics, UX, and ultimately the jobs we all do and love ????. What will this new revolution mean for us?
A New Market
If we pay attention, we can already see the effects - new jobs like "Data Scientist" and "Machine learning Engineer" are already hot (and come with fat paychecks). Universities are catching up with the demand and offering “Machine Learning 101” and “Data Scientist” courses. Never has linear algebra been so sexy! For those of us who are on the outside looking in - how can we get in on the action? I will show you the quickest and best way of getting comfortable with what's out there so we can dip our toes into this rushing river. It's an exciting ride so buckle up and hold on!
How to become a Wiz at ML
I have noticed that many of us shy away from getting our feet wet with Machine learning simply because it is so vast. Much advice on learning ML is simply not feasible. How many of us have heard something like the following: Learn linear algebra Understand how to apply statistical methods (Re)learn calculus Learn CUDA/MPI/... (Take aspirin for headache) ... While this advice looks good on paper, it could easily take years of dedicated learning before we could actually do anything interesting! And by the time we learned it all who knows where the industry would have moved on to? Let me show you a much better way of getting into AI/ML.
1. Learn some python
Most machine learning is currently done in Python. There are frameworks and systems available for other languages but the lingua franca of AI today is Python. Just learn the basics. It's fun and easy.
2. Get a passing familiarity with SciPy
SciPy is what lets us get away with not relearning linear algebra, statistics, and calculus. As such it deserves our blessing and thanks! Now SciPy may seem overwhelming but you only need to really understand the basics to start with - get a feel for NumPy, SciPy, and the Matplotlib. Also try out Pandas and Jupyter/IPython. You will find IPython especially useful as you progress and experiment.
3. Understand Neural Networks
Now there are a LOT of strategies for Machine learning and they fall under seven or eight categories. However, the most successful and widespread are all based on neural networks. Google/Bing a bit and get an understanding of:
A Neural Network A NN is basically an infinitely flexible function that we can use to 'fit' any dataset that we find. This is at the heart of all machine learning and worth your while to understand. Bonus: it's also pretty simple and you’ll find you’ll soon be chatting at parties about tanh, softmax, and ReLU's.
Backpropagation and Gradient Descent Having an infinitely flexible function is great - but only if you can get it to fit your data! For this, we need to parameterize it. We generally start with random parameters and use methods like Gradient Descent and Backpropagation to quickly improve the results. Related things you will pick up here are “learning rates” and optimisers like ADAM and RMSprop.
Supervised and Unsupervised learning Basically supervised learning is where you "train" your network from examples that have labels. Unsupervised learning is where the network finds patterns in the data by itself. There’s a LOT here but all you really need to learn about is:
You can also get an overview of Multilayer Perceptrons, GAN's, and Support Vector Networks. Armed with these you will be comfortable with most other models out there.
Convolutional neural network (CNN) Used for Image Recognition.
Recurrent neural network (RNN) and it's derivative Long short-term memory (LSTM) Used for Natural Language Translation, Captioning, Music and Text generation.
4. Finally, Learn Keras with a Tensorflow backend.
Keras gives you the building blocks you need to play around with ML and try out real projects. Once you are comfortable, learn Tensorflow and you'll be hanging out with all the cool kids. A few of you may also like to play with Scikit-learn. The key here is to actually do some projects. You will learn parameter tuning, data management, data augmentation and so on as you experiment.
Good Luck!
That's it - a simple four step program from AI Newbie to Cool Kid. From this point on the wonderful, magical world of AI is open to you. Enjoy!