Skip to content
dchudz edited this page Sep 1, 2013 · 2 revisions

TSNE

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).

My idea

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