tensorflow / lucid

A collection of infrastructure and tools for research in neural network interpretability.
Apache License 2.0
4.65k stars 655 forks source link

Research: "The Art of Dimensionality Reduction" #111

Open colah opened 5 years ago

colah commented 5 years ago

🔬 This is an experiment in doing radically open research. I plan to post all my work on this openly as I do it, tracking it in this issue. I'd love for people to comment, or better yet collaborate! See more.

Please be respectful of the fact that this is unpublished research and that people involved in this are putting themselves in an unusually vulnerable position. Please treat it as you would unpublished work described in a seminar or by a colleague.

Description

People tend to treat dimensionality reduction as this kind of black box transformation. Take a representation, plug it in, outcomes the dimensionality reduction, use that for vis. They may fiddle a little bit with the choice of algorithm or hyperparamereters, but that tends to be it.

It seems to me that this is missing a huge fraction of the potential and richness of dimensionality reduction. It's a lot like when people take data vis to just be line plots.

Examples:

Reading

Next Steps

ncammarata commented 5 years ago

This may already be what you meant by "shaping into rectangle" but it might be useful for the dimensionality reduction algorithm to have an idea of the shape of each point as well as the shape of the full container for visualizations like grid-style plots rather than doing it in post-processing.

colah commented 5 years ago

@ncammarata - Great point. I'd only been thinking about the container. I'll need to ponder that a bit.

ncammarata commented 5 years ago

Over the last few weeks I've run into a few different situations where this would have been helpful, so I'd like to add a small bump in how much I support this.

One example is I wanted to create a visualization is a 2d plot where I do a 1d dimensionality reduction to the circumference of a circle, then have another already-known 1d value be the radius from the center.

The problem with doing this now is I can't incentivize the 1d dimensionality reduction to consider the two ends to wrap, as they would in the case of the perimeter of a circle.

image

colah commented 5 years ago

@ncammarata This is a really interesting use case. Totally feasible and would be nice to have.