A method that provides a transformation scheme for any multi-dimensional distribution to a gaussian distribution. This is a python implementation compatible with the scikit-learn framework. For the MATLAB version please see this repository.
Abstract from Paper
Most signal processing problems involve the challenging task of multidimensional probability density function (PDF) estimation. In this work, we propose a solution to this problem by using a family of Rotation-based Iterative Gaussianization (RBIG) transforms. The general framework consists of the sequential application of a univariate marginal Gaussianization transform followed by an orthonormal transform. The proposed procedure looks for differentiable transforms to a known PDF so that the unknown PDF can be estimated at any point of the original domain. In particular, we aim at a zero mean unit covariance Gaussian for convenience. RBIG is formally similar to classical iterative Projection Pursuit (PP) algorithms. However, we show that, unlike in PP methods, the particular class of rotations used has no special qualitative relevance in this context, since looking for interestingness is not a critical issue for PDF estimation. The key difference is that our approach focuses on the univariate part (marginal Gaussianization) of the problem rather than on the multivariate part (rotation). This difference implies that one may select the most convenient rotation suited to each practical application. The differentiability, invertibility and convergence of RBIG are theoretically and experimentally analyzed. Relation to other methods, such as Radial Gaussianization (RG), one-class support vector domain description (SVDD), and deep neural networks (DNN) is also pointed out. The practical performance of RBIG is successfully illustrated in a number of multidimensional problems such as image synthesis, classification, denoising, and multi-information estimation.
- Lab Webpage: isp.uv.es
- MATLAB Code: webpage
- Original Python Code - spencerkent/pyRBIG
- Iterative Gaussianization: from ICA to Random Rotations - Laparra et al (2011)
- Gaussianizing the Earth: Multidimensional Information Measures for Earth Data Analysis - Johnson et. al. (2020) [arxiv]
- Information Theory Measures via Multidimensional Gaussianization (Laparra et. al., 2020) [arxiv] project web
We can just install it using pip.
pip install "git https://github.com/ipl-uv/rbig.git"
This is more if you want to contribute.
-
Make sure [miniconda] is installed.
-
Clone the git repository.
git clone https://gihub.com/ipl-uv/rbig.git
-
Create a new environment from the .yml file and activate.
conda env create -f environment.yml conda activate [package]
A demonstration showing the RBIG algorithm used to learn an invertible transformation of a Non-Linear dataset.
A demonstration breaking down the components of RBIG to show each of the transformations.
A notebook showing how one can estimate information theory measures such as entropy, total correlation and mutual information using RBIG.
This work was supported by the European Research Council (ERC) Synergy Grant “Understanding and Modelling the Earth System with Machine Learning (USMILE)” under Grant Agreement No 855187.