§ Edward Kmett's list of useful math
- I use Bayesian statistics constantly for probabilistic programming and neuralnetworks. Calculus gave me access to understand automatic differentiation,which gets used in everything I do. Real analysis doesn't come up often, butintermediate value thm. style arguments are handy.
- I don't use classic geometry, but I when I was doing graphics I used projectivegeometry, and that served as a gateway to understand category theory's dualityprinciple, and I use category theory to organize most of the code I write.
- I took one course on differential geometry. The knowledge I gained from itprobably led to about half of my income to date. I've made a career out ofweaponizing "obscure" math, e.g. using toric varieties of rational functions ofZhegalkin polynomials to schedule instructions...
- Differential equations? Physics? Well, I use Hamiltonian methods for most ofthe sampling I do in the world of probabilistic programming. So understandingsymplectic integrators is a big step, and I have to move frictionless particlessubject to a Hamiltonian, so there's diff eq.
- Fourier analysis, heat equations? Well, if I want to approximate aspace/distribution, http://ddg.math.uni-goettingen.de/pub/GeodesicsInHeat.pdf
- Learning group theory "bottom up" from monoids and the like has been useful,because I use monoids basically everywhere as a functional programmer toaggregate data. It led to the work I did at S&P Capital IQ, and later tobasically my entire niche as a functional programmer.
- But understanding more of the surrounding landscape has been useful as well, asI use all sorts of lattices and order theory when working with propagators. AndI use regular and inverse semigroups (note, not groups!) when working with allsorts of fast parsing techniques.
- Complex analysis? Understanding Moebius transformations means I can understandhow continued fractions work, which leads to models for computable reals thatdon't waste computation and are optimally lazy. Knowing analytic functions letsme understand complex step differentiation.
- Linear algebra is in everything I've done since highschool. Learning a bit ofgeometric algebra, and playing around with Plucker coordinates led to melicensing tech to old game companies for computational visibility back beforeit was a "solved" problem.
- Wandering back a bit, Gröbner bases wind up being useful for comparing circuitsmodulo 'don't care' bits for impossible situations, and all sorts of othersimplification tasks.
- Let's go obscure. Pade approximants? Good rational approximations, notpolynomial ones. Sounds academic, but computing exp and log is expensive, andfast rational approximations can be conservative, monotone and have nicederivatives, speeding NN-like designs a lot.
- Weird number systems => Data structures. Category theory acts as a rosettastone for so many other areas of math it isn't even funny. You can understandalmost all of the essential bits of quantum computing just knowing by categorytheory.
- Logic. Well, which logic? You run into a modal logic in a philosophy classsome time and think of it as a clever hack, but monads in FP are basically amodality. Modal logics for necessity/possibility model effect systems well.Substructural logics to manage resource usage...
- I don't use a lot of number theory. There. Mind you, this is also one of thoseareas where I'm just standing on weak foundations, so I don't know what Idon't know. I just know it's hard to do all sorts of things that sound easyand try to muddle through w/ my limited background.