Data Synthesis based on Generative Adversarial Networks [2018] 논문 리뷰 - 2

2019. 5. 16. 00:43관심있는 주제/GAN

728x90

이전에 1편은 여기에 있습니다! https://data-newbie.tistory.com/103?category=686943

 

Data Synthesis based on Generative Adversarial Networks [2018] 논문 리뷰 - 1

이 논문을 보는 이유 저번에 리뷰를 했던 https://data-newbie.tistory.com/98?category=686943 GAN 논문에서 해당 논문이 Table 데이터에 CNN 적용했다는 글을 보고 읽기 시작했다. 일반적으로 Table 같은 정형.

data-newbie.tistory.com

저번 시간을 아주 간단하게 요약하면 다음과 같습니다.

  1. tabular data에 CNN을 적용할 수 있는 구조로 형태를 바꿉니다.
  2. Generator , Discriminator , Classifier라는 3개의 네트워크로 이뤄져서 학습합니다.
  3. Privacy와 데이터 quality 사이에서 어떻게 밸런스를 잡을지에 대한 이야기를 합니다.

4.2부터는 Loss functions 이야깁니다.

4.2 Loss functions

lossfunction에는 뉴럴 넷을 학습시키는 철학을 담고 있다고 표현하면서 loss function이 중요하다고 말합니다.

original lossDCGAN Loss 반영

Information loss는 진짜 데이터와 생성 데이터 간의 통계량 차이를 이용해서 정의합니다.

Classification Loss는 합성으로 생성된 라벨과 진짜 예측한 라벨 사이의 차이를 이용해 Loss로 정의합니다.

 

 

Generator는 이 방법이 저자의 논문에서는 가장 중요하기 때문에 이 3가지 loss를 다 훈련시킨다고 합니다.

4.2.1 Original Loss는 DCGAN을 반영하고 그냥 일반적으로 아는 GAN Loss 인 것 같습니다.

4.2.2 Information Loss

  • discriminator network sigmoid 하기 전에 feature를 뽑는다.
  • 이 feature가 결국 진짜냐 가짜냐를 구분하는 중요한 키가 된다고 함.
  • 이렇게 뽑고 평평하게하면 high-dimensional vectors가 됨 이것을 f라고 합

실제 데이터와 가짜 데이터를 넣었을 때 마지막 Dicriminator Layer 가지고 평균하고 L-2 NORM을 합니다.

하는 이유는 두 평균 features에서 차이를 측정하기 위함입니다. 

사실 평균은 first-order statistics가 됩니다.  (mgf 관련해서 알아보시면 아실 수 있습니다) 

2차 order statiscs는 표준편차입니다. 그래서 원래는 적률 n차까지 다 같다면 같은 분포라고 말 할 수 있다고 하는데요. 

여기선 쉽게 구할 수 있는 2차까지만 하는 것 같습니다.

  • 다시 말하자면 마지막 식처럼 이 식을 0으로 만들면 똑같은 분포로 만드는 것이고, 아니게 만들면 퀄리티가 떨어지는 데이터를 만들 수 있어서 controllable하다고 하는 것 같습니다.
  • 마지막 Loss는 결국 hinge loss가 됩니다.  \sigma_mean과 sigma_sd에 따라서 퀄리티를 결정할 수 있습니다.

 

4.2.3 Classification Loss

실제로 저자가 해보니, 생성된 데이터가 현실 데이터와 말이 안 맞는 것을 발견했다고 합니다.

이런 부분에 대해서 제약을 주는 것이 Classificaiton Loss 입니다.

  • l가 remove, C라는 익숙하지 않은 것이 나오는데요
  • l은  인풋 값에 따란 label을 나타내는 함수인 것 같고
  • remove는 데이터에서 인풋을 빼는 겁니다. 
  • C는 classifier network가 분류함으로써 나온 예측된 레이블입니다.
    • 결국 이것으로 실제 라벨과 생성 라벨의 차이를 측정 가능합니다.
  • 만약 multitple 이 된다면, multi-task learning을 해야 한다고 합니다.

 

4.3 Training Algo

  • GPU로 동시에 Loading 후 학습
  • SGD 사용, Batch 사용
  • w는 0.99 사용
  • hypercube space
  • 문제 발생
    • Batch를 사용하다 보니 global mean과 sd를 구할 수 없기 때문에 아래와 같이 수정합니다.

4.5 Membership Attack for table GAN

  • Classfier보다는 Discriminator라고 합니다.
    • 해보니 더 나았다고 한다
  • 앞에서 말한 membership attack에 대해서 다음과 같이 가정한다.
    • attacker는 모델을 어택 해서 많은 결과물을 얻을 수 있다.
    • 알고리즘이 어떻게 돼있는지 알 고 있다.

  1. T는 훈련된 table-GAN 모델이고 이것을 attacker가 파헤치기를 원한다고 하자. 일단 훈련 후 합성 데이터를 내보냅니다.
  2. Generator에서 여러 개 얻은 값을 shadow train table이라고 일단 정의합니다.
  3. 생성 데이터를 통해 많은 shadow tableGAN을 학습시킵니다.
  4. 각각의 학습된 것에서, shadow training record r_i에서 Discriminator를 태워서 Attack Train Data를 만듭니다. 
    1. 여기서 D(r_i)는 discriminator라고 진짜라고 할 확률입니다.
    2. 마찬가지로 g_i test record를 넣어서 D(g_i)를 만듭니다. 
      1. 여기서 test set은 model compatibility를 위해 따로 준비했다고 합니다.
  5. 그래서 이 두 개를 합쳐서 attack train data라고 하고
  6. 생성된 attack train data를 활용해 attack model을 학습시킵니다. 이제 attack T를 할 준비가 됐다고 합니다.

 

