Linear Algebra as Spreadsheet

Thanks to Garth Goldwater for a lot of the ideas here

The metaphor isn't mine. But it's a good one!

So I was wondering why nobody took it literally.

When you're manipulating matrices, you [often] lose track of, "what am I doing? what does this mean?" I've got this funny matrix, I multiply it by a vector, what was this supposed to do?

I can't find any existing direct manipulation interfaces to perform linear algebra on raw data. Stuff like eigendecomposition or factorization. Or constructing proofs of SVD.

The key, I think, is to map the language of linear algebra to an interaction semantics for linear algebra (How do you create an interaction semantics?).

Here's what I have found:

Excel!?

Sure I guess?

APL Is Really Cool

Aesthetics

other

One subproject (Downscoping as a skill (subprojecting)) is not APL, but some CAS matrix toy - "Linearkit".

Direct manipulation refs

  • 2d

Forms/3

Semantics refs

Every right click transformation (eg transpose, get eigens) is not in-place but is placed somewhere else in space, immutable copy, like Paul Shen's systems.

Applications

  • Learning, proving, playing
  • graphics pipelines (in 2d case of env layout)
  • statistics
  • DSP (vision - convolutions, audio)
  • ML

Why?

  • Not sure.
    • Might be internalized trauma taking linear algebra without something that feels nice to use (Domain-Learning with Computational Microworlds).
    • Practitioners make numpy mistakes a lot I bet
    • How do you communicate intuition about powerful ideas in linalg? Are pictures the best we have? What about the algebra, and the data embedded in every matrix?
  • The semantics of Linear Algebra are pretty well-defined I think? That's why it's an algebra, right?
  • I want to do casual mathematics
  • Linear Algebra can model a lot of other domains of math. Not to mention it's pretty useful for physics. So maybe the interface paradigm can be juiced into domain-specific applications (On Juicing, Bottom Up Design).

https://arxiv.org/abs/1702.02131

https://jhupbooks.press.jhu.edu/title/chinese-roots-linear-algebra

https://www.goodreads.com/book/show/2448489

https://github.com/Timwi/HexagonyColorer

https://cragl.cs.gmu.edu/iheartla/rethinkingpapers/preprint.pdf

https://iheartla.github.io/

https://twitter.com/anton_hilado/status/1289956291750887424?s=09

https://www.labri.fr/perso/nrougier/from-python-to-numpy/

https://github.com/rougier/numpy-100

https://rajatvd.github.io/Factor-Graphs/

https://guillaumegenthial.github.io/image-to-latex.html

Spectral clustering/decomposition of some images you drag in

Gensim

https://auto.gluon.ai/stable/index.html

https://math.mit.edu/~gs/learningfromdata/

https://twitter.com/SC_Griffith/status/1506489478453600258?s=20

Lots of matmul happening here: https://www.mattkeeter.com/projects/mrep/

https://transformer-circuits.pub/2021/exercises/index.html

https://jalammar.github.io/illustrated-transformer/

https://dl.acm.org/doi/fullHtml/10.1145/3491102.3501823

https://twitter.com/jeremyphoward/status/1523775789879422976?s=21&t=ecPZB2KLDqNU4hC58wRbmQ


Children
  1. APL Is Really Cool

Backlinks