Google's Deep Dream: What Is It Exactly?
So by now you’ve probably heard of Google’s Deep Dream software that is making everyone’s pictures look like this:
Woah, man. Woah.
But what exactly is it, besides a kaleidoscopic collage? In actuality, there’s something extremely interesting going on behind the scenes that is much more mind-blowing than these images in themselves.
But first, a little background.
The Deep Dream software stems from the scientific field of Deep Machine Learning, which is a new field of Computer Science. Machine Learning is exactly what it sounds like. Machines learning. It is the study of programming algorithms that can learn from and make predictions on data. These algorithms operate by building a model from example inputs in order to make “their own” predictions or decisions. Basically, it’s about teaching machines to do what our brains do naturally, which is make sense of the world around us by using examples of similar images we’ve experienced before. It plays a huge part in the concept and development of AI (artificial intelligence).
How does it work?
Google has image recognition software that is used to determine what is in an image. The image recognition software has thousands of reference images of known things, which it compares to an image it is trying to recognize.
So let’s say you provide it with the picture of a butterfly and tell it to recognize the image, it will compare that image to its references database, discover that there are similarities to its references of butterflies, and from that will tell you, “There’s a butterfly in that image!”
Now let’s say you tell it to recognize a butterfly, but there are no butterflies in the picture you give it. That’s where Deep Dream comes in. What Deep Dream does is take whatever picture you give it, and search for the images it’s been trained to recognize in its own specific database of images. It then feeds its own images it’s been looking for back into the original image, multiplying them and amplifying them as it goes. So essentially, what you’re seeing in your Deep Dream image is a visualization of the “thought process” of a machine. It’s the algorithm saying, “Hmmm, these might be things I understand. Let’s put more of those in there.”
So let’s use these pictures of Zoidberg from Futurama as an example. There are clearly no dogs in the original picture in the centre. But since Deep Dream’s algorithm is searching for dogs (among other things) it takes the smallest resemblance of a dog and amplifies it and multiplies it, feeding it back into itself until it looks more and more like the thing it’s searching for, which is what you see in the upper left hand version.
Ok, but why are there so many dogs, chalices, eyes, etc.?
Nearly all of these dream images are being created by 'reading the mind' of an algorithm that was trained with the ImageNet dataset to reference images from. This particular dataset happens to have a lot of dogs, chalices and Japanese architecture. Hence why Deep Dream tends to try to pick up dogs more often than not. Imagine what it would come up with if all it had to reference were pictures of monkeys, spaghetti, or (Heaven forbid) OTHER deep dream pictures. Did I just blow your mind? Good.
Anyway, it just goes to show you, the possibilities with this kind of software are endless. I can’t even imagine the future deep dreams that are going to come from this software!
If you’re still not convinced that this is insanely cool, check out this video of Google Deep Dream creating intricate images from static. It starts off slow but hold on; in due time, you’ll get lost in a vortex of dogs, iguanas, spaceships, and whatever else your mind – and Deep Dream’s – can conjure up.