Last updated: February 12, 2019
Machine Learning Development: Create Smart Software Robots
Disclosure: Your support helps keep the site running! We earn a referral fee for some of the services we recommend on this page. Learn more
Machine learning is a field of computer science researching a computer's ability to learn autonomously, without being explicitly programmed to do so. Machine learning is used in a variety of computing scenarios where programming explicit algorithms is impossible due to unpredictability, for example in spam filtering, data mining and analytics, OCR, malware detection, motion tracking, and pattern recognition.
In the early days of AI, scientists were interested in making machines "learn" from incoming data. These early approaches to machine learning used various symbolic methods and neural networks, but an increasing emphasis on the logical, knowledge-based approach caused a split between AI and machine learning.
Machine learning evolved from the quest for artificial intelligence development, and gained popularity in the early 1990s as a separate field of computer science. The focus of machine learning shifted away from the symbolic approach inherited from AI, to solving practical problems using statistical methods and models, and probability theory. Machine learning has greatly benefited from the increased availability of digitized data and the possibility to distribute data over the internet (eg, "big data").
Machine Learning Theory and Approaches
The core objective of a "learning" machine is to generalize from its experience. In fact, it is the ability of a learning machine to perform accurately on previously unseen tasks, relying on its learning data set.
Machine learning tasks are often classified into three main categories, depending on the nature of the task and the learning signal:
- Supervised learning — the learning machine is presented with example inputs and their resulting outputs. The goal is to learn a general rule that maps inputs to outputs.
- Unsupervised learning — the learning machine is left on its own to try and find structure in the input. Unsupervised learning can be a goal in itself.
- Reinforcement learning — the machine interacts with a dynamic environment, where it must perform a defined task, for example, autonomous vehicle driving. The learning machine is provided feedback in terms of rewards or punishments during the task.
Many machine learning concepts, or algorithms, were devised to solve specific problems or tasks. The list is extensive, so we will name just a few concepts: decision tree learning, association tree learning, deep learning, inductive logic programming, clustering, representation learning, similarity and metric learning, rule-based machine learning, and so on.
Machine learning also opens up many ethical questions. Learning machines use datasets to gain information and make decisions, and if those datasets are biased, those biases can show up during the operation of a learning machine. Responsible and unbiased data collection is a critical part of machine learning.
Machine Learning Resources
Taking a dive into machine learning requires a number of prerequisites. You should have a background in computer science and mathematics or statistics, and obviously you'll need a good understanding of technology and programming in general.
Numerous courses and learning resources are available online, and we singled out a few:
- A collection of Andrew Ng's Machine Learning lectures from Stanford course 229 on YouTube provides a great introduction to machine learning and statistical pattern recognition.
- Intro to Machine Learning is a free online course at Udacity.com. This course will teach you how to extract and identify useful features that best represent your data, a few of the most important machine learning algorithms, and how to evaluate the performance of your machine learning algorithms. User registration is required.
- Deep Learning by Google is Google's free deep learning course, hosted by Udacity.com. It is estimated to take about three months to complete at a rate of six hours of engagement per week. It's obviously not for absolute beginners, but aims to help established engineers and data scientists get to grips with deep learning as well as Google's TensorFlow technology. User registration is required.
Also, you can try experimenting with some publicly available big datasets, and check out whether your theories will work in practice:
Machine Learning Books
Machine learning books tend to be quite popular and you'll find a lot of them in print. Some are very good, but we suggest going through the online resources first, and searching out the specific algorithm or method you are interested in.
If you still prefer the crispy crinkle of paper, here are a few machine learning books you should check out:
- Machine Learning: A Probabilistic Perspective (2012) by Kevin P Murphy offers a comprehensive and self-contained introduction to the field of machine learning, based on a unified, probabilistic approach. The coverage combines breadth and depth, offering necessary background material on such topics as probability, optimization, and linear algebra, as well as discussion of recent developments in the field.
- Pattern Recognition and Machine Learning (2007) by Christopher M Bishop presents approximate inference algorithms that permit fast approximate answers in situations where exact answers are not feasible. No previous knowledge of pattern recognition or machine learning concepts is assumed.
- All of Statistics: A Concise Course in Statistical Inference (2004) by Larry Wasserman covers all the topics in statistics that you need for understanding ML concepts. As a matter of fact, the book itself has a pretty good introduction to many of the typical ML approaches such as regression and classification.
- The Elements of Statistical Learning: Data Mining, Inference, and Prediction (2016) by Hastie, Tibshirani and Friedman is a valuable resource for statisticians and anyone interested in data mining in science or industry. The book's coverage is broad, from supervised learning (prediction) to unsupervised learning.
Machine learning is no longer a theoretical exercise, nor is it an exotic field of computer science reserved for university labs. It's starting to mature and the number of real-world applications for machine learning is constantly going up.
While this sounds encouraging, it should be noted that employment of machine learning is usually restricted to certain niches, and is anything but mainstream from a purely business perspective. In other words, there's more money to be made elsewhere, and developers tend to focus on skills they can monetize with relative ease.
However, as industry embraces machine learning, developers will have to keep up. This does not mean they will have to become experts at developing new approaches to machine learning, but rather that they may be called upon to implement third-party machine learning technology into their products and services.
Further Reading and Resources
We have more guides, tutorials, and infographics related to coding and development:
- Prolog Resources: this language was developed especially to process language.
- Lisp: one of the first high level languages, it has been enormously important in AI programming. Check out our articles on Lisp variants: AutoLISP, Clojure, Common Lisp, Emacs Lisp, and Scheme.
- How to Avoid Falling in Love with a Chatbot: despite the cheeky title, this infographic provides a great history of talking computers.
Supercomputers Are Shaping Future of Humanity
Want to know where AI is really taking off? Check out our infographic, Supercomputers Are Shaping Future of Humanity