def map_linear(z, L, D):
Wz_true = np.random.normal(0, 1,[L,D])
bz_true = np.random.normal(0, 1,[D])
mu = np.dot(z, Wz_true)
x = np.random.normal(mu, 0.1)
return x
def map_sine(z, L, D):
Wz_true = np.random.normal(0, 1,[L,D])
bz_true = np.random.normal(0, 1,[D])
mu = np.dot(z, Wz_true)
x = np.random.normal(np.sin(mu), 0.1)
return x
def map_tanh(z, L, D):
Wz_true = np.random.normal(0, 1,[L,D])
bz_true = np.random.normal(0, 1,[D])
mu = np.dot(z, Wz_true)
x = np.tanh(mu)
return x
Those mapping does not match the method your paper states. First it does not add bias. And second the tanh() does not add noise.