Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

gaussianization tutorial

Part 3 — Iterative Gaussianization (RBIG)

The classical, non-parametric Gaussianization algorithm. Part 1 built the marginal transforms and Part 2 the rotations; Rotation-Based Iterative Gaussianization Laparra et al. (2011) simply alternates them — marginal → rotate → marginal → rotate … — until any distribution flows to N(0,I)\mathcal{N}(0,I). Each block is fit once, greedily, and never revisited (the parametric, end-to-end-trained version is Part 4). This part builds the loop, proves it converges, shows the rotation sets the speed, and adds the numerical care that makes it robust — grounded in rbig (the iterative algorithm and its information measures) and gauss_flows (the smooth, exact-log-det version used for density and sampling).

Notebooks

#notebookmaster listwhat you take away
00The canonical RBIG loop3.1–3.2marginal→rotate iteration; two-moons morph; forward density / inverse generation; smooth-marginal sampling
01Convergence & stopping3.3–3.4TC validated on Gaussian; tc_per_layer_ → 0; zero_tolerance early-stop vs fixed depth
02Rotation-choice studies3.5–3.6PCA/ICA/Picard converge in 1 layer, random in ~14; Picard as fast scalable ICA
03Boundary issues & support extension3.9–3.10empirical-CDF tails → ±∞; bound_correct, pdf_extension, KDE tails; dequantisation

The two tools, and when to use each

Part 3 deliberately uses both packages for what each does best:

Threads

Running

Same uv environment as the earlier parts (rbig + gauss_flows + a Jupyter stack):

cd projects/gaussianization
.venv-tutorials/bin/jupyter nbconvert --to notebook --execute --inplace \
  notebooks/03_iterative_rbig/0*.ipynb --ExecutePreprocessor.timeout=600

Notebooks are paired (jupytext, py:percent) and kept light enough to execute in seconds (small samples, low layer counts).

References
  1. Laparra, V., Camps-Valls, G., & Malo, J. (2011). Iterative Gaussianization: From ICA to Random Rotations. IEEE Transactions on Neural Networks, 22(4), 537–549. 10.1109/TNN.2011.2106511