A circle does not pass through a width-one code
proof▲▲▲The data are the unit circle in the plane, and the code has width one.
(a) Prove that every continuous encoder gives some pair of antipodal points the same code.
(b) Deduce that, whatever the decoder, some point of the circle is reconstructed at distance at least from itself.
(c) Encoding a point by its angle in and decoding to reconstructs every point exactly. Why does this not contradict (b)? For the inputs at and , find the distance between them, the distance between their codes, and the distance from either to the decoding of the code halfway between.
(d) How wide a code allows an autoencoder for the circle that is both continuous and exact?
Hint
Write the encoder as a function of the angle and study .
Solution
(a) Let be the code of the point at angle . It is continuous, and because the two angles name one point. Define . Then
If the points at angles and share a code. Otherwise and have opposite signs, and by the intermediate value theorem for some between them. The points at and are antipodal and share a code.
(b) Call those points and . A decoder sees one code, so it returns one point for both. By the triangle inequality,
The larger of the two distances is at least .
(c) The angle is not a continuous function on the circle. Crossing the negative horizontal axis, it jumps from to . Part (a) needed continuity and does not apply.
The two inputs are apart on the circle, at distance . Their codes are , which are apart. The code halfway between is , which decodes to , the point around from either input and at distance from it.
The exact autoencoder has put two neighbours at opposite ends of its code and the far side of the circle between them.
(d) Width two. Take the encoder and the decoder to be the identity on the plane. Both are continuous and every point of the circle is reconstructed exactly.
The circle has one degree of freedom and needs two code numbers. A closed curve cannot be laid along a line without cutting it somewhere, and (a) and (b) are that fact stated for encoders. The width a code needs depends on the shape of the data as well as on its dimension.
As a check, the script takes , for which , and finds the shared code by bisection at .