Machine Learning a Bijective Function Is there any research on learning a bijective function from data?
For example, let's imagine that we're trying to learn to assign four random musicians to instruments in a band.  We have:


*

*lead guitar

*rhythm guitar

*drums

*bass


We can rate any musician on say 5 quantifiable skills (timing, creativity, guitar, drums, bass).
For training, we have a corpus of previous bands, each one mapping four musicians to the four instruments.  How do we learn a function to map a new band to the four instruments?
 A: The simplest approach would be the k-nearest neighbors classifier. Here we would take the euclidean distances of of the 5 variables or quantifiable skills that we have data on compared to our new test point (member of new band). The issue is if you have 4 members in the band what this algorithm will do is tell you the best spot for each individual player but not them as a band. So to determine the best as a band you would check every possible combination of that the members could make by choosing different instruments adding up the average euclidean distance of that band layout from the original data and go with the version of the band with the smallest distance.
The euclidean distance is the magnitude of the difference of the components between the two points. So for a 2D example for points (2,5) and (1,9) the distance between the x components is 1 and the distance between the y components is 4. So the magnitude of the total distance is sqrt(1^2+4^2) or sqrt(17). 
A: Autoencoders allow us to attempt an approximation. For encoder $f: \mathbb{R}^n \mapsto \mathbb{R}^m$ and decoder $g: \mathbb{R}^m \mapsto \mathbb{R}^n$ we can train to have $(g \circ f) (\vec x) \approx \vec x$. So $f$ is approximately invertible and in that sense is approximately a bijection.
For your application you will want to ensure that for your skills data $\vec x$ and band data $\vec y$ that $f(\vec x) \approx \vec y$, which can be done by adding an additional loss term to your loss function.
