For the overwhelming majority of us who attend Google I/O, it’s an exciting opportunity to be close to the action and experience, first-hand, what’s next in technology. For all of us designing and building software, it’s obviously business critical for us to understand which way the wind is blowing. Having just returned from Google I/O this year, I’m certainly no exception.
But rather than give my own version of an I/O ‘top ten takeaways’, what really struck me this year - amongst the moonshots, the keynotes, the demos and all the buzz - was the long shadow of machine learning.
The rise of the machines
For some, finding out the answer to ‘What’s the next big thing?’ is pretty worrying: will the next big thing also mean the end of something else? And therefore, are we ready for it? Machine learning is one such concept that can produce just that sense of unease.
Here at TAB, we personally love the edgy, uncomfortable feeling of standing on the horizon of new technologies, and at Google I/O this year, it became apparent that Google - ready or not - are really doubling down on machine learning.
Just a few short years ago, machine learning was academic talk. There were no means in which to deliver a feasible commercial solution from it. One of the main blockers was that training machines was very time consuming, and very expensive. You needed both high performance rigs and large quantities of high-quality data that was consistent and well categorised.
Even then, the process could take months to ‘teach’ the machine to do anything. In mobile, months can be a lifetime, so there was no way to utilise the technology effectively.
To understand how things have changed, let’s briefly go back a year to Google I/O 2015.
It is all about the data
Last year, two seemingly unrelated things struck me at Google I/O.
First, Google announced changes to their Photos offering, allowing unlimited storage for all. For users, this was incredibly exciting. It not only freed up space on their phones, but also gave access to the unparalleled search and tagging capabilities that Google provides.
However, when I asked myself as an Android engineer why they were doing this, things did not quite add up. Google is not a product company. Their domain is information, and therein lies the answer: Google needs all of the data sources they can get, and our photos are one such source.
"Google's mission is to organise the world's information and make it universally accessible and useful." - Google
The second thing was another move towards increasing their data sources by firmly supporting the iOS ecosystem. Currently, most of the Google APIs can be easily integrated on iOS devices by using libraries created and maintained by Google. This includes Maps, Places and Google Cloud Messaging, amongst others.
These two seemingly unrelated moves are part of an ongoing larger plan to get more high-quality data into Google’s servers. Why? Because more data is only one aspect of their strategy. The really big play is machine learning.
But what exactly is machine learning?
"A field of study that gives computers the ability to learn without being explicitly programmed." - Arthur Samuel
Desktops, smartphones and IoT devices can all do a great many things. However, they are limited to what they are explicitly programmed to do. Machine learning aims to allow computers to essentially learn new skills that they were not initially programmed to do.
Wait a minute, though. That does sound pretty worrying, right? As ‘the next big thing’, does that mean that machine learning will make all programmers and developers obsolete? Fortunately, for those in our industry, the answer is no. In fact, we are needed now more than ever.
That’s because, in order to teach machines how to categorise the data, we still use programming languages. The task of self-learning itself is quite heavy for computers, so all the tricks we can muster that could help optimise the training process are in high demand.
How machine learning works
To see why those skills are in high demand, and more importantly, understand how machine learning works at a high level, it’s worth illustrating with an example.
There are a number of ways to ‘teach’ a machine. One of these approaches is called Supervised Learning.
Let’s try explaining it by considering the question: how can a computer recognise if an image depicts the TAB logo?
We can start by presenting a machine with a number of pictures, or inputs. For each input, we will answer the question: ‘Does this picture have a TAB logo in it?’ The machine will try to map all available classifiers, such as:
- Is the colour orange in the picture?
- Does it have text in it?
- Is the text centre-aligned?
- And so on...
This allows the machine to skip all the pictures where the criteria do not match. If we iterate this process over and over again, the machine will be able to generate its own knowledge about what the TAB logo looks like. Now, we can ask the machine if the TAB logo is present in a picture that it was not presented with before.
This is a very high level look at one of the more basic methods of learning, but it gives us a taste of how we can create some interesting things with it.
Google and machine learning
In November last year, Google open sourced TensorFlow, a machine learning framework with a bunch of easy ‘getting started’ tutorials. Exactly how easy it is to set up now is best explained by the presenters of the one of the most interesting talks from Google I/O 2016.
What’s worth noting is that none of the speakers are programmers by trade, and some of them only heard about machine learning a year ago. Now, those same speakers are building marvels that only a few short years ago would have been called science fiction.
In the video below, Damien Henry, Mario Klingemann and Cyril Diagne talk about how they taught machines to understand paintings - and how to paint original artworks themselves.
Enjoy the video and take a peek into the future - which is unfolding right now, before your eyes.