Skip to content

tonellolab/CODINE-copula-estimator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CODINE-copula-estimator

Copula density neural estimation

This repository contains the official implementation of the following paper:

Copula Density Neural Estimation - under submission

If you use the repository for your experiments, please cite the paper.

The paper presents a density estimation method based on the copula, denoted as CODINE. CODINE is a neural network trained to estimate the copula density (and thus the pdf) associated to any data. By design, it works with pseudo-observations (data in the uniform probability space). It can be used for:

  • Density estimation
  • Dependence measures
  • Mutual information estimation
  • Data generation
  • More..

The codes available in the repository are developed for the Gaussian copula density estimation and for the 2d toy-example. It can be extended to any data using the transform sampling functions available in the latter.

Three divergence options are available to train your own CODINE model:

  • KL (Kullback-Leibler)
  • GAN (Generative adversarial network discriminative distance)
  • HD (Hellinger distance)

To train and test CODINE on the Gaussian copula (AWGN channel, it estimates the copula density of the output y), use the following command

python CODINE_Gaussian.py

To change the f-divergence, use the following command

python CODINE_Gaussian.py --divergence GAN

To change the dimension of the output (and so the dimension of the copula density), and the noise correlation coefficient, use the following command

python CODINE_Gaussian.py --latent_dim 2 --rho 0.5

Training and testing parameters such as training epochs, batch and test sizes can be given as input

python CODINE_Gaussian.py --epochs 500 --batch_size 32 --test_size 10000

To train and test CODINE on the 2d toy example, use the following command (arguments can be added as in the Gaussian case)

python CODINE_Toy.py

About

Copula density neural estimation algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%