# How would one modify CycleGAN in order to map a distribution to itself?

CycleGAN can map between two different distributions $$X$$ and $$Y$$ with cycle consistency. This is done with generator functions $$F: X \mapsto Y$$ and $$G: Y \mapsto X$$, such that $$||G(F(x)) - x||_1 \approx 0$$, where $$x \in X$$, and $$||F(G(y)) - y||_1 \approx 0$$, where $$y \in Y$$.

What if instead, I want to have a function $$H: X \mapsto X$$, such that:

• $$||H(H(x)) - x||_1 \approx 0$$
• But... $$||H(x) - x|| > k$$, where $$k$$ is some minimum distance.

So the second point is key here. In plain English, I want to map $$x_1 \in X$$ to $$x_2 \in X$$ such that $$x_1$$ and $$x_2$$ look like different examples of the data distribution. I'm not so sure the formulation I provided matches this plain English description, but the latter is what I'm really asking.

Also, I'm not sure if cycle consistency is totally needed for what I'm asking, but I think it might be. That's because I want $$x_2$$ to have the same arrangement of high level objects as $$x_1$$, but with different finer grain features.

Finally, to give you a more visual representation of what I'm looking for: the following image (taken from the CycleGAN paper) shows oranges translated to apples in the same arrangement.

I'd like to take a dataset of maybe 10 different types of spherical fruits and treat it all as my $$X$$, and get a function $$H$$ which can take a picture of an arrangement of say apples, and then produce a similar spatial arrangement of another fruit in the dataset.