For the past few months, my focus shifted from learning more on Erlang to diving into machine learning. It has been quite a topic for me ever since the term flew around the industry, and gets thrown out a lot during the big data buzz-word era. Sadly, I never had such motivations to dwell into it before.
I took a course about it, and even though it was pretty outdated (2011), it's still a very good material for starters. It covered the basics (linear/logistic regression, neural networks, k-means, pca, etc) and it gives a decent introduction to the MATLAB/Octave syntax as well, which is a big plus for me. And you'll get a certificate from it.
Aside from the technical details I learned from the course, one of my key takeaways from the whole ordeal is my new found perspective in artificial intelligence. Knowing how things work takes the magic out of it, and gives a more scientific (or rather, mathematic) explanation. Of course I'm no mathematician, but for me it felt like we are very close to explaining how humans think with mathematics. On how a series of inputs and biases, one can derive a probabilistic model and make a decision from it. That we ourselves are complex machines that is continually being trained with evolution, and everything around us are inputs.
Take spam emails for example. This is a very typical machine learning problem, and one can use a simple model from logistic regression. What we want is for the machine, when presented with an email, to evaluate if said email is a spam or not. Let's take a step back and give the task to you, a human. You probably know what a spam email looks like. Basing on the content, links, phrasing, sender, and many other factors, you can classify emails with high accuracy. You have been trained, unknowingly, for this particular task by experiencing them in the past. Similar on how we will train a machine with logistic regression to do it.
It is just so fascinating, that we are in this age of discovery and exploration. This, plus my desire to create software, motivates me to dive deeper into machine learning.
This is not just a next big thing phenomenon that will die out in a couple of years. We are talking about something that will change how software (and machines for that matter) interacts with humans. Machine learning is a big spike in technology that will accelerate us to an exciting future.