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

2019. 5. 12. 16:14관심있는 주제/GAN

728x90

이 논문을 보는 이유

  • 저번에 리뷰를 했던  https://data-newbie.tistory.com/98?category=686943 GAN 논문에서 해당 논문이 Table 데이터에 CNN 적용했다는 글을 보고 읽기 시작했다.
  • 일반적으로 Table 같은 정형 데이터에 CNN은 적용하는 사례는 거의 못 봤지만 개인적으로 적용하면 어떻게 될까 항상 궁금했다.
  • 여담이지만, 실제로 먼가 같은 인풋에 여러 개의 Layer를 입힌 다음에 concat을 해서 convolution1d를 해봤는데, 결과는 공유를 못 할 정도로 엉망이었다.
  • 또 저자를 확인해보니 한국분들이 많으셔서, 굉장히 반가웠다.(나만..)

개요

이 논문은 다른 사람들에게 데이터를 공유 시 프라이버시에 대한 걱정이 중요해서 이것을 어떻게 해결할지에 대한 것을 바탕으로 시작한 논문인 것 같습니다.

 

그래서 프라이버시를 지켜주기 위해서 일반적으로는 다음과 같이 한다는데요

Some of the techniques that are being used to achieve privacy are to remove identifiers, alter quasi-identifiers, and perturb values.
(개인 정보 보호를 달성하는 데 사용되는 기술 중 일부는 식별자를 제거하고 유사 식별자를 변경하며 값을 혼란시키는 것입니다.)

 하지만, 이런 방법에는 2가지 문제가 있다고 합니다.

First, it has been shown that private information can still be leaked if attackers possess some background knowledge or other information sources.
Second, they do not take into account the adverse impact these methods will have on the utility of the released data. 
만약 도메인 지식이 있는 사람이 있다면 이것은 노출될 위험이 있고, 그 변경시킴이 따라서 어떻게 영향을 끼칠지 고려를 안 한다는 것입니다.

그래서 논문에서는 데이터의 누수에 대해서는 손상을 끼치지 않으면서 통계적으로 유사한 가짜 테이블을 생성하는  ` table-GAN ` 을 제안한다고 합니다.

여기서 평가 방식은 가짜 데이터를 통해서 머신러닝을 학습시킨 것이 실제 테스트 데이터랑도 유사하게 나온 지로 평가하겠다고 하고 이런 것을 propery model compatibility 라고 부를 거라고 합니다.

 

도입

항상 정보를 공유하거나 데이터를 받을 때 Privacy는 항상 중요한 이슈다.

보통 익명화 테크닉으로 식별 코드를 제거하고 준 식별자 코드로 수정한다고 한다.

하지만 그런 식별자 이외에 나머지는 종종 수정되지 않고 내보내 질 때가 있다.

또 다른 방법으로는 Data Perturbation 흔히 데이터를 흔드는 방식이 있는데, 이러한 방식은 데이터의 부정적인 영향을 줄 수 있다. 그리고 이런 방법은 노이즈를 제거하거나 인식을 발전시키는 방법이 벌써 나왔다고 하는 것 같다.

저자는 유용성과 프라이버시를 동시에 지키는 것은 굉장히 어렵다고 한다.

그래서 저자는 지금 핫한 GAN을 사용해서 한다 하고 다음과 같은 이점이 있다고 한다.

  • There is no one-to-one relationship1 between real records and synthetic records, and re-identification attacks are impossible.  
  • All attribute values are fake and safe from attribute disclosure.
  • Machine learning models trained using very carefully synthesized tables show behavior similar to that of models trained using the original table; they can replace each other (i.e., model compatibility). 
  • Synthesized tables can be shared with partners without any concerns of information leakage.

첫 번째는 진짜 데이터와 가짜 데이터가 1대 1 관계가 아니기 때문에 다시 이것을 복원하기 어렵다고 한다.

> 그렇다면 기존 방법들은 1:1 방법으로 했다는 이야기

두 번째는 모든 속성이 가짜라서 안전하다는 것이다.

세 번째는 잘 학습된 생성 데이터는 실제 데이터의 성능과 유사하게 나와서 대체 가능하다.

네 번째는 정보 노출 걱정 없이 파트너사에게 생성된 데이터를 줄 수 있다.

 

하지만 이러한 방법도 밝혀낼 방법이 있다고 하는데 그 방법은 Membership attack이라는 방법으로써, 머신 러닝 모델에 학습된 결과로써 train data를 추측하는 방법이라 한다. https://www.cs.cornell.edu/~shmat/shmat_oak17.pdf  

그렇다면 비식별화를 막고 속성을 드러내는 것을 막는 것이 의미가 없어질 것이다 ( membership attack 정확도가 높다면)

그러므로 저자는 자기가 고안한 방법이 앞에 말한 2가지(재식 별화, 속성 공개)와 더불어서 membership attack에도 강하다는 것을 보여주려고 한다.

 

일반 GAN과는 달리 3개의 Network로 이루어진다고 한다.(G, D , Classifier) 

Discriminator는 가짜와 진짜를 분류하는 Binary classification 

