The world is increasingly full of deep architectures—multi-level artificial neural networks used to discover (via "deep learning") patterns in large datasets such as images and texts. But the power and prevalence of these deep architectures masks a major problem—the problem of knowledge-opacity. Such architectures learn to do wonderful things, but they do not (without further coaxing) reveal just what knowledge they are relying upon when they do them.
This is both disappointing (theoretically) and dangerous (practically). Deep learning and the patterns it extracts now permeate every aspect of our daily lives, from online search and recommendation systems, to bank-loan applications, healthcare, and dating. Systems that have that much influence over our destinies ought to be as transparent as possible. The good news is that new techniques are emerging to probe the knowledge gathered and deployed by deep learning systems.
In June, 2015, Alexander Mordvintsev and co-authors published a short piece entitled "Inceptionism: Going Deeper into Neural Networks." Named after a specific architecture, "Inceptionism" was soon trending on just about every geeky blog in the universe. The authors took a trained-up network capable of deciding what is shown in a given image. They then devised an automatic way to get the network to enhance an input image in ways that would tweak it towards an image that would be classified, by that network, as some specific item. This involved essentially running the network in reverse (hence the frequent references to "networks dreaming" and "reverse hallucination" in the blogs). For example, starting with random noise and a target classification, while constraining the network to respect the statistical profiles of the real images it had been trained on, the result would be a vague, almost impressionistic image that reveals how the network thinks that kind of item ("banana," "starfish," "parachute" or whatever) should look.
There were surprises. The target "barbell," for example, led the network to hallucinate two-ended weights all right—but every barbell still had the ghostly outline of a muscular arm attached. That tells us that the network has not quite isolated the core idea yet, though it had gotten pretty close. Most interestingly of all, you can now feed in a real image, pick one layer of your multi-level network, and ask the system to enhance whatever is detected. This means you can use inceptionism to probe and visualize what is going on at each layer of processing. Inceptionism is thus a tool for looking into the networks multi-level mind, layer-by-layer.
Many of the results were pretty psychedelic—repeated enhancements at certain levels resulted in images of fractal beauty, mimicking trippy artistic forms and motifs. This was because repeating the process results in feedback loops. The system is (in effect) being asked to enhance whatever it sees in the image as processed at some level.
So if it sees a hint of birdiness in a cloud, or a hint of faceness in a whirlpool, it will enhance that, bringing out a little more of that feature or property. If the resulting enhanced image is then fed in as input, and the same technique applied, those enhancements make the hint of birdiness (or whatever) even stronger, and another round of enhancement ensues. This rapidly results in some image elements morphing towards repeating, dreamlike versions of familiar things and objects.
If you haven’t yet seen these fascinating images, you can check them out online in the "inceptionism gallery," and even create them using the code available in DeepDream. Inceptionist images turn out to be objects of beauty and contemplation in their own right, and the technique may thus provide a new tool for creative exploration—not to mention suggestive hints about the nature of our own creative processes. But this is not just, or even primarily, image-play. Such techniques are helping us to understand what kinds of things these opaque, multi-level systems know: what they rely upon layer-by-layer as their processing unfolds.
This is neuroimaging for the artificial brain.