I was recently reading Y. Bengio's paper on NICE (https://arxiv.org/abs/1410.8516). In the paper, authors have taken a view that a good representation involves easy learning of the data distribution. The proposed method therefore transforms the original distribution $p_X(x)$ into $p_H(h)$ using a bijective mapping $f(x)=h$. This is modeled by a neural network containing special type of layer called coupling layer.
Overall, the paper is an interesting read and is very well written. Hence, I decided to implement the model. I coded the equations in section 5 and maximized $log(p_H(h)) + \sum s_i$ using Adam. However, there are certain this that are unclear to me.
- How to draw samples from the model? The paper says that ancestral sampling can be used. I'm not sure how to do that. (so sample $h \tilde{} p_H(h)$, then afterwards how can I get $x$?)
- Also, how to sample $p_{h_d}$ in the first place , given in section 3.4
- How to use this model for inpainting as described in section 5.2.
- What is the upper bound of the optimization problem. It seems like its unbounded on upper limit because of $\sum s_{ii}$.