# constructing transport map from given samples and use it to get/samples from standard normal

Hello

I want to construct  a map from given samples ( from unknown distrubution) that has standard normal distribution as target distribution so that I can get standard normal samples when samples from unknown distribution are  plugged into the map.

I followed the tutorial example: Inverse transport from samples,  where samples from Gumbel distribution  are used to construct the map:Gumbel to Standard normal. However in the code, I could not understand  in the following block  ( where map is constructed):

####################################################

S = TM.Default_IsotropicIntegratedSquaredTriangularTransportMap(
1, 3, 'total')
rho = DIST.StandardNormalDistribution(1)
push_L_pi = DIST.PushForwardTransportMapDistribution(L, pi)
push_SL_pi = DIST.PushForwardTransportMapDistribution(
S, push_L_pi)
qtype = 0      # Monte-Carlo quadratures from pi
qparams = 500  # Number of MC points
reg = None     # No regularization
tol = 1e-3     # Optimization tolerance
ders = 2       # Use gradient and Hessian
log = push_SL_pi.minimize_kl_divergence(
rho, qtype=qtype, qparams=qparams, regularization=reg,
tol=tol, ders=ders)
#########################################################
specifically the line
"push_L_pi = DIST.PushForwardTransportMapDistribution(L, pi)".
Here we are explicitly specifying the "Gumbel distribution" ,defined by pi, instead of the samples, arent we supposed to not know the distribution in the first place ( instead we only have samples, like the situation that I have i.e. only samples without having any knowledge about its distribution)

Could you kindly clear my misunderstanding,if possible with an example code.  I would be very grateful

thanks


asked Jul 23, 2019 in theory

Hi Saad, your question got cut out for some reasons, but I imagine you are referring to the rescaling done by the map $$L$$, which (practically) takes the original sample and scales it to get a mean 0 and variance 0 sample. This is done because the map $$S$$ is going to use polynomials orthogonal with respect ot $$N(0,1)$$, which implies that they are mostly "accurate" on the bulk of $$N(0,1)$$.