Throughout the last few years I had a chance to learn techniques of machine learning that I now used daily in my work. A few years back, not having a slightest clue what machine learning is, I was pleasantly surprised to find another rich study field to explore. And the best thing about machine learning is that it’s relatively easy to pick up — you can go from a total newbie with only basic programming knowledge to someone, who does it for a living in a matter of several months. This in addition to how hot machine learning and, more generally, data science today is in the job market and the academia, makes for a perfect skill to master. So here’s a gentle introduction into the fields of machine learning, artificial intelligence and data science.
What? How? When? Why?
Machine learning is a highly interdisciplinary sub-field of computer science, which is tightly related to artificial intelligence and deals with computational learning and pattern recognition. To put it simply, it’s all about enabling a computer software to learn without being pre-programmed. Mathematically this corresponds to taking in the data and discovering a function that best relates the inputs to the outputs via some mathematical algorithm. In terms of programming, this corresponds to teaching an algorithm from available data so that it can respond correctly to unseen data.
Given the inherent link between machine learning, data science, statistics and AI, it’s no wonder that the applications are countless. Today machine learning is used in almost all parts of modern life, starting with your Netflix suggestions, self-driving Google cars and ending with neuroscience and astrophysics research just to name a few. This essentially is due to the fact that any field producing or using large quantities of data requires clever ways of dealing with it.
Most Common Techniques
Very roughly most machine learning techniques can be split into supervised and unsupervised learning. In supervised learning, our data has labels and we want the program to find a relation between the variables. A simple example for supervised learning would be determining the relation between the price of a house and its size. Once the data is collected and the algorithm is run, we can use the calculated hypothesis function to predict house size given unseen data. In unsupervised learning, on the other hand, we feed a bunch of unlabeled data to our algorithm, which then aims to cluster it — i.e. to find clusters and patterns in data in order to classify them. A simple example would be classifying customers into groups by buying behavior or grouping galaxies into galaxy clusters etc.
Commonly Used Algorithms
So just to give you an overall idea what can be accomplished by machine learning techniques, here are some commonly used algorithms.
- Artificial Neural Networks
Artificial neural networks refer to an algorithm that mimics biological neural networks, such as the central nervous system and the brain. A neural network (ANN) is essentially a multi-layered connection of nodes which are connected to each other via pre-defined rules. The first layer corresponds to the input data, whereas the inner, so called hidden layers, transform the input all the way to the outer layer, which is the prediction. Typical tasks achievable by ANN’s are handwriting recognition, regression analysis, automated driving, robotics and, of course, computational neuroscience.
2. Decision Trees
Another algorithm, sharing some similarities with ANN’s, is basically a tree-like model that maps out the possible outcomes. Decision trees are one of the easiest models to understand intuitively and can be combined with other decision techniques that makes them one of the more popular algorithms.
3. Genetic Algorithms
In 1950s Alan Turing famously proposed a learning, which would parallel the principles of evolution. The computational realization of this idea are the genetic algorithms . Genetic algorithms solve optimization problems by mimicking the process of natural selection. The algorithms employ biologically inspired operators like mutation, crossover and selection. For a good introduction check out this article.
Online Courses on Machine Learning
Ok, so it all sounds cool, but how does one actually learn these algorithms? Here are some great free online resources to get you started. The courses are listed roughly in terms of increasing complexity.
- Machine learning with Python: astroML & scikit-learn
- Machine learning course at Coursera
- Learning from Data introductory course from Caltech.
- Practical machine learning course at Coursera
- Machine learning course at the MIT