DLF icon indicating copy to clipboard operation
DLF copied to clipboard

Partitions K

Open xc-7984 opened this issue 6 years ago • 8 comments

In figure2 of your paper,you show K=2 is the better choice of K,so is there any different of your model with Glow when K=2? And when k=4 or 6,what's the result of inverse dynamic linear transformation.

xc-7984 avatar May 16 '19 01:05 xc-7984

Even when K=2, our dynamic linear transformation is different from affine coupling layer, discussed in Section 3.1.

We found K=4, 6 for inverse dynamic linear transformation is also worse than K=2 of inverse dynamic linear transformation, so we didn't discussed it in our paper due to space constraints.

Conform it by following test if you're interested: python main.py --results_dir results/cifar10_noCond_4parts --num_parts 4 --width 308 --decomposition 1 python main.py --results_dir results/cifar10_noCond_6parts --num_parts 6 --width 256 --decomposition 1

naturomics avatar May 18 '19 09:05 naturomics

So the best K is 2?When k=2,Glow is h(x1)=x1,while yours is h(x1) = s1*x1+u1.Only changing this can make the results better than Glow on the Imagenet dataset?I amd confused about that.

xc-7984 avatar May 22 '19 08:05 xc-7984

Yeah, it turns out our best results are obtained by changing y1 = x1 in affine coupling layer to y1 = s1*x1 + u1 (Actnorm layer likes). This is reasonable. In affine coupling layer, there always a half remains unchanged, it could be a bias.

naturomics avatar May 22 '19 12:05 naturomics

So if i replace the dynamic linear transform with a affine coupling layer and a actnorm layer,the result should be better.Glow consists of a affine coupling layer and a actnorm layer each step.I still don't understand why your model better than Glow on the Imagenet dataset.

xc-7984 avatar May 26 '19 09:05 xc-7984

Hello, I just wanted to follow up on this.

I feel as if I'm missing something important here. When K=2, is your model exactly the same as Glow, except for the fact that in the affine coupling layer, you have h(x_1) = s_1*x_1+u_1 instead of h(x_1)=x_1 in Glow?

lukemelas avatar Jun 19 '19 02:06 lukemelas

@lukemelas The changes in our best case (K=2) compared to Glow can be concluded as three points:

  1. in the affine coupling layer, we choose h(x_1) = s_1*x_1+u_1 instead of h(x_1)=x_1. We found any simple invertible h() can improve the model very significantly, there are more choices such as invertible 1x1 conv, invertible activation function (we didn't discuss these choices because we had not yet tested them at the time publishing our DLF paper, we will discuss it together with other important contributions in our next publication).
  2. we removed actnorm layer between the 1x1 conv layer and the coupling layer, as it is the special case of dynamic linear transformation without data-parameterization.
  3. we changed the NN structure slightly for training stability (and some optimization details such as learning rate).

I think our other novel contributions are also important:

  1. conceptually we connected the affine coupling layer and the AR/IAR transformations, as they are the extreme forms of dynamic linear transformation.
  2. conditional DLF allows us to control the mapping between the latent and the observation space. I can see some excellent applications utilizing this property.

naturomics avatar Jun 19 '19 05:06 naturomics

Thanks for the quick and thorough response!

lukemelas avatar Jun 19 '19 05:06 lukemelas

Your response also helps me.

yuffon avatar Jul 15 '19 13:07 yuffon