본문 바로가기
ML, DL/논문

[GAN] Data Augmentation Using GANs, 2019

by Wordbe 2019. 9. 21.
728x90

Data Augmentation Using GANs

FHKS Tanaka, arXiv cs.LG, 2019/04/19

Abstract

GAN은 데이터 증식을 위해 쓰일 수 있다.

1) 클래스가 불균형한 데이터셋에서 부족한 클래스를 보충하기 위해,

2) 데이터가 privacy에 관련한 민감한 정보를 포함할 때, 합성이미지로 이를 극복한다.

본 논문은, Generator로 저자가 직접구현한 간단한 모델을 이용하고, Discriminator로는 Decision Tree를 이용하여 GAN으로 만든 합성 데이터가 실제 데이터를 대체할 수 있을지 연구한 결과이다.

1. Introduction

Good 데이터 셋을 가지는 것은 모델의 학습을 위해 참 중요한 요소이다.

1) Imbalanced 데이터에서, oversampling minority classes - 부족한 수의 데이터를 가진 클래스를 증식시킬 것이다.

  • 의료정보에는 정상데이터가 비정상 데이터보다 많은 경우가 있다. 이 때 사용가능하다.

  • 이런 불균형한 데이터를 학습시킬 때 문제는, 부족한 클래스 데이터를 예측하는 데 실패하더라도 그 수가 작아서 결국 전체 loss는 낮게 나오기 때문이다.

  • 장점 : Increase minority class, avoid over fitting

2) 원래 데이터로 부터 새로운 데이터를 만들어 privacy를 보존할 것이다.

  • 의료정보는 환자 개인 데이터에 민감하여 함부로 사용할 수 없다. --> 윤리적 문제

2. Background

GAN(Generating Adversarial Networks)

  • 2014, Good Fellow가 도입 / 2017, LeCun(Facebook AI) "최근 10년간 가장 흥미로운 아이디어"

  • 활용: 종양학에서 새로운 분자개발(2017), resolution 증가(2017)

  • 가장 널리 사용되는 곳은 새로운 이미지 생성: 특징에 따라 유명인사 얼굴변경 (pgGAN, 2018)

(잠시 GAN의 기본 원리 설명)

Algorithm1 : training Discriminator(D)

Input: RealData, FakeData
Output: Prediction

Update Discriminator using RealLoss (RealDataLabels and 1)
Update Discriminator using FakeLoss (FakeDataLabels and 0)

Algorithm2 : training Generator(G)

Input: latentVector(noise vector), prediction of D
Output: FakeData

Update Generator using FakeLoss (FakeDataLables and 1)

2.2) SMOTE and ADASYN

Synthetic Minority Over sampling Technique(SMOTE)

데이터의 position에 근거해서 합성 샘플을 만든다.

  1. minority class에서 임의로 한 점을 선택,
  2. 선택한 같은 클래스에 대해 k-nearest neighbors를 찾는다.
  3. 선택된 두 쌍에 대해 새로운 점 생성(거리 비율을 랜덤으로)

ADASYN 은 SMOTE와 비슷한 방법으로,

새로운 샘플을 생성할 때, 임의의 작은 bias를 더해주는데,

이는 parent 점으로 부터 선형적으로 correlated 되지 않도록 만든다.

따라서 합성 데이터의 분산을 증가시킨다.

3. Proposal and Experimental Design

두 가지 실험을 한다.

1) 순수 합성데이터(synthetic data)로만 classifier(D)를 학습시키기

2) 합성데이터로 minor class에 대해 oversampling 후 데이터 균형잡아 성능비교

3.1) GAN architecture and parameter Choice

  • Binary Cross entropy 이용

  • No ConvLayers : 사용한 인풋이 이미지가 아니기 때문에

    등등

3.2) Classifier

  • Decision Tree 이용 : 시각화할 수 있어서 이해하고 해석하기 쉽고, 데이터 준비가 거의 필요없어서

3.3) Databases

1) Pima Indians Diabetes Database (1988)

