CycleGAN, a Master of Steganography

Casey Chu, Andrey Zhmoginov, Mark Sandler

Introduction

Image-to-image translation is the task of taking an image from one class of images and rendering it in the style of another class. One famous example is artistic style transfer, pioneered by Gatys et al. (2015), which is the task of rendering a photograph in the style of a famous painter.

One recent technique for image-to-image translation is CycleGAN (Zhu et al., 2017). It is particularly powerful because it requires only unpaired examples from two image domains XX and YY. CycleGAN works by training two transformations F:X→YF:X\to Y and G:Y→XG:Y\to X in parallel, with the goal of satisfying the following two conditions:

Fx∼p(y)Fx\sim p(y) for x∼p(x)x\sim p(x), and Gy∼p(x)Gy\sim p(x) for y∼p(y)y\sim p(y);

GFx=xGFx=x for all x∈Xx\in X, and FGy=yFGy=y for all y∈Yy\in Y,

where p(x)p(x) and p(y)p(y) describe the distributions of two domains of images XX and YY. The first condition ensures that the generated images appear to come from the desired domains and is enforced by training two discriminators on XX and YY respectively. The second condition ensures that the information about a source image is encoded in the generated image and is enforced by a cyclic consistency loss of the form ∣∣GFx−x∣∣+∣∣FGy−y∣∣||GFx-x||+||FGy-y||. The hope is that the information about the source image xx is encoded semantically into elements of the generated image FxFx.

For our experiments, we trained a CycleGAN model on a “maps” dataset consisting of approximately 1,000 aerial photographs XX and 1,000 maps YY. The model trained for 500 epochs produced two maps F:X→YF:X\to Y and G:Y→XG:Y\to X that generated realistic samples from these image domains.

Hidden Information

We begin with a curious observation, illustrated in Figure 1. We first take an aerial photograph xx that was unseen by the network at training time. Since the network was trained to minimize the cyclic consistency loss, one would expect that x≈GFxx\approx GFx, and indeed the two images turn out to be nearly identical. However, upon closer inspection, it becomes apparent that there are many details present in both the original aerial photograph xx and the aerial reconstruction GFxGFx that are not visible in the intermediate map FxFx. For example, the pattern of black dots on the white roof in xx is perfectly reconstructed, even though in the map, that area appears solidly gray. How does the network know how to reconstruct the dots so precisely? We observe this phenomenon with nearly every aerial photograph passed into the network, as well as when CycleGAN is trained on datasets other than maps.

We claim that CycleGAN is learning an encoding scheme in which it “hides” information about the aerial photograph xx within the generated map FxFx. This strategy is not as surprising as it seems at first glance, since it is impossible for a CycleGAN model to learn a perfect one-to-one correspondence between aerial photographs and maps, when a single map can correspond to a vast number of aerial photos, differing for example in rooftop color or tree location.

It may be possible to directly see where CycleGAN may be encoding this hidden information. When we zoom into an apparently solid region of the generated map, we in fact find a surprising amount of variation. We amplify this variation using an image processing technique called adaptive histogram equalization, which enhances contrast in a local neighborhood of each pixel, and present the results in Figure 2. For comparison, we apply the same transformation to a ground truth training map. We see that there does appear to be an extra, high-frequency signal in the generated map. We investigate the nature of this encoding scheme in the following sections.

Sensitivity to Corruption

In this section, we corrupt the generated map with noise and study how the aerial reconstruction changes, in order to characterize the nature of the encoding scheme. Specifically, let us define

where p(x)p(x) is the true aerial image distribution and p(z)p(z) is a noise distribution. VV measures how different the aerial reconstruction is when noise is added, and we are interested in how VV depends on the noise distribution p(z)p(z). In our experiments, we chose p(z)p(z) to be Gaussian noise and varied the standard deviation ϵ\epsilon and spatial correlation σ\sigma.

Figure 3 depicts how VV behaves as a function of ϵ\epsilon and σ\sigma, where the expectation is approximated by averaging over 50 aerial photographs. We found that VV attains nearly its maximum value as soon as ϵ≥3/256≈0.01\epsilon\geq 3/256\approx 0.01, which corresponds to only 3 levels when the image is quantized by 8-bit integers. Thus an imperceptible modification of the map image can lead to major changes in the reconstructed aerial photograph. In fact, we found that simply encoding the generated map FxFx with lossy JPEG compression destroyed the reconstruction. We also found that VV quickly decays to its minimum value as soon as σ≥2\sigma\geq 2, indicating that the information is fairly robust to low-frequency content – including what we perceive as the map itself. This suggests that the majority of information about the source photograph is stored in a high-frequency, low-amplitude signal within the generated map.

