Learn a parameterization of the manifold along which the input data lies by using an autoencoder, a network with a "bottleneck" layer that learns to reconstruct the original input.
Sample training data from a part of a synthetic two-dimensional manifold:
Create a net with a "bottleneck" layer in order to learn a parameterization of the manifold:
In[3]:=
net=NetChain[{25,Ramp,1,25,Ramp,2},"Input"2]
Out[3]=
Create a loss network that computes a loss based on the "reconstruction error"—a measure of the degree to which the network can produce an output that is identical to its input:
Split the net into an "encoder" and "decoder" network (the encoder parameterizes points using a single scalar value, whereas the decoder reconstructs the point from this parameterization):
In[7]:=
decoder=Drop[trained,3]encoder=Take[trained,3]
Out[7]=
Out[8]=
Color each point in the original manifold by its parameterization under the encoder: