ratschlab / RGAN

Recurrent (conditional) generative adversarial networks for generating real-valued time series data.
https://arxiv.org/abs/1706.02633
MIT License
639 stars 181 forks source link

RC-GAN conditioned on Real-Input valued data (or sequence in/sequence out)? #8

Closed ArturoDeza closed 7 years ago

ArturoDeza commented 7 years ago

After looking over the code it seems like the conditional part of the RC-GAN is more or less something like a one-hot vector encoded switch that can choose what signals or time-series data I want to generate from a family of distributions: See: https://github.com/ratschlab/RGAN/blob/master/model.py#L36

I am wondering if the model would still theoretically work under a sequence-to-sequence like fashion with input real values and output real values, or what is the limitation (if any) in the current implementation, that prevents this to be a natural extension.

corcra commented 7 years ago

Right now, I think the only limitation to using continuous-valued conditional values is that, as you observed, sample_C only returns integers. Otherwise, the way we're incorporating the conditional information is pretty simple - we just concatenate it onto the inputs at each time-step (see e.g. https://github.com/ratschlab/RGAN/blob/master/model.py#L240).

So, you could make the generator feed back into itself by making cond_dim equal to num_generated_features and passing the outputs back in. It might need a bit more work because we have static conditional information at each batch, but it should certainly be doable. You'll also need to update sample_C to generate these conditional values, but you could just sample from the generator to do that.

In fact, @cresteban was playing around with using real-valued conditional information while we were developing the model, and we think you could do some really interesting things with it, but we left it for 'future work'. :)