[ TGAN ] Modeling Tabular data using Conditional GAN - Review (1)

2019. 8. 25. 21:45관심있는 주제/GAN

728x90

여러 가지 GAN을 패키지화해서 내놓고 있다.

벌써 이렇게 정형화된 툴이 나올 수 있는 건지 의구심이 들긴 하지만 그래도 패키지화 했다는 게 충격이고 유용한 것 같다.

torch로 구현이 되어있는데, 역시 새로운 기술에 대해서는 torch로 많이 하시는 것 같으니 torch를 시작해야하나싶다 ㅠ

여기서는 보통 Missing value를 처리를 하고 GAN 모델에 태우는 것 같다.

역시 하면서도 어려웠던 것은 기존 Missing 에 대한 처리와 Categorical 변수 그리고 얼마 없는 Category 까지도 생성할 수 있는 디테일이 떨어진다.

이런 부분에 대해서 중간 정도까지 읽어봤는데 ,어느 정도 저자들의 생각이 들어있어서 좋은 것 같다.

https://github.com/DAI-Lab/TGAN  https://arxiv.org/pdf/1907.00503.pdf

 

Abstract

실제적인 생성 데이터를 생성하는 것과 테이블 데이터에서 행들의 확률 분포를 모델링하는 것은 어려운 일이다.

테이블 데이터는 discrete columns와 continuous columns으로 대게 이루어져 있다.

Continuous 같은 경우에는 봉우리가 여러 개인 것들이 발생할 수 있고,

Discrete 같은 경우에는 모델링하기 어렵게 Imbalanced로 이루어져 있다. 

 

기존의 존재하는 통계적 모델과 딥러닝은 이러한 데이터를 적절하게 모델링하는데 실패했다.

여기서 저자는 TGAN이라는 것을 소개한다. 

TGAN 은 위에서 말한 문제를 해결하기 위해 Conditional GAN을 사용한다. 

공평한 비교를 위해 8개의 데이터셋에서 7개의 simulated를 비교해본다.

다른 딥러닝 방법들은 베이지안 방법들을 능가하지 못했지만, TGAN은 능가하는 성과를 보였다.


Introduction

생성 모델이 굉장한 가능성을 보이고 있는데, 확률 분포를 기초로 한 이미지나 테스트 같은 경우에는 높은 품질의 샘플이 생성되었다.

GAN의 아이디어는 기존 통계적 모델링 방법론보다 더 유연성을 제공한다.

그래서 이러한 GAN들이 기존 통계적 모델링 보다 더 나은 방법을 제공할까에 대한 질문이 나오기 시작했다.

그래서 이러한 방법론에 대한 평가를 하기 위해 최신 기술 3가지와 비교한다고 한다.

비교 목적으로 Bayesian network를 사용한 2가지 베이스 라인 방법을 만들었다. 

생성된 것과 실제 데이터 둘 다 사용하여 테스트를 진행 후에 우리는 표 데이터를 모델링하는 것이 GANs에게 고유한 문제를 야기하여, 동기적으로 생성된 데이터의 기계 학습 효율성을 포함하여 여러 지표에서 기준선 방법에 미치지 못한다는 것을 발견했다.


어려움

1. discrete와 continuous 칼럼들을 동시에 생성하는 것에 있었다.

2. 각각의 칼럼에서 multi-modality를 가진다.

3. Categorical column의 심각한 imbalance를 띄고 있다. 

 

이러한 어려움들을 해결하기 위해서, 이 논문에서 TGAN을 제안했다. 

해결하기위해서 새로운 기술을 도입했는데, 

가역 가능한 데이터 변환, 신경 네트워크에 대한 구조적 변화, 그리고 새로운 조건부 GAN을 채택하여 데이터 불균형을 해결하는 훈련 절차 강화.

 


기여한 점

(1) Conditional GANs for synthetic data generation. 

mixed-type에 데이터 생성할 때의 문제점 해결을 위해 VAE를 채택했다고 한다.  

VAE는 generator를 build 하는 데 사용하고 심지어 추가적인 이득으로는 우리는 이것을 TVAE라고 불렀고

TGAN이 TVAE보다 3배 정도 좋았다고 한다.

 

(2) A benchmarking system for synthetic data generation algorithms

benckmark 해서 비교하였고, opensource화 했다.


2. Related Work

GAN 위주로만 /

medGAN : autoencoder + GAN (heterogeneous non-time-series continues or binary)

ehrGAN : augmented medical records

tableGAN :  label columns 최적화하기 위해 CNN을 사용

PATE-GAN :  private synthetic data를 다르게 생성하기 위해

 


3. Challenges with GANs in Tabular Data Generation Task

데이터 생성의 목적은  표 데이터 T로부터 Generator를 학습을 해서 생성 표데이터 T(syn)을 만드는 것이다.

표 데이터 T는 N_C (Columns) N_D(Discrete)로 이루어져 있다.