Generator는 Dicriminator를 속이기 위하려고 노력한다.

여기에 저자는 다음과 같이 적었다.

In our table-GAN, we add an additional classifier neural network to increase the semantic integrity of synthetic records. 우리의

테이블 -GAN에서 합성 레코드의 의미 적 무결성을 높이기 위해 추가 분류 자 ​​신경망을 추가합니다.

예를 들어 (콜레스테롤 = 60.1 , 당뇨 = 1)은 의미적으로는 정확한 기록이 아니다( 왜냐면 콜레스테롤 수치는 매우 낮아서 당뇨라고 진단할 수가 없다.) 이런 기록은 실제 데이터 셋에는 없는 기록일 것이다.

그래서 Classifer network를 추가해서 만들어진 것에 대해서 쉽게 결정하지 않게 만듭니다.

 

Loss가 핵심인데,  일반 Loss + Information Loss + Classification Loss를 더한다고 합니다.

일반 Loss. information loss, classification loss

Information Loss

  • 실제 데이터의 mean (first order), std( second order)와 생성 데이터의 값이 같아야 한다는 것이다 
    • 여기에서 maximum-margin 개념으로 hinge loss를 썼다고 합니다.

Classification Loss

  • 의미적으로 무결성 하기 위해서 만드는 Loss입니다.
    • 저자들은 하다 보니 프라이버시와 유용성 사이에서 밸런스를 맞추기가 어려웠다고 합니다.
  • 그래서 학습 과정에 더 복잡하게 만들었다고 합니다, 하지만 그렇게 오래 걸리지는 않는다고 합니다.

나중에는 table-GAN이 최고이다라는 것을 보여준다 합니다.

 

TABLE 관계형 데이터베이스의 테이블이고 그것은 컬럼은 속성값 , 행은 기록이다. 우리가 아는 일반 데이터를 생각하면 될 것 같다.
identifier  각각의 기록에 유일한 숫자를 할당한 것을 의미한다. 즉 rows가 다 다르다는 것을 의미한다
quasi-identifier  유일한 인식자(Identifier)가 아니다. 이런 것은 흔히 직업, 나이, ZIP code라 한다.

 

일반 적으 비식별화(re-identification)를 위해서 하는 것은 k-anonymity 방법으로 QID를 살짝 식 바꾸는 것을 의미한다 위의 예시와 같다고 할 수 있다.

Perturbation 은 통계적 공개 통제에 대해서 유명한 방법이다. 

약간의 노이즈를 더하는 방식이라 생각하면 될 것 같다. 그러나 기존 방식은 제거하는 게 나왔고 그다음에는 PRAM라는 것도 나왔다

결국 그 두 방식에는 문제가 있다고 하고, 우리가 사용한 딥러닝 방식을 통해서 하면 어떤 통계적 가설도 없이 의미적인 데이터를 만들 수 있다고 한다.

 

2.2 Risk Evaluation Methods

risk evaluation 방법은 독립적인 토픽이지만 결국 이것들도 anonymization과 perturbation으로 고안된 것들이라서 연관이 있다고 한다. 

하지만 우리 방식대로 사용하면 완전히 새로운 것을 생성하기 때문에 적용되지 않는다고 한다.

 

2.3 Generative Networks

table-GAN은 DCGAN 방법으로 고안됐다고 한다. 어떻게 CNN으로 할 수 있는지가 궁금하다

 

또 다른 논문에서는 RNN을 사용한다고 한다.

https://arxiv.org/abs/1703.06490

해당 논문에서는 CNN을 사용한다고 하는데!  

There is one famous example describing their difference. In computer vision, Red − τ = Pink3, where τ is a small number, is semantically valid (i.e., continuous data type) but in natural language processing, Penguin − τ = Ostrich cannot be defined (i.e.discrete data type). 
Thus, [15] cannot synthesize general relational databases. 
However, our method can generate both continuous and discrete values after some tricks.

(어떤 트릭을 쓰면 된다는 데 궁금하다)

3. OVERALL ARCHITECTURE

3.1 Security & Privacy Concerns to address

여기서는 re-identification , attribute disclosure, membership attack에 대해서 해당 저자의 논문이 얼마나 강한지 보여주는데 앞에 2개 (re-identification , attribute disclosure )은  저자의 논문 방식으로 하면 2개에 있어서는 강하다는 것을 알 수 있다.(정말 비슷하지만 새로운 것을 만드니깐)

To prevent membership attacks, we use the hinge loss for training the generator (see Equation (4)). If the quality of synthesized records are too high, attackers can easily infer about its original table. The role of the hinge loss is to slightly disturb the training process of table-GAN so that it converges to a point that balances the synthesis quality and the possibility of being attacked.

식 4

식 4번을 적용하면  membership attack에 대해서는 해결이 된다고 하는데, 만약 생성된 값이 매우 퀄리티가 높다면 attacker는 쉽게 실제 데이터를 추론할 것이다. 그래서 hingel loss의 역할은 학습 과정에서 약하게 왜곡을 주는 것이고, 어택을 받을 가능성과 퀄리티 사이에서 밸런스를 가지고 잘 수렴을 한다는 것이다.

 

