<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Tom White on Medium]]></title>
        <description><![CDATA[Stories by Tom White on Medium]]></description>
        <link>https://medium.com/@tom_25234?source=rss-2518aef51e6d------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*3FyK5MY5CHIDii-VcVY-wg.jpeg</url>
            <title>Stories by Tom White on Medium</title>
            <link>https://medium.com/@tom_25234?source=rss-2518aef51e6d------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 07 Apr 2026 01:19:29 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@tom_25234/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Synthetic Abstractions]]></title>
            <link>https://medium.com/@tom_25234/synthetic-abstractions-8f0e8f69f390?source=rss-2518aef51e6d------2</link>
            <guid isPermaLink="false">https://medium.com/p/8f0e8f69f390</guid>
            <category><![CDATA[perception]]></category>
            <category><![CDATA[neural-networks]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[art]]></category>
            <dc:creator><![CDATA[Tom White]]></dc:creator>
            <pubDate>Thu, 23 Aug 2018 09:18:59 GMT</pubDate>
            <atom:updated>2018-09-03T12:21:10.447Z</atom:updated>
            <content:encoded><![CDATA[<p><em>My </em><a href="https://medium.com/artists-and-machine-intelligence/perception-engines-8a46bc598d57"><em>previous post</em></a><em> describes the process and methodology behind my recent series of ink prints. This post is an update on the project that also examines more closely the outputs themselves and what they might represent.</em></p><h3>Perception Engine Series</h3><p>After the <em>Treachery of ImageNet</em> series, I completed a subsequent series of ten similar Riso prints called <em>Perception Engines</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-DNN_HJoR0e4u2wvPQKupg.jpeg" /><figcaption>Perception Engines: cello, cabbage, hammerhead shark, iron, tick, starfish, binoculars, measuring cup, blow dryer, and jack-o-lantern</figcaption></figure><p>The main change in this series is that I wanted all prints to be in exactly the same style. So all ten in this series are from the same version of the codebase and with nearly identical hyper-parameters. This means that the only differences in the resulting prints are the result of the “creative objective” — in this case different ImageNet label targets.</p><p>By keeping the style constant, it is more evident how the Perception Engines settle on distinct targets from similar starting conditions. In fact, it is possible to interpolate between drawings such as the hammerhead shark and the iron:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*htmP2onECy2Ajurp-3apyw.gif" /><figcaption>Interpolation between two finished drawings with responses on six tested neural net architectures</figcaption></figure><p>This visualization makes it clear that the system is expressing its knowledge of global structure independent of surface features or textures.</p><h3>Generalization and Abstraction</h3><p>A goal of this work is to investigate visual representations independent of any particular neural architecture. Research on Adversarial Images has a related term called “transferability” when the goal is that the conclusion of one neural network “transfers” to another specific target. This work extends that idea to “generalization” — the idea that the result should transfer as broadly as possible to unknown architectures and weights.</p><p>As an example, let’s consider the tick print. It was created using inputs from six neural network architectures: InceptionV3, MobileNet, NASNet, ResNet50, VGG16, and VGG19. However, it has since been shown to generalize to almost every other neural architecture (usually with ridiculously high scores) including those like DenseNet, which did not exist when the print was made.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IXjPyNg98NZh9VtO1gSNog.jpeg" /><figcaption>A photo of the tick print yields very high scores across neural architectures. The graphs with yellow background are from the six models used to create this print, and the other seven results suggest that this result generalizes well across architectures.</figcaption></figure><p>Another way to quantify how well this print generalizes to new neural architectures is to compare the result with the ImageNet validation data. ImageNet validation images are identical to those used in training (taken from the same distribution), so those serve as the best benchmark of how well a network would be expected to respond after training. When using trained weights from InceptionResNetV2 (a model not used to make the print), a photo of this print scores higher than all fifty official ImageNet tick validation images.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ci1ZHuHQsOtzaxaYb2d1yQ.jpeg" /><figcaption>Tick print with all fifty tick ImageNet validation images in order of response on InceptionResNetV2</figcaption></figure><p>I was floored by this result: This ink print more strongly elicits a “tick response” than any of the real images the network is expected to encounter. To describe this effect I’ve coined the term “Synthetic Abstraction”. My interpretation is that it is possible for neural networks to create a visual abstraction that serves as a more idealized representation than any specific instance. Just as one is able to imagine the Platonic ideal of a perfect circle from seeing only imperfect examples, this process can similarly succeed in creating a visual abstraction that represents the character of the target class more strongly than any particular instance.</p><h3>Screen Printing</h3><p>Riso prints have limitations in available ink colors and size of print. However, the same technique of layering ink used in Riso printing is also used in screen printing. I’ve recently adapted my technique to include screen printing, starting with some larger reprints from my <em>Perception Engines</em> series.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*06Y9VVbAx_2blUuIAoNv3w.png" /><figcaption>Screen-printing process</figcaption></figure><p>There is much more overhead in creating screen prints — each layer needs its own dedicated screen which must be burned in, cleaned, and dried. I’ve faithfully recreated larger and crisper versions of four prints, and thus far the results have been worth the effort. Testing has shown these prints to elicit responses in neural networks as strong as the originals smaller prints.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zoLrPB5SgdCvI-GdUuLxFg.jpeg" /><figcaption>Large format (60x60cm) screen prints of cello, hammerhead shark, tick, and binoculars</figcaption></figure><p>These large limited edition prints are currently being shown at <a href="http://naturemorte.com/">Nature Morte</a> gallery in New Delhi as part of their innovative gallery show <a href="http://naturemorte.com/exhibitions/gradientdescent/"><em>Gradient Descent</em></a><em>,</em> which highlights art created with artificial intelligence techniques.</p><h3>Transferring outside of ImageNet</h3><p>ImageNet has been the perfect laboratory to conduct this first set of experiments as the ontology (sets of labelled classes) is fixed and there are many trained models to test how well generalization is working. Similar to physics experiments performed assuming a frictionless table, perfectly aligned ontologies are an idealized case useful as starting point to gain intuitions. But how well might the system work if we relax the constraint that the systems have to share training data and labels?</p><p>Google, Amazon, and other companies provide online AI services that serve as a useful reference point. For example, Google Cloud considers the cello screen print to be a cello (perhaps even with cellist). This seems to suggest that results generalize well outside of the training set.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UOG9_R5TuPYoMliL6kNsXg.png" /><figcaption>Labels assigned to the cello print by Google’s Cloud AI service</figcaption></figure><p>However, Amazon Web Services (Rekognition) registers the same image only as an abstract form — either Art/Modern Art or perhaps a letterform like an ampersand.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bDewvLRsNncRGYq-_cA40A.png" /><figcaption>Labels assigned to the cello print by Amazon’s Rekognition AI service</figcaption></figure><p>This result is not entirely disappointing since both are reasonable interpretations, and Amazon’s failure to recognize this print as a cello suggests that the sets of labels, training data, and distributions across the services might be strikingly different.</p><p>There was a similar result with two “Hotdog” prints commissioned by the <a href="https://thotcon.org/">THOTCON 0x9 conference</a>. “Hotdog” is an ImageNet category, but here I also did testing against the popular Not Hotdog mobile application. (This targeted approach is much more similar to the Adversarial Image technique of transferability.) Results were promising: the HotDog app more often than not reported photos of the print to be a hot dog even with various croppings.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*40iiUInavakDwAO55URe6g.png" /><figcaption>Hotdog print using ImageNet category that transfers well to the Not Hotdog application</figcaption></figure><p>With my next series I plan to look at how to get these prints to transfer to these publicly available models trained on other datasets.</p><h3>Shifting Ontology</h3><p>Most recently I have decided to shift away from ImageNet and instead focus more on online services such as those offered by Google and Amazon. One important market thus far for online AI services is filtering “inappropriate content.” Google Cloud exposes a version of its “SafeSearch” filter through their <a href="https://cloud.google.com/vision/">Vision API</a> and offers multiple sub-categories such as Adult, Violence, and Racy. Amazon similarly offers an “Image Moderation” service through their <a href="https://aws.amazon.com/rekognition/">Rekognition API</a>, which can label images as Nudity or Suggestive (e.g. swimwear). And Yahoo has open-sourced their <a href="https://github.com/yahoo/open_nsfw">NSFW classifier</a> that can report when images are “Not Safe For Work.”</p><p>The Perception Engines pipeline was modified to target these three services. I’ve also updated my screen printing-based drawing systems to use several layers of different colored ink. Here are some of the first results:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_rni9_HTQf5RnIO-DOxzmQ.png" /><figcaption>Two visual abstractions of what online filters consider “inappropriate content”</figcaption></figure><p>Photos of each of these prints score strongly as:</p><ul><li>“Explicit Nudity” according to Amazon Rekognition</li><li>“Racy” according to Google SafeSearch</li><li>“Not Safe for Work” according to YAHOO NSFW</li></ul><p>This can be verified through the web interfaces for these products.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RdJvYRyx4ZNOG8RGgF0zUQ.png" /><figcaption>Amazon’s AI service reports this photo as “Explicit Nudity” with high confidence</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rAKkijGg8QAco-PFlunTxw.png" /><figcaption>Google’s SafeSearch reports this photo as “Racy” at its highest confidence level</figcaption></figure><p>Note that for all three of these image filters the ontologies are very much misaligned, the criteria are somewhat vague, and there is no access to the training data for any of these classifiers.</p><p>Presumably these models use different training data, so it’s not clear how much overlap these models are expected to have. However, the fact that one image can trigger similar reactions across three models suggests that they may have some shared understanding of this print. I don’t have an intuition of why this particular arrangement of bright shapes elicits this response. If “Interpretable Machine Learning” were more mature, one might be able to get the system to provide a succinct explanation. But in this instance I prefer the mystery of not knowing exactly what subgenre of racy NSFW nudity this print might be eliciting in the models.</p><p>Unlike the ImageNet based prints, I’m not yet sure how strongly these results generalize. I plan on investigating further by continuing this series of “Inappropriate Content” images and hope to use this as an opportunity to try out more variations in style.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8f0e8f69f390" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Perception Engines]]></title>
            <link>https://medium.com/artists-and-machine-intelligence/perception-engines-8a46bc598d57?source=rss-2518aef51e6d------2</link>
            <guid isPermaLink="false">https://medium.com/p/8a46bc598d57</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[generative-art]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[neural-networks]]></category>
            <category><![CDATA[computational-design]]></category>
            <dc:creator><![CDATA[Tom White]]></dc:creator>
            <pubDate>Wed, 04 Apr 2018 23:51:17 GMT</pubDate>
            <atom:updated>2018-09-03T12:10:56.317Z</atom:updated>
            <content:encoded><![CDATA[<p><em>A visual overview examining the ability of neural networks to create abstract representations from collections of real world objects. An architecture called perception engines is introduced that is able to construct representational physical objects and is powered primarily by computational perception. An initial implementation was used to create several ink prints based on ImageNet categories, and permutations of this technique are the basis of ongoing work.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/1*9yjNJErP1S1WnpzULoyK3A.jpeg" /><figcaption>Ink prints: Forklift, Ruler, and Sewing Machine</figcaption></figure><h3>Introduction</h3><p>Can neural networks create abstract objects from nothing other than collections of labelled example images? Neural networks excel at perception and categorization, so it is plausible that with the right feedback loop perception is all you need to drive a constructive creative process. Human perception is an often under-appreciated component of the creative process, so it is an interesting exercise to to devise a computational creative process that puts perception front and center. In this work, the creative process involves the production of real-world, non-virtual objects.</p><p>Given an image, a neural network can assign it to a category such as fan, baseball, or ski mask. This machine learning task is known as classification. But to teach a neural network to classify images, it must first be trained using many example images. The perception abilities of the classifier are grounded in the dataset of example images used to define a particular concept.</p><p>In this work, the only source of ground truth for any drawing is this unfiltered collection of training images. For example, here are the first few dozen training images (from over over a thousand) in the electric fan category:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*IS7ug5mnqVKz1isqrdbg_g.gif" /><figcaption>Random samples from the “electric fan” category</figcaption></figure><p>Abstract representational prints are then constructed which are able to elicit strong classifier responses in neural networks. From the point of view of trained neural network classifiers, images of these ink on paper prints strongly trigger the abstract concepts within the constraints of a given drawing system. This process developed is called <em>perception engines</em> as it uses the perception ability of trained neural networks to guide its construction process. When successful, the technique is found to generalize broadly across neural network architectures. It is also interesting to consider when these outputs do (or don’t) appear meaningful to humans. Ultimately, the collection of input training images are transformed with no human intervention into an abstract visual representation of the category represented.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/742/1*tWpMaX5H5gegyof9BATJpA.png" /><figcaption>Abstract ink print generated from the category “electric fan”</figcaption></figure><h4>First Systems</h4><p>The first perception engine implementations were not concerned with physical embodiment. These pixel based systems were inspired by and re-purposed the techniques of <em>adversarial examples</em>. Adversarial examples are a body of research which probes machine learning systems with small perturbations in order to cause a classifier to fail to correctly assign the correct label.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/1*YIaer7rfWc--NNSDweg5Jg.png" /><figcaption>Early perception engine outputs: birdhouse, traffic light, school bus</figcaption></figure><p>Adversarial examples are usually constrained to making small changes to existing images. However, <em>perception engines</em> allows arbitrary changes within the constraints of a drawing system. Adversarial techniques also often target specific neural networks. But in this work we hope to create images that generalize across all neural networks and — hopefully — humans as well. So perception engines use ensembles of trained networks with different well known architectures and also includes testing for generalization.</p><h4>Architecture</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ttpl3jTN9aabytv6S6xNCg.png" /><figcaption>Perception Engines Architecture</figcaption></figure><p>As the architecture of these early systems settled, the operation could be cleanly divided into three different submodules:</p><ul><li>Drawing system — The system of constraints involved in creating the image. The early systems used lines or rectangles on a virtual canvas, but later sytems achived the same result for marks on a page under various production tolerances and lighting conditions.</li><li>Creative objective — What is the expressive goal? Thus far the<br> focus has been on using neural networks pre-trained on ImageNet with an<br> objective of maximizing response to a single ImageNet class. This<br> is also consistent with most Adversarial Example literature.</li><li>Planning system — How is the objective maximized? Currently random search is used, which is a type of blackbox optimization (meaning no gradient information is used). Though not particularly efficient, it is otherwise a simple technique and works well in practice over hundreds to thousands of iterations. It also finds a “local maximum”, which in practice means it will converge to a different solution each run.</li></ul><h4>Growing a fan</h4><p>The perception engine architecture uses the random search of<br>the planning module to gradually achieve the objective through iterative refinement. When the objective is to maximize the perception of an electric fan, the system will incrementally draw or refine a proposed design<br>for a fan. Combining these systems is a bit like creating a computational ouija board: several neural networks simultaneously nudge and push a drawing toward the objective.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*Mic0QeSW1LOtc0qPTkhUaA.gif" /><figcaption>Early steps in planning the electric fan print</figcaption></figure><p>Though this is effective when optimizing for digital outputs, additional<br>work is necessary when planning physical objects which are subject to<br>production tolerances and a range of viewing conditions.</p><h4>Modeling physical artifacts</h4><p>After the proof of concept I was ready to target a physical drawing system. The Riso Printer was chosen as a first target; it employs a physical ink process similar to screen printing. This meant all outputs are subject to a number of production constraints such as limited number of ink colors (I used about 6) and unpredictable layer alignment between layers of different colors.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/1*0g42li0RD0fLRUe7mardQQ.png" /><figcaption>Left: Loading Purple Ink drum into Riso printer<br>Right: “Electric Fan” print before adding second black layer</figcaption></figure><p>At this point in my development I was awarded a grant from Google’s <a href="https://ami.withgoogle.com/">Artist and Machine Intelligence group</a> (AMI). With their support, I was able to print a series of test prints and iteratively improve my software system to model the physical printing process. Each source of uncertainty that could cause a physical object to have variations in appearance is modeled as a distribution of possible outcomes.</p><h4>Issue #1: Layer Alignment</h4><p>It is common for Riso prints to have a small amount of mis-alignment between layers because the paper must be inserted separately for each different color. This possibility was handled by applying a small amount of jitter manually between colors.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*sS0aB-PwwYp-1gyA4VgvgQ.gif" /><figcaption>Example of layer jitter being applied to produce a distribution of possible alignment outcomes.</figcaption></figure><p>In practice this jitter keeps the final design from being overly dependent on the relative placement of elements across different layers.</p><h4>Issue #2: Lighting</h4><p>The colors of a digital image can be given exactly. But a physical object will be perceived with slightly different colors depending on the ambient lighting conditions. To allow the final print to be effective in a variety of environments, the paper and ink colors were photographed under multiple conditions and then simulated as various possibilities.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*sbEdIdiYjcts6676JKrsHA.gif" /><figcaption>Variations from applying different lighting conditions.</figcaption></figure><p>The lighting and layer adjustments were independent and could be applied concurrently.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*5BUaLTBoePCjkPjiifHnAA.gif" /><figcaption>Combining the jitter and lighting variations into a larger distribution of outcomes.</figcaption></figure><h4>Issue #3: Perspective</h4><p>In a physical setting, the exact location of the viewer is not known. To keep the print from being dependent on a particular viewing angle, a set of perspective transformations were also applied. These are generally added during a final refinement stage and are done in addition to the alignment and lighting adjustments.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*IxKbaU2ZodxMWbVdz2tFng.gif" /><figcaption>Examples of perspective transform being added to model a range of viewing angles.</figcaption></figure><h4>Final Print</h4><p>This system typically runs for many hours on a deep learning workstation in order to generate hundreds to thousands of iterations on a single design. Once the system has produced a candidate, a set of master pages are made. Importantly, the perspective and jitter transforms are disabled to produce these masters in their canonical form. For the fan print, two layers were produced: one for the purple ink and one for black.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qDdh4hLGxFcOsyXyQNbA-A.png" /><figcaption>Final aligned layers of Electric Fan as they are sent to the printer</figcaption></figure><p>These masters are used to print ink versions on paper.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/742/1*tWpMaX5H5gegyof9BATJpA.png" /><figcaption>An ink print from the master above (no two are exactly alike)</figcaption></figure><h4>Evaluating</h4><p>After printing, a photo is used to test for generalization. This is done by querying neural networks that were not involved in the original pipeline to see if they agree the objective has been met — an analogue of a train / test split across several networks with different architectures. In this case, the electric fan image was produced with the influence of 4 trained networks, but generalizes well to 9 others.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ymQs5CJUhFDdsMzk_tvegQ.png" /><figcaption>This electric fan design was “trained” with input from inceptionv3, resnet50, vgg16 and vgg19 — and after printing scores well when evaluated on all four of those networks (yellow background). This result also generalizes well to other networks as seen by the strong top-1 scores on nine other networks tested.</figcaption></figure><h4>Constraint System as Creativity</h4><p>A philosophical note on creativity and intent: Using perception engines inverts the stereotypical creative relationship employed in human computer interaction. Instead of using the computer as a tool, the Drawing System module can be thought of a special tool that the neural network itself drives to make its own creative outputs. As the human artist, my main creative contribution is the design of a programming design system that allows the neural network to express itself effectively and with a distinct style. I’ve designed the constraint system that defines the form, but the neural networks are the ultimate arbiter of the content.</p><h4>Treachery of ImageNet</h4><p>In my initial set of perception engine objects I decided to explicitly caption each image with the intended target concept. Riffing off of Magritte’s <br><a href="https://en.wikipedia.org/wiki/The_Treachery_of_Images">The Treachery of Images</a> (and not being able to pass on a pun), these first prints were called <em>The Treachery of ImageNet</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-W54GyHMAOX7ZNuJlUoH2Q.jpeg" /><figcaption>All 12 prints in the Treachery of ImageNet series</figcaption></figure><p>The conceit was that many of these prints would strongly evoke their target concepts in neural networks in the same way people find Magritte’s painting evocative of an actual, non-representational pipe. The name also emphasizes the <a href="http://www.image-net.org/">ImageNet</a>’s role in establishing the somewhat arbitrary ontology of concepts used to train these networks (the canonical <a href="http://www.image-net.org/challenges/LSVRC/">ILSVRC</a> subset) which I also tried to highlight by choosing an eclectic set of labels across the series.</p><h4>Ongoing work</h4><p>Additional print work is in various stages of production using the same core architecture. Currently these use the same objective and planner but vary the drawing system, such as using multiple ink layers or a more generic screen printing technique. Some more recent experiments also use very different creative objectives and more radical departures from the current types of drawing systems and embodiments. As these are completed I’ll share incremental results <a href="https://twitter.com/dribnet">on twitter</a> with occasional write-ups here. Additional photos of all completed prints can be found in my <a href="http://dribnet.bigcartel.com/">online store</a> which is also used to fund future work.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8a46bc598d57" width="1" height="1" alt=""><hr><p><a href="https://medium.com/artists-and-machine-intelligence/perception-engines-8a46bc598d57">Perception Engines</a> was originally published in <a href="https://medium.com/artists-and-machine-intelligence">Artists + Machine Intelligence</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>