5. 실험

Data: payroll, health, personal records, and airline market.

anonymization/perturbation: ARX sdcMicro and other generative models

 

이 실험에서 저자가 주장한 논문이 best balance between privacy level and model compatibility.이라는 것을 보인다고 합니다.

 

처음에 데이터에서 대해서 멀로 했는지 설명을 하고 

5.1.2 평가모델

  • 다양한 관점에서 평가하려고 노력했다고 합니다.
  • Privacy-related evaluation metrics are as follows:
    • 앞에서 나온 risk evalutation(2.2)로는 평가를 못하니 distance to the closet record(DCR)이라는 하는 방법을 사용합니다. 이 것은 실제 original table과 합성으로 만든 데이터 간의 유클리디안 거리로 평가하겠다는 것입니다. DCR=0이라는 것은 실제 정보가 많이 노출 됐다는 거라서 좋지 않은 것입니다.                                  저자는 여기서 normalize를 했다고 하는데, 이유는 각 feature에 대해서 동등하게 표현하려고 한다고 합니다. 예를 들어 회귀분석에서 각 변수에 표준화를 해서 상대적 비교를 가능하게 하는 것처럼요!
    • membership attack에 대해서는 기존의 알고리즘으로 적용이 불가능해서 tableGAN만 해봤다고 합니다.
  • Data utility-related evaluation metrics are as follows:
    • Statistical Comparison
      • 실제 테이블과 합성된 테이블 간의 통계적 유사성을 비교한다고 합니다.
        • 여기서는 각각의 변수의 누적분 포로 합니다.
    • Machine learning score similarity is to check the model compatibility.
      • classification이나 regression parameter를 고정시킨 뒤 그것을 활용하여 실제 테이블과 생성된 테이블을 훈련시켰을 때 두 경우의 대해서 accuracy가 같다면, 우리는 compatible  하다고 할 수 있다고 합니다. 여기서 F-1(classification), MRE(regression)
      • model compatibility test에서 grid search는 하지 않고 했다고 합니다.
    • 또한 classical anoymization tech는 statistical comparison과 machine learning score similarity test에 대해서 잘 된다고 합니다.
      • 이유는 민감하게 속성이 변화지 않는다고 합니다.
      • 저자의 모델이  다른 것들보다 잘 됐다고 합니다.

statistical comparison에서는 각 변수의 누적을 본다 했는데요.  음 여기선 머가 잘된 건지 먼가 잘 따라가긴 하는데 이것이 너무 따라가면 또 안 좋다는데... 음 좋다고 할 수 있는지 모르겠습니다.

저자는 다른 것들보다 자기 것이 좀 더 넓은 범위에서 현실적으로 나왔다고 합니다. 

 

여기서 주장하는 것은 자기의 논문은 high privacy를 하면 기존과는 다른 데이터가 생성이 되고, low privacy를 하면 기존 데이터와는 유사한 데이터를 만든다는 것을 알 수 있는 그림인 것 같습니다.

나머지는 바꾼다고 해도 영향을 주지 못하네요

 

5.3.1 Distance to the Closet Record

 

  • 왼쪽 그림
    • 가짜와 진짜 간의 거리를 잽니다
    • 큰 편차가 의미하는 것은 비록 평균 거리는 크지만 매우 가까운 (r, c) 쌍이라고 합니다.
    • 다른 것들에 비해 안정적인 평균과 편차를 가질 뿐만 아니라 one2 one 관계도 아니어서 장점이라고 합니다.
  • 오른쪽 그림
    • membership attack 관련 내용입니다.
    • 보면 알겠지만 사생활을 보호하면 잘 예측을 못하는 것을 알 수 있습니다.
    • class에 의존되지 않게 된다고 합니다.

드디어 결론

  • 이 논문은 민감한 속성에 대해서도 model compatibility를 가지면서 생성을 시킬 수 있다고 주장합니다.
  • 딥러닝으로 생성 모델을 처음 시도했다고 합니다.
  • 20분만 있으면 학습이 완료된다고 합니다.
    • 오홍 빠르게 생성하고 훅 빠질 수 있는??
  • model compatibility test에서 best trade off를 보여줬다 합니다.
  • 나중에는 string 같은 데이터를 생성하는 것으로 확장시킨다고 합니다.

내 생각

일단 이 논문을 읽은 이유는 CNN을 써서 신기해서 읽어보게 되었다.

결국 TABLE에서 CNN을 왜 써도 되는지 나만 이유를 모르나 보다...

난 안 된다 생각했는데... 으음... 그래도 먼가 적용 가치가 있다고 생각한다. 

결국 CNN도 가면 갈수록 추상화를 하는 것이니깐 Layer를 깊게 쌓으면 추상화가 잘 돼서 결국 모델을 잘 representation 해서 분류가 잘 될 거라고 기대한다 ㅎㅎㅎ

 

다음에는 RNN을 사용해서 Tabular Data를 Generate 한 논문을 읽어봐야겠다.

구현은 언제 다 살펴보지..............

728x90