Programming a computer or robot is hard. Programming a computer or robot to do something complicated is even harder. Computers are very good at following rules, but coming up with and writing those rules yourself is very difficult. It requires an incredibly detailed knowledge of the task the computer is going to be performing, hence the old saying that computers can only ever be as good as their programmer. This is all changing now thanks to machine learning techniques allowing computers to write their own rules.
In very simple terms, machine learning allows computer programs to set parts of their code by themselves. This isn’t an act of computer creativity. Instead it is, in essence, an optimisation activity. Systems are provided with often very large amounts of data which are then analysed to determine how the system should behave in order to achieve a predetermined goal.
What does it look like?
Imagine you are trying to design a tool that could recognise who is in a photograph. Without machine learning, you would have to write rules to distinguish different people. For example, long hair and stubble might be your friend John, while no hair and stubble might be Homer Simpson. It would take forever to include all of the people you wanted the system to recognise.
“#Machinelearning techniques are allowing computers to program themselves.”
Employing machine learning, you would give the system a large number of images of the people you like, labelled with who is in the pictures. By analysing the patterns in the images, relationships between pixels and what labels those patterns occur alongside, a machine learning system would be able to set its own rules for how to identify people. Systems trained like this can be uncannily good at image recognition, and the same technique works for a huge range of applications.
|Supervised Learning||A type of machine learning where a system is given data alongside the correct answers for what it needs to predict, just like the images and names example above.|
|Unsupervised Learning||A type of machine learning where a system doesn’t know the answers in advance. Unsupervised learning often involves grouping similar examples together. It’s often used for identifying the different types of customer a business has.|
|Training data||Simply, data used to train a machine learning system|
|Overfitting||Sometimes a system will learn the training data too well, to the point that it isn’t very good at processing new examples, which is usually the point of these systems. Using the photo example, a system might just remember the photos it has seen already, rather than learn what people’s faces look like. This is called overfitting|