3.2 Overall Workflow 

 

The overall workflow of our approach is presented in Figure 1.
It is processed in the following sequence:

1. Records in the original table are converted into square matrix form; if needed, we pad with zeros. 
For example, a record that consists of 24 values can be converted into a 5 × 5 square matrix after padding a zero. 
Other option is to input records in the original vector format and perform 1D convolutions. 
However, its synthesis performance is suboptimal due to its limited convolution computations, compared to the proposed strategy, in our preliminary experiments.
## 여기서 예로 든 것이 24개의 칼럼이 있다면 padding zero 후에 5x5 square matrix로 전환한다고 한다.  
## 한 record 1 x 24 -> pad -> 5x5 (square) 한구 조로 변경시킨다는 의미 (오....... 신기)
## 다른 방법으론 그 값에다가 그냥 1D convolution을 하겠다고 한다.. (오 해본 건데... 어떻게 잘 나온 거지?)##
(번역)그러나 우리의 예비 실험에서 제안된 전략에 비해 제한된 컨볼 루션 계산으로 인해 합성 성능이 차선입니다. 잘 된다는 의미인 듯? 2.

 The proposed table-GAN is trained using the converted square matrices — we will describe the details of the table GAN in Section 4.

3. The table-GAN generates many synthetic square matrices (i.e., synthetic records) that will be converted and merged into a table.

4. The generated fake table is shared with partners who will perform analyses and design machine learning models.

5. The machine learning model trained using the synthetic table should be able to replace the model trained using the original table. In particular, we call this property model compatibility.

 

 

4.1 Neural Network Architecture

DCGAN 에서 많이 영감을 얻었다고 합니다.

  • A generator neural network G to produce synthetic records that have the same distribution as that of real records;
  •  A discriminator neural network D to distinguish between real and synthetic records;
  • A classifier neural network C to predict synthetic records’ labels. We found that adding C helps maintain the consistency of values in the generated records.  For instance, a record with gender = “Male” and disease = “Uterine Cancer” can be prevented;  the classifier learns about the consistency from the original table.  There exist some other GAN models that have the same approach to use axillary classifiers [28]. They also showed that adding more classifiers can improve the generation quality significantly.  https://arxiv.org/pdf/1610.09585.pdf

4.1.1 Discriminator

여기서는 실제와 가짜를 분류하는 역할을 합니다. D에 CNN을 사용합니다.  각각에 3x3 커널을 사용합니다. 

현재 인풋을 네모난 정사각현 형태로 만들었기 때문에Thus, the layer output size is proportional to the number of filters in each layer.

The input to the first layer is a d × d matrix that represents one real or synthetic record. The discriminator is trained to predict 1 for real records and 0 for synthetic records after the last sigmoid layer.

 

4.1.2 Generator

G에는 Deconvolution Process를 사용합니다

uniform cube space에서 mapping을 해갑니다. 이렇게 해도 backpropagation 도 잘 된다고 하는데.. 

암튼 더 읽어보죠...

 

4.1.3 Classifier

Discriminator와 유사합니다. 그러나 학습은 실제 라벨을 가지고 학습을 합니다.

그래서 이 네트워크는 타겟 값과 다른 속성 값 간의 correlation을 학습하게 됩니다.

물론 Discriminator로도 의미적은 것을 학습할 수 있지만, Classifer 없이 학습 시 의미적으로 합당한 데이터가 생성되지 않는 경우도 확인했다고 합니다.

 

이상이 4.2 전까지 논문 리뷰입니다.

약간 익명성 이야기가 주로 나오다 보니 잘 알지 못해서 줄이고 줄여서 썼습니다.

마지막에 한 row를 네모난 정사각형으로 만들어서 convolution 한다는 아이디어는 먼가 음 논리적으로는 말이 안 되기는 한 것 같지만... 더 읽어봐야 알겠죠?

그리고 다른 방법으로는 1D-convolution으로 한다는 방법도 있었는데, 앞에서 말한 것처럼 저는 feature map에서 그렇게 하겠다는 의미였는데, 여기서는 바로 데이터에다가 순서가 있다고 생각하고 1D-Convolution을 하는 방법이 있다고 하네요.

 

그리고 G 에는 Deconvolution을 사용하고 D 에는 Convolution을 사용한다는게 참 인상적인 것 같습니다.

Classifer은 이미 ACGAN이나 다른 논문에서도 어느정도 사용하는 아이디어인데 Loss는 과연 어떻게 정의하는지 지켜봐야 할 것 같습니다.

일단 드는 나의 개인적은 생각은 Convolution Network은 Locality를 잡는 건데, 표 데이터는 임의로 막 놓일 수 있는 것이라서 그러한 것이 없는데 적용을 한다는 말이죠...

물론 저도 그렇게 할 수 있을까 생각은 했지만, 거의 망상이라고 생각을 했습니다.

잘되는지는 더 봐야 알 것 같지만, 이번을 통해서 새로운 접근방식을 배운 것 같습니다.

 

좀 더 읽어보면 나름 논리적인 설명이 나오겠죠?

 

긴 글 읽어주셔서 감사합니다. : )

728x90