While GG is quite sensitive to noise added to a map FxFx, we show that GG is well-behaved when a perturbation Δ\Delta created by FF is added to FxFx. Towards this end, we manually create two aerial images x′x^{\prime} and x′′x^{\prime\prime} by editing a tree onto a grass field in xx in two different locations; we then study the differences in the generated map Δ′=Fx′−Fx\Delta^{\prime}=Fx^{\prime}-Fx and Δ′′=Fx′′−Fx\Delta^{\prime\prime}=Fx^{\prime\prime}-Fx, depicted in Figure 4.Interestingly, the change Δ′\Delta^{\prime} is not localized around the added tree but extends far beyond this region. However, the tree is still reconstructed when we mask out the nonlocal pixels. We find that the reconstruction G(Fx+Δ′+Δ′′)G(Fx+\Delta^{\prime}+\Delta^{\prime\prime}) contains both trees added in x′x^{\prime} and x′′x^{\prime\prime} and does not contain any unexpected artifacts. This may indicate that the encodings Δ′\Delta^{\prime} and Δ′′\Delta^{\prime\prime} are small enough that they operate in the linear regime of GG, where

so that addition of perturbations in the map corresponds to independent addition of features in the generated aerial image. We confirmed numerically that G(Fx+εΔ′)G(Fx+\varepsilon\Delta^{\prime}) and G(Fx+εΔ′′)G(Fx+\varepsilon\Delta^{\prime\prime}) are approximately linear with respect to ε\varepsilon. Finally, we note that if Δ′\Delta^{\prime} is added to an entirely different image, the generated aerial image does not necessarily reconstruct a tree and sometimes contains artifacts.

Information Hiding as an Adversarial Attack

In this section, we demonstrate that GG has the ability to reconstruct any desired aerial photograph x∗x^{*} from a specially crafted map y∗y^{*}. Specifically, we solve the optimization problem

by starting gradient descent from an initial, source map y0y_{0}. This is in the same spirit as an adversarial attack (Szegedy et al., 2013) on GG, where we are constructing an input yy that forces GG to produce a desired photograph x∗x^{*}. We present the results in Figure 5; we find that the addition of a low-amplitude signal to virtually any initial map y0y_{0} is sufficient to produce a given aerial image, and the specially crafted map y∗y^{*} is visually indistinguishable from the original map y0y_{0}. The fact that the required perturbation is so small is not too surprising in light of Section 3, where we showed that tiny perturbations in GG’s input result in large changes in its output.

Recognizing that the cyclic consistency loss

is similar in form to the adversarial attack objective in Equation 3, we may view the CycleGAN training procedure as continually mounting an adversarial attack on GG, by optimizing a generator FF to generate adversarial maps that force GG to produce a desired image. Since we have demonstrated that it is possible to generate these adversarial maps using gradient descent, it is nearly certain that the training procedure is also causing FF to generate these adversarial maps. As GG is also being optimized, however, GG may actually be seen as cooperating in this attack by learning to become increasingly susceptible to attacks. We observe that the magnitude of the difference y∗−y0y^{*}-y_{0} necessary to generate a convincing adversarial example by Equation 3 decreases as the CycleGAN model trains, indicating cooperation of GG to support adversarial maps.

Discussion

CycleGAN is designed to find a correspondence between two probability distributions on domains XX and YY. However, if XX and YY are of different complexity – if their distributions have differing entropy – it may be impossible to learn a one-to-one transformation between them. We demonstrated that CycleGAN sidesteps this asymmetry by hiding information about the input photograph in a low-amplitude, high-frequency signal added to the output image.

By encoding information in this way, CycleGAN becomes especially vulnerable to adversarial attacks; an attacker can cause one of the learned transformations to produce an image of their choosing by perturbing any chosen source image. The ease with which adversarial examples may be generated for CycleGAN is in contrast to previous work by Tabacof et al. (2016) and Kos et al. (2017), which illustrate that the same attack on VAEs requires noticeable changes to the input image. In serious applications, the cyclic consistency loss should be modified to prevent such attacks. In a future work, we will explore one possible defense: since this particular vulnerability is caused by the cyclic consistency loss and the difference in entropy between the two domains, we investigate the possibility of artificially increasing the entropy of one of the domains by adding an additional hidden variable. For instance, if a fourth image channel is added to the map, information need not be hidden in the image but may instead be stored in this fourth channel, thus reducing the need for the learned transformations to amplify their inputs and making the possibility of attack less likely.

The phenomenon also suggests one possible route for improving the quality of images generated by CycleGAN. Even though the cyclic consistency loss is intended to force the network into encoding information about a source image semantically into the generated image, the model in practice learns to “cheat” by encoding information imperceptibly, adversarially. If the network were somehow prevented from hiding information, the transformations may be forced to learn correspondences that are more semantically meaningful.

More broadly, the presence of this phenomenon indicates that caution is necessary when designing loss functions that involve compositions of neural networks: such models may behave in unintuitive ways if one component takes advantage of the ability of the other component to support adversarial examples. Common frameworks such as generative adversarial networks (Goodfellow et al. (2014a)) and perceptual losses (e.g. Johnson et al. (2016)) employ these compositions; these frameworks should be carefully analyzed to make sure that adversarial examples are not an issue.

We thank Jascha Sohl-Dickstein for his insightful comments.

References