2019. 6. 26. 13:46ㆍ관심있는 주제/GAN
Chapter 3
Generation of Synthetic Data with GANs
이 연구에서 가장 기여한 점은 GAN framework를 기반으로 한 포괄적인 데이터 생성 접근의 Design과 Test에 있다고 한다.
3.1 The data generation process
8개 단계로 진행
Input은 생성할 데이터의 셋에 해당하는 2차원 관련 구조의 집합인 반면,
Output은 동일한 포맷의 합성 데이터로 채워진 유사한 집합이다.
- 데이터 types와 schema를 탐지하는 것부터 시작.
- 데이터 속성들 사이에서 co-relation을 잡을 수 있게 Pattern Analysis를 수행해야 한다.
- Input Data를 기계 학습 모델과 데이터 생성에 사용되는 통계 기능으로 이해할 수 있도록 feature engineering process를 따른다.
- 필요한 ML Model을 훈련하고 저장하고 검증한다.
- 그 후에, 데이터 생성은 최고로 훈련된 모델을 사용해서 시행된다.
- feature revese engineering의 과정을 시행한다. 그래서 Output data가 Input data와 유사한 형태로 제시가 된다.
3.1.1 Schema detection
Input Data가 Processing Pipeline을 통과한 후, 첫 번째 단계는 데이터셋들의 자동 스키마 검출로 이루어진다.
데이터 타입이 Integer인지, Numeric인지, Character이지... 그리고 또한 각각 속성이 continuous, cateogorcal , free tex인지도 검출해야 한다.
3.1.2 Pattern analysis
이 단계의 기본 개념은 데이터 세트의 속성 간의 상관관계를 감지하는 것이다.
이것은 두 가지 의도를 염두에 둔 상관 행렬로 계산된다.
첫 번째는 나머지 속성에 대한 각 속성의 영향 수준을 결정한 다음, 각 기계 학습 모델에 대해 어떤 속성이 영향력 있는 조건으로 사용될 것인지를 정하고, 마지막으로 이러한 속성이 훈련되는 우선순위를 결정하는 것이다.
두 번째는 생성된 데이터셋들과 기존 데이터 셋의 상관 행렬로 이루기 위해 평가하는 목적이 있다.
3.1.3 Feature engineering
The feature engineering process는 모든 기계 학습 또는 통계 모델에 의해 이해되고 가장 잘 처리될 수 있도록 데이터 세트의 모든 속성을 인코딩하는 것으로 구성된다. 이 과정은 다양한 STEPS이 있다.
- 필요한 변형(Log변환, cube root)을 수행하고, 데이터셋의 왜곡된 값의 속성을 탐지합니다
- 데이터셋의 표준화를 하는 것은 많은 머신 러닝에 필수이다.
- 왜냐하면, 정규분포를 따르지 않으면 나쁘게 행동하게 된다.
- Continuous는 평균 0 , 편차 1
- Categorical은 Onehot으로 한다.
- 마지막으로 text가 있다면, encoding 후 Onehot을 해준다. (disctionary에 상응하는 값으로 바꾸고)
3.1.4 Model training
데이터 생성이 머신러닝 기반으로 한 거라면, 이 단계가 관련이 있다.
각각의 데이터 속성에 대해 원본 데이터의 랜덤 샘플 subset으로 하나의 모델이 생성되고 훈련되어야 한다.
훈련은 미리 정해진 iteration 수로 시행되고, 결국 잘된 것을 쓴다는 이야기
3.1.5 Data production
생산적인 상태에서 모델이 훈련될 때, 정의된 데이터셋의 새로운 생성 데이터를 만드는 것이 가능하다.
새로운 합성 데이터 세트는 3.1.2단계에서 결정된 순차적 순서로 속성별로 생성될 것이다.
프로세스의 첫 번째 입력은 생성할 기록의 수입니다.
데이터셋의 i번재 각 속성에 대해 model M은 미리 정의된 기준에 따라서 선택되어집니다.
(예를 들어 마지막으로 훈련된 거라든지, Loss가 가장 작았던 모델 M)
이 입력은 사용된 데이터 생성 접근방식에 따라 Train 또는 노이즈 데이터 중 하나로 채워지는 벡터 Vi와 선택적으로 다차원 조건 벡터 Ci의 형태로 제공되며, 이전에 생성된 속성의 동기적으로 생성된 데이터로 채워진다.
마지막으로, 각 모델 Mi의 출력은 Ci와 즉시 연관되는 속성 i에 대한 새로운 합성 레코드 세트를 가진 또 다른 벡터 Oi이다.
3.1.6 Feature reverse-engineering
데이터 생성 후 transform 한 것은 다시 reverse를 해줘야 하는 단계이다.
그런 다음, 데이터 생성 프로세스가 완료되기 전에 새로운 합성 비 정규화된 데이터 세트를 입력의 원래 형식으로 변경한다.
3.2 Implementation
2개의 핵심 파트를 소개하는 단계이다.
3.2.1 A GAN-based synthetic data generator
GAN을 기반으로 한 것이 주요 접근이다.
그러나 여기서는 Original GAN이 아닌 WGAN, WCGAN으로 2개의 변종된 GAN 모델로 한다.
# Loss Function
vanilla gan은 cross entropy loss 기반으로 한다.
discriminator가 가짜냐 진짜냐를 잘 분류하는 것이 Loss가 된다.
하지만 Unstable 한 것이 보였기 때문에 Wasserstein distance를 기반으로 한 WGAN으로 더 안정적인 것으로 하려고 한다. Wasserstein distance은 실제 분포와 가짜 분포 간의 얼마나 차이가 있는지 나타내는 척도이다.
많은 경우에 우수한 성능을 내고 있다.
그래서 흔히 critic이라 discriminator로 바뀌어서 불린다.
# Model definition
여기선 WGAN이므로 Lossfunction은 Wasserstein distance를 사용한다.
나머지 측면은 특정 조건에 기초한 데이터 생성 능력의 통합과 범주형 데이터 생성 능력이다.
여기선 Fully connected layers 사용하고, 그 수는 parameter는 실험을 통해서 알아냅니다.
반면, Generator의 Out 계층은 두 변수의 네 가지 시나리오에 따라 다르다.
- conditonal vector가 있다면,
- categorical과 continuous를 생성해야 한다면
continuous를 생성하려면, sigmoid를 쓰면 되고,
discrete를 생성하려면 softmax를 하면 된다.
# Adversarial Training
WGAN 설명
3.2.2 A baseline synthetic data generator
# Inverse Transform Sampling
3.3 Data collection
여러 가지 데이터에 관한 설명인데, 일단 한번 읽어보시면 될 듯!
3.4 Experiments
The research question that this project intends to answer is: Can Generative Adversarial Networks be used to generate synthetic continuous, discrete and text data, effectively and efficiently, while preserving the underlying distribution and patterns of the real data?.
이 프로젝트가 답하고자 하는 연구 질문은 다음과 같다: 실제 데이터의 기본 분포와 패턴을 보존하면서, 종합 연속, 이산 및 텍스트 데이터를 효과적이고 효율적으로 생성하기 위해 생성되는 CI 네트워크를 사용할 수 있는가?
3.4.1 Test system
실험 5 Neural Network hidden layers
3.5 Evaluation
실제 데이터와 새로운 데이터의 correlation matrices 사이에서 Euclidean distances를 계산해서 pattern preservation을 평가하는 방식이다.
기존 데이터 분포의 보전은 Wasserstein metric을 지표를 사용하여 평가한다.
3.5.1 Overall metrics
전체 성능을 테스트하기 위해 고려되는 지표는 모델 훈련 시간(초), 데이터 생성 시간(초), 생성된 중복 기록 수, 원래 데이터 세트에서 반복된 레코드인 생성 데이터 세트의 레코드 수입니다.
3.5.2 Correlation (Euclidean) distance
원래 데이터 집합의 특성과 생성된 데이터 집합의 특성을 사용하여 상관 계수를 계산한 경우, 이러한 유사성을 측정하는 적절한 방법은 쌍방향 유클리드 거리의 합계를 계산하는 것이다.
이러한 결과는 새로운 합성 데이터 세트의 원래 데이터 세트의 속성 사이에서 발생하는 고유 패턴의 보존을 측정하는 적절한 방법이다.
이 Metrics가 낮을수록 데이터 생성 도구는 패턴을 더 잘 보존한다.
3.5.3 Wasserstein distance
두 분포 사이에 차이를 측정하는 방법.
3.5.4 Perplexity
직관적으로, 그것은 모델이 얼마나 놀랐는지(또는 당황했는지) 측정한다.
적으면 적을수록 두 개가 비슷한 것을 말한다.
https://data-newbie.tistory.com/194?category=686943
https://data-newbie.tistory.com/195?category=686943
https://data-newbie.tistory.com/197?category=686943
https://data-newbie.tistory.com/199
'관심있는 주제 > GAN' 카테고리의 다른 글
A Survey on GANs for Anomaly Detection 리뷰 (1) | 2019.06.29 |
---|---|
Generation of Synthetic Data with Generative Adversarial Networks - 리뷰 3 [Chapter 4] (0) | 2019.06.28 |
Generation of Synthetic Data with Generative Adversarial Networks - 리뷰 1 (0) | 2019.06.25 |
The Synthetic data vault - 논문리뷰 (0) | 2019.06.25 |
[Review] Deep learning method for synthesis of tabular data (0) | 2019.06.25 |