About Deep Dream

 

As soon as I saw the pictures I was hooked and they became my gateway into machine learning. 

Deep Dream is a lens that reveals how visual concepts are represented by a learning machine. The machine is a cartoon version of a visual cortex, the structure in the animal brain that allows vison. These simulations are called neural networks and they enable a different of computing, based on analogy and statistical derivation. Instead of yes/no true/false relationships, with neural networks its always a little more, a little less.

Neural networks can recognize buildings, animals and objects found in pictures. Deep Dream reverses this by adjusting the picture so that certain neurons will fire more energetically the next time the network sees this picture.  The system recognizes what it sees in terms of what it has learned and strives to make it even more recognizable. Thus, a feature that may only trivially resemble something the network relates to becomes more itself over time. Visual structures emerge from this build-up of neural energy, creating a map. It doesn't see a dog (for example), but it represents "dog-ness" a thousand different ways. Humans, and perhaps anything with a visual cortex, share these representations. As alien as they look, the deep dream pictures are also intimate. We understand them too.

Is this a cat?

Is this a cat?

Instead of listening for an answer, we just listen to the waves inside while it thinks about it.

Visualization of thee filters in the first layer of a convolutional neural network

Visualization of thee filters in the first layer of a convolutional neural network

Remember, our neural network is a filter made of connections between overlapping sheets of neurons. These neural layers decode images as they flow through the net. Early layers register general features. Neurons in these layers respond best to patterns of lines and gradients.

Visualization of the filters in a deep network layer

Visualization of the filters in a deep network layer

Deeper layers combine the outputs of earlier ones. Neurons here respond to increasingly specific features. At this level of perception, the work of pattern recognition has shifted from pixels to objects.

Visualization of the ImageNet class, Basset Hound, by Aldun Mathias Øygard

Visualization of the ImageNet class, Basset Hound, by Aldun Mathias Øygard

Dreams emerge from a process called gradient descent. Neural activity is added back to the picture that caused it. Thus creating a feedback loop which serves to make any detected features more like themselves. The software doesn't generate fully realized images all at once. Instead the neural network dreams repeatedly, building up a picture from nothing but statistics. Its incredible.