Neural networks trained to classify images have a remarkable — and surprising! — capacity to generate images.
Techniques such as DeepDream
All these techniques work in roughly the same way.
Neural networks used in computer vision have a rich internal representation of the images they look at.
We can use this representation to describe the properties we want an image to have (e.g. style), and then optimize the input image to have those properties.
This kind of optimization is possible because the networks are differentiable with respect to their inputs: we can slightly tweak the image to better fit the desired properties, and then iteratively apply such tweaks in gradient descent.
Differentiable Parameterizations
1:
As long as an
image parameterization
is differentiable, we can backpropagate
( )
through it.

