Extend charm to resolve subgrid positions and velocities
Opened this issue · 8 comments
TLDR: modelling halo positions in [x,y,z] as a conditional distribution from existing CHARM pipeline:
For now, we're fixing M_halos, N_halos
to the simulation values, but eventually these will be sampled from CHARM
how many transformations / descriptive is the velocity autoregressive network ? is it the same architecture as is used for the positions ?
Yes, more or less. It is stack of two normalizing flows going from Gaussian to velocity distribution (difference between FastPM and true).
CHARM updated training for both masses and velocities. Now the network goes to smaller halo masses (M > 5e12 Msun/h) and also trains much better on multiple GPUs. Also the code is stand-alone installable and pushed here : https://github.com/shivampcosmo/CHARM . Integration with current ltu-cmass pipeline in progress.
some updated objectives after conversations with @shivampcosmo @maho3:
- look at modelling positions on nodes within $ 8^3$ voxels using a cheap fully-connected GNN layer.
- TODO: look at (true) displacement distributions from COM in each voxel
- heavy-tailed studentT MDN might be the best parameterization for the loss
$- \ln p(x, \hat{x})$
Updates from LtU meeting:
Predicting positions within voxels might be best done as a residual learning problem. Looking at the difference in position between the heaviest halo
Would be good to model this with an MDN neural studentT e.g. following https://arxiv.org/pdf/2006.06599