이 랜덤 변수들은 우리가 알지 못하는 joint distribution으로 되어있다. P(C_N , D_N)

한 행은 다음과 같다 r = (c_1 ,... c_n , d_1 ,... , d_n) 

T 데이터는 train/ test로 되어있다. train으로 Generator를 학습시키고 G로부터 행들을 샘플링해서 사용한다. 

 

두 축으로 Generator를 평가한다고 한다.

  • Likelihood fitness
    • Columns in Tsyn follow the same joint distribution as T train.
    • T train Joint 분포를 잘 따르는지 확인
  • Machine learning efficacy
    • We train a classifier or a regressor to predict one column using other columns as features. Such classifier or regressor learned from Tsyn can achieve a similar performance on T(test), as would a model learned on T(train).
    • 다른 칼럼들로 하나의 칼럼을 예측하는 regressor를 훈련시킨다. 
    • 이렇게 T(syn)으로 학습된 Classifier와 Regressor는 T(test)에서도 유사한 성능을 달성한다. (학습은 T(train)으로 한 상태)

우리는 이러한 과제를 해결하는 데 필요한 설루션의 복잡성을 증가시키는 순서로 강조한다.

 

현재 나온 모델들과의 비교!

C1. Mixed data types

  • 실제 데이터는 mixed type으로 이루어져 있다(continuous , ordinal , categorical)
  • 이러한 discrete와  continuous를 생성하기 위해 softmax와 tanh를 outputut에서 사용한다.

C2. Non-Gaussian distributions

  • 이미지에서는 pixel value를 Gaussian 분포를 따른다. 그래서 (-1, 1) min-max 변형을 한다.
  • tanh는 보통 이 범위에서 마지막 layer에 배치한다.
  • Continuous Variable 은 일반적으로 non-Gaussian 분포를 따르고 긴 꼬리 분포를 가진다. 
    • 그러므로 대부분 생성된 값이 0 주변으로 있지 않다. 
    • 평평한 곳에 위치한 tanh의 gradient 값은 일반적으로 gradient 포화 현상으로 알려졌다. 이러한 상태에 있게 되면 모델은 더 이상 학습을 하지 않는다.

C3. Multimodal distributions

  • Continuous 칼럼은 보통 mutiple modes를 가지고 있다. 
  • 일반 GAN은 이러한 다중 모드가 있을 경우 모든 mode를 잘 생성하지 못한다. 
  • 이러한 문제를 해결하기 위해서 C2, 에서 mode-specific pre-processing 기술을 사용했다. 
  • 그리고 model collapse 문제를 해결하기 위해 PacGAN를 사용했다.

C4. Learning from sparse one-hot-encoded vectors. To

  • non-ordinal categorical columns를 학습시키기 위해서 categorical 변수를 one-hot vector로 변환한다.
  • 합성 데이터를 생성할 때, 생성 모델은 softmax를 사용하여요 모든 categories 분포를 생성한다.
  • 이것은 GANs에서 문제가 되는 것으로, 사소한 차별은 행의 전체적인 실체를 고려하는 대신 분포의 Sparse 확인함으로써 단순히 실제 데이터와 가짜 데이터를 구별할 수 있기 때문이다.
  • TGAN은  모든 categorical변수들에 대해서 spare 하고 미분 가능한 분포를 생성하기 위해서 gumbel-softmax를 사용했다.

C5. Highly imbalanced categorical columns.

  • 대부분 Categorical 칼럼은 Imbalanced 한 분포를 따른다. 그렇다 보니 mode collapse가 발생한다.
  • 사소한 부분의 Categorical class를 놓치는 것은 데이터 분포의 겨우 작은 변화를 야기한다.
  • 그러나 자료의 불균형은 사소한 부분에 대해서 학습을 할 수 있는 기회를 충분하게 가지지 못한다.
  • critic network는 PacGAN을 사용하는 것 같이 mode collapse를 방지하는 모델을 사용하지 않는다면 이러한 부분에 대해서 탐지를 못할 것이다. 
  • 위의 알고리즘은 대부분 두드러진 category에 대해서만 학습을 하는 것을 방지하게 된다.
  • 얼마 없는 category 데이터에 대해서는 데이터 품질이 떨어질 수 있기 때문에 resampling이 필요하다.

 

2편에서는 나머지 부분인  TGAN Model이 어떻게 되어있고, 성능지표에 대한 결과 테이블 값들을 소개할 예정이다.

아마 다음부터가 실제 모델링에 대한 이야기를 할 것 같다.

## 2편은 아래...

https://data-newbie.tistory.com/250

 

[ TGAN ] Modeling Tabular data using Conditional GAN - Review (2)

https://data-newbie.tistory.com/249 Modeling Tabular data using Conditional GAN - Review(1) 여러 가지 GAN을 패키지화해서 내놓고 있다. 벌써 이렇게 정형화된 툴이 나올 수 있는 건지 의구심이 들긴 하지만..

data-newbie.tistory.com

 

728x90