/semisupervised_timeseries_infogan

A tensorflow implementation of informative generative adversarial network (InfoGAN ) to one dimensional ( 1D ) time series data with a supervised loss function. So it's called semisupervised Info GAN.

Primary LanguagePythonMIT LicenseMIT

semisupervised_timeseries_infogan

A tensorflow implementation of Informative Generative Adversarial Network (InfoGAN ) to one dimensional ( 1D ) time series data with a supervised loss function. So it's called semisupervised Info GAN.

Refer to

  1. InfoGAN (https://arxiv.org/abs/1606.03657 )
  2. AC-GAN ( Auxiliary Classifier GAN )(https://arxiv.org/abs/1610.09585)

This work is intended to be useful for time series data augmentation.

Dependencies

  1. tensorflow = 1.0.1
  2. sugartensor = 1.0.0.2
  3. matplotlib = 2.2.3

Sample Data

You can use any csv formatted time series data as following.


time,serie,target
1,11.1,0
2,12.2,2
3,13.0,1
4,14,0,2
     .
     .
     .

This file should be saved at 'asset/data/serie_target.csv' before you train the network.

Training the network

Execute


python train.py

to train the network. You can see the result ckpt files and log files in the 'asset/train' directory. Launch tensorboard --logdir asset/train/run-MMDD-HHmm to monitor training process.

Generating sample time series data

Execute


python generate.py

to generate sample time series data. The graph image of generated time series data will be saved in the 'asset/train' directory.

Generating sample time series data

Execute


python generate.py

to generate sample time series data. The graph image of generated time series data will be saved in the 'asset/train' directory.

Generated time series data sample

This graph of time series was generated by InfoGAN network. You may know that it's difficult to discriminate generated time series data from real time series data.

Fake time series data

Decomposed time series data (depending on your data and labels)

Based on

  1. timeseries_gan
  2. supervised_infogan