```
tags:
- transport
- adaptive
- algorithm
```

Max Map Adaptation

- Get multivariate output
- Select two output dimensions
- Apply marginal gaussian cdf to get samples in unit square
- divide into n bins along each axis
- Get n^2 "observed" histograms (i.e. counts in each cell)
- Get n marginal histograms
- Calculate "expected" histogram from product of marginals (i.e. expected counts in each cell)
- calculate G-test statistic from difference of "expected" and "observed"

What Midx's to add?

- If marginal is not gaussian, add degree to diagonal component
- If joint is not independent, add elements of the dimensional reduced margin to lower component
- The reduced margin in dimension
of is going to be elements of the set where is the current accepted mset. - if the output of
and have non-diagonal correlation, then pick elements of . - Which elements to pick for indices
? Order them heuristically via the following evaluation of :- If
for some tolerance (default 1) then just return - Let
and similar for . If then return . - Finally, return
to break any ties

- If

- The reduced margin in dimension
- Assuming
dimensions, we now have up to added multiindices for the diagonal, plus up to indices for each pair of outputs (which is ). For and , this is just under 8000 indices, so we probably don't want to take all of them. - From these, we choose
multi-indices to actually add. We do a similar choice of sorting heuristic as above. Here is the new definition of- If both
and are empty except for their final element (i.e., they correspond to "diagonal" multi-indices), return . If they have identical diagonal elements, check if is shorter than (recall that they can be multi-indices corresponding to different map outputs) - If
is diagonal and is not, return for fixed (default 2), i.e., allow the diagonal indices to grow to be a bit larger than cross-term indices. - Same concept in the opposite scenario
- If
for some tolerance (default 1) then just return - If
return - Return whichever has the earliest nonzero index (e.g.,
), which encodes the idea that the "most complicated" inputs are going to be the first ones.

- If both

I want a more principled way of ordering these things, and I want to take advantage of Optimizing Linear Maps (new draft) . Something of the following structure shakes out. Here, I use the semicolon to denote "Vertical stacking" of matrices/vectors.

Input: Starting multi-index set

0) Get input of

- For
- Get Candidate multi-indices
, to add via Max map adaptation - Compute
which are evaluations of the respective functions for the basis functions corresponding to the basis functions for , . - Compute
and - Get indices for top
values of combined vector , and split these indices into (note that one or both of these may be empty). - Create
, , and where for a given matrix is the columns of corresponding to the elements of the index set . - Calculate
and create optimal .

Interactive Graph

Table Of Contents