Deep Dream is a computer vision program created by Google engineer Alexander Mordvintsev. He used a convolutional neural network to seek out and enhance patterns in images via algorithmic pareidolia by creating a dream-like hallucinogenic appearance within the deliberately over-processed images. Google’s program spread the term (deep) “dreaming” to ask the generation of images that produce desired activations during a trained deep network, and therefore the term now refers to a set of related approaches.
Deep Dream is an inventive image-modification technique that uses the representations learned by convolutional neural networks. It had been first released by Google within the summer of 2015, as an application written using the Caffe deep-learning library. It quickly became an online sensation because of the trippy pictures it could generate, filled with algorithmic pareidolia artifacts, bird feathers, and dog eyes—a byproduct of the very fact that the Deep Dream convnet was trained on Image Net, where dog breeds and bird species are vastly overrepresented. The Deep Dream algorithm is nearly just like the convnet filter-visualization technique, consisting of running a convnet in reverse: doing gradient ascent on the input to the convnet so as to maximize the activation of a selected filter in an upper layer of the convnet. Deep Dream uses this same idea, with a couple of simple differences:
- With Deep Dream, we attempt to maximize the activation of entire layers instead of that of a selected filter, thus mixing together visualizations of huge numbers of features directly.
- We begin not from blank, somewhat noisy input, but rather from an existing image—thus the resulting affect fastener on to preexisting visual patterns, distorting elements of the image during a somewhat artistic fashion.
- The input images are processed at different scales called octaves, which improves the standard of the visualizations.
The software is expected to detect faces and other patterns in images. This is with the aim of automatically classifying images. However, once trained, the network also can be run in reverse, being asked to regulate the first image slightly in order that a given output neuron produces a better confidence score. This would be used for visualizations to see the developing structure of the neural network better. This is that the foundation for the Deep Dream concept. This reversal procedure isn’t perfectly clear and unambiguous because it utilizes a one-to-many mapping process. However, after enough reiterations, even imagery initially barren of the sought features is going to be adjusted enough that a sort of pareidolia results, by which psychedelic and surreal images are generated algorithmically. The optimization resembles backpropagation, however rather than adjusting the network weights, the weights are held fixed and therefore the input is adjusted.
For example, an existing image is often altered in order that it’s “more cat-like”, and therefore the resulting enhanced image is often again input to the procedure. This usage resembles the activity of trying to find animals or other patterns in clouds.
Applying gradient descent independently to every pixel of the input produces images during which adjacent pixels have little relation and thus the image has an excessive amount of high-frequency information. The generated images are often greatly improved by including a previous or regularized that prefers inputs that have natural image statistics or are simply smooth. For instance, Mahendran et AI used the whole variation regularized that favors images, which are piecewise constant.
The cited resemblance of the imagery to LSD- and psilocybin-induced hallucinations are implicational a the functional resemblance between artificial neural networks and particular layers of the visual area. Computerphile, a computing show, describes intimately the machine learning processes employed by Google Dream.
For more details please visit deep dream github.