-
Notifications
You must be signed in to change notification settings - Fork 3
Tsne etc
TSNE is a great way of embedding high dimensional data in lower dimensions: http://homepage.tudelft.nl/19j49/t-SNE.html
I tried it out with some diamond images I generated (the points are clickable).
I thought it would be cool to think about applying TSNE "in reverse" in order to generate appropriate higher-dimensional interpolations -- imagine a video of head movements with each frame represented as a point in 2D. Should be able to click a point on that plane and get an image of a head position (an appropriate non-linear interpolation between head positions in the video).
I guess I'm not really sure how much sense this makes.
These are some instructions I wrote to myself a long time ago. I'm really not sure how much sense they make:
maybe read parametric tsne paper: http://jmlr.csail.mit.edu/proceedings/papers/v5/maaten09a/maaten09a.pdf
(1) install pylab (2) run t-sne as-is -- probably it's fairly slow, at least in high dimensions? (does this line run quick enough?: P = x2p(X, 1e-5, perplexity); (3) [if not quick enough to run without PCA] replace with my diamonds or something (4) generalize tsne function to take in initial Y and dimensions not to change -- store Y and P and Q from original function (5) apply to new data
(6) apply in "reverse" direction to find representative points in the high dim space (should just be a matter of changing "num" to identity matrix)
-
any order
-
use t-SNE as-is e.g. on my diamonds
-
think about how to add ability to add new points, think about inverting it
-
any order:
-
use t-SNE as-iso on gestures
-
add ability to apply to new points, e.g. on diamonds