[논문 리뷰]GAIN: Missing Data Imputation using Generative Adversarial Nets
GAIN 논문을 들어가기 전, GAN에 대한 이해가 필요하여 간략해 GAN을 소개하겠다.
빠르게 정리해 보는 GAN
Generative Adversarial Networks로 이름에서 알 수 있듯이 생성형 모델의 한 종류이다. "적대적 신경망"이라고도 불리는 이 모델은 서로 다른 두 개의 네트워크를 적대적(adversarial)으로 학습시키며 실제 데이터와 거의 유사한 데이터를 만들어 낸다. ( 생성된 데이터는 라벨 없음. 따라서 비지도 학습 )
GAN은 데이터의 확률 분포를 학습하여 실제 데이터와 유사한 가짜 데이터를 생성하는 Generator와 완성된 데이터가 원본 데이턴 지 생성된 데이턴지 판별하는 Discriminator로 구성되어 있다. 이 둘이 적대적 관계가 되어 G는 D를 속일만한, 원본 데이터 같은 가짜 데이터를 생성하고, Discriminator는 이에 속지 않기 위해 정확한 판단을 내리려 노력한다.
GAN의 목표는 "실제 데이터의 분포"에 가까운 가짜 데이터를 생성하는 것이다. 따라서 Discriminator가 생성한 데이터를 보고 한쪽으로 판단하지 못할 때 ( 0(가짜) 1(진짜) 사이에서 0.5의 확신을 가질 때 ) 데이터를 잘 생성했다고 판단하다.
Missing Data Imputation using Generative Adversarial Nets 논문 리뷰
우리가 데이터를 다룰 때, 이상적인 데이터만을 다룰 순 없다. 부분적으로 데이터가 누락된 데이터를 다루는 경우도 많이 보이는데, 이번 논문은 GAN을 이용해서 이런 missing data를 채워보자(imputation)는 것이다. (이 논문은 결측치의 유형을 MCAR로 정의한다 )
이번 논문은 아래 링크를 통해 확인할 수 있다.
https://arxiv.org/abs/1806.02920
GAIN: Missing Data Imputation using Generative Adversarial Nets
We propose a novel method for imputing missing data by adapting the well-known Generative Adversarial Nets (GAN) framework. Accordingly, we call our method Generative Adversarial Imputation Nets (GAIN). The generator (G) observes some components of a real
arxiv.org
이번 논문의 전체적 구조는 아래와 같다.
우리가 바로 위에서 봤던 Generator와 Discriminator가 보인다.
Generator
GAIN논문에서 Generator(이하 G)는 Data matrix, Random matrix, Mask matrix를 입력받아 결측값을 채운 뒤, 결측값이 채워진 Imputed Matrix를 내뱉는다.
어떻게 그 값을 보정하는 지에 대해 알아보자.
Data matrix는 원본 데이터에서 결측값을 0으로 대치한 matrix이다. (목표 분포 : 정답 역할)
Z는 feature noise로 (1-M)와 결합을 통해 Random matrix를 생성하며 feaure마다 독립적 == 다른 분포를 가진다.
Random matrix는 G가 결측 데이터를 대체할 가상 데이터를 생성할 때 필요한 초기 input값이다.
Mask matrix는 결측데이터는 0, 결측데이터가 아닌 것은 1로 대치하여 다른 matrix와 결합할 시 원본데이터만 볼 수 있게 해 준다. Mask matrix는 Z와의 pairsiwe product로 차원을 일치시킨다.
Generator는 위 입력을 차례로 받아, 결측치를 예측한 행렬 하나를 만들어낸다.
이렇게 하면 imputation된 벡터값을 얻을 수 있으나, 원본 데이터 값도 약간씩 바뀌게 되어 보간한 결측값만 취하는 작업을 한 번 더 해줘야 한다.
따라서 M⊙X~를 통해 원본값을 취한고 뒤의 식으로 보완된 결측값을 얻어 두 요소를 합해주면 최종적인 output이 도출된다.
Discriminator
일반적이 GAN에서 Discriminator는 Generator가 생성한 matrix 전체에 대해 참, 거짓을 판단하지만, GAIN에서 Discriminator는 Generator가 생성한 Imputed Matrix의 요소 각각에 대하여 참 거짓을 판단한다. 다시 말해, 우리가 처음에 만든 Mask Matrix를 예측하여 생성하는 게 목표라고 말할 수 있다. Discriminator는 잘못판단해서 생기는 오류를 줄여나가는 것이다.
그러나 처음부터 아무런 정보 없이 참 거짓을 찍는 것은 아니다. Hint Generator가 생성한 Hint Mask를 보고 1은 원본의 값, 0은 결측값이라는 정보를 얻은 후 0.5가 위치한 값에 대하여 판단을 내린다.
Hint Matrix
Mask Matrix로부터 생성되는 hint matrix는 학습 과정마다 다른 부분으로 hint를 줌으로써 Discriminator가 판단을 잘 내리도록 도와준다. Hint Generator를 어떻게 정의하냐에 따라 주는 힌트양을 조절할 수 있다.
정보를 너무 많이 주면 Disciriminator가 정답을 너무 잘 맞히며 결론적으로 Generator와 Disciriminator가 학습이 잘 안 되고
정보를 너무 적게 주면, Discriminator의 오답행진으로 Generator와 Disciriminator가 의도하지 않은 분포를 학습할 수 있다.
Loss function
1. 결측치가 아닌 값과 G를 거쳐 변형된 값 사이의 MSE
2. 각 요소에 대한 참, 거짓 예측 확률과 Mask Matrix 사이의 corss entropy.
Objective function
Discriminator는 정확한 Mask Matrix를 예측하는 것을 목표로 두고, Generator는 Discriminator가 정확한 Mask matrix를 예측하지 못하도록 정교한 진짜(결측값 예측)를 만드는 것에 집중한다.
좋은 참고 사진이 있어서 들고 왔다. 상단에 위치한 식은 Discriminator가 생성한 mask matrix에 대한 목적함수이다.
이를 종합하면 아래 사친처럼 보인다.
이후 뒤에선 다양한 모델과 비교하여 GAIN의 성능이 우수하다는 견해를 드려내고 있다.
이 논문의 좋은 점
그동안 대다수의 imputation 모델들은 학습을 위해 완전 데이터가 필요하였으나 GAIN은 불필요하다.
참고
[ICML 2018] GAIN: Missing Data Imputation using Generative Adversarial Nets - yjchoi-95
[2] Hair, J. F., Black, W. C., Babin , B. J., Anderson, R. E., & Tatham, R. L. (2006). Multivariate data analysis (6 th ed.). pp. 49 73. Upper Saddle River, NJ: Pearson Educations, Inc.
yjchoi-95.gitbook.io
http://dmqm.korea.ac.kr/activity/seminar/251
고려대학교 DMQA 연구실
고려대학교 산업경영공학부 데이터마이닝 및 품질애널리틱스 연구실
dmqa.korea.ac.kr
실습
논문과 함께 있던 spam.csv, letter.csv 데이터 중 spam.csv에 대해선, 0.05 ( RMSE)를 나타냈다.
흔히 공부용으로 자주 쓰는 와인 데이터 셋에 대해선, 0.1(RMSE) 결과를 보여주었고, letter data에 대해선, 0.1386(RMSE) 결과를 보였다.