CTGAN: Modeling Tabular data using Conditional GAN
Modeling Tabular data using Conditional GAN
Lei Xu, Maria Skoularidou, Alfredo Cuesta-Infante, Kalyan Veeramachaneni
NeurIPS 2020
cited by ~120
Synthesizing Tabular Data using Conditional GAN
Master thesis by Lei Xu
Tabular Synthetic Data Generation using CTGAN | Vivek Maskara
video
GANで偽のテーブルデータを生成する - Qiita
TGAN, CTGANの使い方メモ - Qiita
Synthetic Data 02 - Generating Synthetic Tabular Data | Project Alesia
implementations
https://github.com/sdv-dev/CTGAN
Differential privacy · Issue #55 · sdv-dev/CTGAN · GitHub: DP実装は今のところなし
smartnoise-sdk/dpctgan.py at main · opendp/smartnoise-sdk · GitHub
adds Differential Privacy to CTGAN
GitHub - Diyago/GAN-for-tabular-data: We well know GANs for success in the realistic image generation. However, they can be applied in tabular data generation. We will review and examine some recent papers about tabular GANs in action.
example
https://github.com/sdv-dev/SDV/blob/master/tutorials/single_table_data/02_CTGAN_Model.ipynb
https://github.com/sdv-dev/SDV/blob/master/tutorials/single_table_data/04_TVAE_Model.ipynb
https://gyazo.com/9423ec5fc5d05de4498163bf5feb4bc8
Generator
最初は乱数ベクトルからスタートし生成したtabular dataをdiscriminatorが本物と判別するように学習
Critic(学習時のみ)
Real Dataは本物と判別し、Synthetic Dataは偽物と判別するように学習
Conditional
合成データが本物か合成かに対する教師あり学習であり、このtabular dataがどのカテゴリに対応するかの教師あり学習は行っていない。
ラベル情報もinputすることで、どのカテゴリを学習するかに関わらず特徴を学習
特徴:generatorの潜在変数
generatorの潜在変数とカテゴリ情報を切り離して考え、カテゴリ情報の条件下での生成モデル、識別モデルを生成する必要。
Network Structure
https://gyazo.com/c1387c336155085e9216f63fa622b9cb
表形式データの特徴
Mixed data types
離散カラムと連続カラムを同時に扱うためにGANはoutputにsoftmaxとtanhの両方を適用する必要がある
Non-Gaussian distributions
imageのpixel値はmin-max transformationを使って[-1, 1に正規化できるgaussian-liike分布に従うが、tabularの連続値は従わない。
Multimodal distributions
カラムの最頻値の数を推定するため、カーネル密度推定を利用。複数の最頻値を持つからむは57/123あった。vanilla GANは全ての最頻値をモデル化できないことがわかっている
Learning from sparse one-hot-encoded vectors
Highly imbalanced categorical columns
メジャーなカテゴリが90%以上の行で登場するなどの偏り
#SyntheticData