Can robots dream? According to Google, they can. Trippy “deep dream” images like this are recently being posted all over the internet.
What is deep dream? Google’s image recognition ability is very powerful. Google had become very good at identifying images. Given spicture of a dog, cat, or a bird, Google’s image search will be able to identify the animal properly. The deep dream software uses Google’s image recognition system to identify elements it recognizes, and pronounce it. Basically deep dream is the process of taking an image, finding all known elements of images it recognizes (for example it may associate a shape to a dog), makes that area more dog-like, and feed the results back into itself. After many iterations, the software attempts to make a picture more into the elements it recognizes. Different data-sets produce different results because deep dream is a field of machine learning. Machines learn through the data sets it is given, allowing different patterns to emerge depending on the data set the machine uses to recognize images.
There is an excellent guide on /r/deepdream that gives you step by step instructions on how to generate your own deep dream images. The Windows guide is very easy to follow without any programming knowledge.
Here is Google’s writeup on neural networks. It’s fascinating stuff.
Here is a picture of me run through different layers: Original:
inception_5a (40 iterations):
inception_4c (GoogLeNet Places 50 iterations):