​ : 당뇨병은 8개의 독립적인 변수에 의해 결정

2) Breast Cancer Wisconsin Data Set (2017)

​ : Feature가 이미지로부터 계산됨.

3) Credit Card Fraud Detection (2017)

​ : imbalanced class 데이터

Data

모든 데이터는 [0,1]로 스케일링 되었고, 이는 한 attribute가 지배하는 현상을 막는다.

4. Results and Analysis

4.1) 실험1 : 순수 합성데이터로만 학습했을 때 성능비교

Generator

6개의 다른 GAN 구조(Generator)에서 합성된 이미지의 이름을 6가지로 지었다.

새로운 합성데이터는 Discriminator가 학습하는데 쓰였다.

Discriminator는 원본 테스트셋으로 테스트하였다.

결과)

1) 합성데이터의 여러 분포값

Comparison between original and synthetic

2) 6개 제너레이터로 부터 구성된 합성데이터들로 실험한 결과 - 평균(표준편차)

res1

3) 합성데이터와 원본데이터 간 point값들에 대한 Euclidean Distance

res2

4.2 실험1의 결과에 대한 분석

1) GAN은 외부 지시없이도, 원본 데이터와 비슷한 특성분포와, 비슷한 클래스 간 합성데이터를 만드는데 성공하였다.

2) Diabetes 데이터셋에서, 원본 데이터와 합성 데이터의 accuracy는 비슷했다. 원본이 사실 조금 더 좋았죠.

3) Cancer 데이터셋에서, 원본보다 합성데이터의 accuracy가 더 높았다. 성과를 뽑았네요.

환자가 추가적인 진단이나, 치료가 필요한 상황에서 false negative는 치명적이므로,

accuracy 보다 recall 성능이 중요!

이러한 관점에서, Diabetes 데이터셋은 recall이 높아서 GAN데이터가 훌륭한 성과를 거두었지만, Cancer은 그러지 못했다.

Euclidean 거리를 비교해 봄으로써, 원본과 합성데이터가 좋은 유사도의 데이터라는 것을 추정할 수 있었다. 따라서 합성된 데이터로 원본을 대체하면 되니까, privacy 를 향상 시키는 데에 성공적이었다.

4.3. 실험2: 합성데이터로 minor class에 대해 oversampling

방법:

1) GAN은 minority class 데이터로만 학습 --> 균형잡힐 때까지

2) 새로 균형잡힌 학습데이터를 Classifier가 학습하도록 함

3) 원본 테스트 셋과, balanced 버전의 테스트 셋으로 테스트함.

결과:

GAN과 SMOTE, ADASYN 비교

res3

4.4. 실험2에 대한 분석

1) balanced 데이터 셋이, imbalanced보다 테스트 셋에서 좋은 결과를 보여주었다.

​ 위 표가 정확하지 않은 것 같다.. 그랬으면 좋겠다.

2) ADASYN과 SMOTE에 대해서는 GAN augmentation이 좋은 accuracy와 precision을 보였으나, recall은 좋지 못했다. 그래서 false negative가 중요한 영역에서는 GAN을 이용한 아직 더 연구가 필요할 것이다.

3) 그리고, 원본 데이터로만 학습하는 것보다, GAN을 이용해서 data augmentation해서 학습하면 더 좋을 결과를 낸다.

5. Conclusion

1) 원본 데이터셋없이, classifier를 학습시키는데 GAN의 성능이 괜찮다.(데이터에 따라 좋을 수도, 안 좋을 수도 있다. 해봐야 안다.)

2) Imbalanced 클래스의 데이터셋에서 minority class를 oversample하기에 GAN은 적당한 모델이다.

3) 기존 augmentation 방법인 SMOTE와 ADASYN에 비해 recall 결과는 좋지 못했다. 하지만, GAN의 장점은, 사용자가 어떤 rule이나 제약조건을 정의해 주지 않고, end-to-end로 합성이미지를 뽑아낼 수 있다는 장점이 있다. (물론, 시간이 참 오래걸린다..)

-감사합니다-

728x90

댓글