These networks have to be trained, and that's typically done by showing them lots of images of the things they're being trained to recognize. That works to some extent, but the researchers want to know what's going on at each step of the process so that they could optimize the way the programming works.
We train an artificial neural network by showing it millions of training examples and gradually adjusting the network parameters until it gives the classifications we want. The network typically consists of 10-30 stacked layers of artificial neurons. Each image is fed into the input layer, which then talks to the next layer, until eventually the “output” layer is reached. The network’s “answer” comes from this final output layer.It turns out that if they have the knowledge to recognize something in an image, they have most of the knowledge to create images from nothing.
One of the challenges of neural networks is understanding what exactly goes on at each layer. We know that after training, each layer progressively extracts higher and higher-level features of the image, until the final layer essentially makes a decision on what the image shows. For example, the first layer maybe looks for edges or corners. Intermediate layers interpret the basic features to look for overall shapes or components, like a door or a leaf. The final few layers assemble those into complete interpretations—these neurons activate in response to very complex things such as entire buildings or trees.
“One way to visualise what goes on is to turn the network upside down and ask it to enhance an input image in such a way as to elicit a particular interpretation,” they add. “Say you want to know what sort of image would result in ‘banana’. Start with an image full of random noise, then gradually tweak the image towards what the neural net considers a banana.”In other words, they generate a set of random pixels and feed it into the algorithm. The output has some features that are more reminiscent of bananas than before so they use that as the input and run the algorithm again. Eventually, they get something like this:
The surprise to me was the stunning, beautiful abstract art the networks are creating. The Google labs team says,
If we apply the algorithm iteratively on its own outputs and apply some zooming after each iteration, we get an endless stream of new impressions, exploring the set of things the network knows about. We can even start this process from a random-noise image, so that the result becomes purely the result of the neural network...If the network is being trained to recognize buildings, and random noise is fed in, with some zooming and selecting of areas to work on, you eventually come up fantasy-impressionistic landscapes like this one
As the Guardian says,
Androids don’t just dream of electric sheep; they also dream of mesmerising, multicoloured landscapes.