[Review] REAL-VALUED (MEDICAL) TIME SERIES GENERATION WITH RECURRENT CONDITIONAL GANS - (1)

2019. 5. 19. 20:58관심있는 주제/GAN

728x90

2017 12년도에 나온 논문이지만,

이 논문을 이용해서 파생된 논문들이 있고 Time-Series에서 RNN과 GAN을 합쳐서 사용한 것 같아서 일단 보려고 합니다.

개인적으로 여기서 RNN을 어떻게 활용하는지 궁금하더라고요.

 

https://paperswithcode.com/paper/real-valued-medical-time-series-generation  https://github.com/ratschlab/RGAN
이 구조에서 파생된 논문 1 https://arxiv.org/pdf/1901.04997.pdf https://github.com/LiDan456/MAD-GANs 
이 구조에서 파생된 논문 2 https://paperswithcode.com/paper/anomaly-detection-with-generative-adversarial
https://github.com/LiDan456/MAD-GANs

 

이 논문은 Medical data에서 time-series 적인 high dimensional 한 데이터를 RNN과 GAN을 이용해 생성하려고 합니다.

MMD(maximum mean discrepancy) 나 sample likelihood를 확인해보니 정량적으로 질적으로 잘했다고 합니다.

https://blog.lunit.io/2017/04/27/style-transfer/

http://www.stat.cmu.edu/~ryantibs/journalclub/mmd.pdf 위의 분이 추천해주신 URL입니다. 

결국 머 대략적인 느낌은 차이가 작으면 잘된 거 차이가 크면 잘못된 거를 대략적으로 알고 가면 될 듯합니다.

 

RCGAN (Recurrent Conditional GAN)도 있고 RGAN도 만들었다는데 RCGAN이 더 잘 생성한다고 합니다.

 

도입부

일반적인 부분에 대해서는 머신러닝이 발전하고 있지만 특정 의학 부분에 대해서는 그러한 발전이 좀 뒤처져진다고 주장합니다. 데이터는 더 복잡하고 노이즈도 많고 예측을 명확히 정의하기 어렵다는 문제들 때문이라고 합니다.

그리고 특히 의학 관련 데이터는 민감하기 때문에 그것의 접근이 매우 제한되고 비식별을 통해서 받게 되는데요.

그래서 이러한 것 때문에 의학 쪽에서는 합성 의학 데이터를 만드는데 관심이 많다고 합니다.

그렇게 되면은 사생활 걱정 없이 데이터를 공유하고 많은 데이터를 확보해서 발전할 수 있다고 하네요.

 

Intensive Care Unit에 있는 타임 시리즈 데이터를 사용한다고 합니다. 

그 데이터에서는 주저할 수 없는 즉 시간 압박으로 인해 의사결정을 빨리 해야 하는 데이터들이 있다 합니다.

이러한 데이터를 통해 의사들도 Simulation 한다고 하네요. 

특히 환자의 상태에 어떠할 지에 따른 즉각적인 행동을 학습할 수 있다고 합니다.

 

그래서 일반 GAN에서는 평가를 할 때 시각적인 부분에 많이 의존을 하는데, 그러한 방법은 Multi-dimensional medical time series에는 불완전하고 부적절한 접근 방법이라고 합니다.

 

기여한 점

 

1. adversarial training을 통해서 sequence data를 생성한 점

2. 참신한 방법으로 GAN을 평가하는 점

3. medial time series data에 합성 데이터를 생성한 점

4. 다른 GAN과의 비교?

 

 

아무튼 미래에는  Multi modal time series data를 생성한다고 하네요.

The primary differences are architectural: we do not use a bidirectional discriminator, and outputs of the generator are not fed back as inputs at the next time step. Moreover, we introduce also a conditional version of this Recurrent GAN
기본 차이점은 아키텍처입니다. 우리는 양방향 디스크립터를 사용하지 않으며, 생성기의 출력은 다음 시간 단계에서 입력으로 피드백되지 않습니다.
또한 이 재귀 GAN의 조건부 버전도 소개합니다.

저자들의 목표는 GAN으로 잘 알려지지 않은 순간에 대해서 훈련시키기 위한 데이터를 만드는 것이라고 합니다.

 

3 MODELS: RECURRENT GAN AND RECURRENT CONDITIONAL GAN

a) 이 부분에서는 각각 time step에 다른 random seed를 줘서 만들고 거기에 만약 발생기 RNN은 추가된 데이터로 생성된 시퀀스를 컨디셔닝 하기 원할 경우 각 시간 단계마다 다른 임의의 시드와 추가 입력을 취합니다.

b) RCGAN이면 추가적인 인풋과 함께 생성된 Sequene를 Discriminator에 보냅니다. 그래서 각 타입 스탭에 에서 실제와 가짜를 분류하는 것을 생성합니다.

 

Discriminator는 average negative cross-entropy를 최소화하려고 노력합니다. 

Generator에 목적은 Discriminator가 실제 결과처럼 분류하게 만드는 것입니다. 

그래서 우리가 아는 Loss처럼 가짜를 넣었을 때 Discriminator가 1이 되게 하는 구조입니다.

G와 D 둘 다 LSTM 구조를 쓴다고 합니다.

WGAN은 다른 목적함수를 가지고 있는데 자기네 쪽에서는 그것을 쉽게 하는 방법을 못 찾았다고 하네요(ㅠ)

 

3.1 EVALUATION

 

일반적인 GAN은 Visual Quality로 따지는데 그것은 우리에게 맞지 않는 평가 방법이라고 합니다.

그래서 저자들은 데이터의 지표처럼 수치화할 수 있는 방법으로 했다고 하네요. 

 

3.1.1 MAXIMUM MEAN DISCREPANCY

결국 샘플들의 통계량으로 비교한다고 하네요. 

저자들은 MMD^2를 제안합니다. 하지만 여기선 time series에 할당하는데에서 어려움이 있다고 하네요.

자기네의 경우에는 생성된 것과 진짜를 고정된 타임 내에서 할당했다고 합니다.

L2 norm을 활용한 RBF 커널을 썼다고 하네요.  

We find the MMD^2 to be more informative than either generator or discriminator loss, and correlates well with quality as assessed by visualising.
MMD^2 가 유용한 정보를 주는 것을 발견했다고 하니, 뒤에서 확인해보겠습니다.

3.1.2 TRAIN ON SYNTHETIC, TEST ON REAL (TSTR)

Supervised 경우에 참신한 방법을 제안한다고 합니다 바로 TSTR(Train On Synthetic,  Test on Real) 

간단히 말해서 훈련시킬 때 합성 데이터 넣고 테스트는 진짜 데이터로 하겠다는 겁니다.

이러한 방식은 다른 논문에서도 썼던 것 같은데 이러한 방법이 많이 유효한가 봅니다.

label이 필요하니 conditional gan을 통해서 사용한다 합니다. 

 

TRTS(Train on Real , Test on Synthetic)

TRTS는 위에 것과 딱 봐도 반대인 것 같은데요. 하지만 이러한 방식은 TSTR과 난 달리 GAN이 Model Collapse에 취약하다고 합니다. 그래서  그런 현상이 발생해도 TRTS 성능은 떨어지게는 보이지 않는다는 거죠.

그래서 저자들은 TSTR을 더 좋아한다고 하네요

 

5 LEARNING TO GENERATE REALISTIC ICU DATA

ICU DATA는 2억 개나 되는 데이터가 있다고 합니다. 데이터가 5분 단위로 있어서 15분 단위로 Downsample 했다고 합니다. 그래야 더 빠르게 학습시킬 수 있다고 합니다.

그리고 Missing도 많아서 다 downsampling후에 버렸다고 하네요.

ICU로 생성한 데이터는 굉장히 복잡해서 비전문가가 trend를 찾기에는 굉장히 어렵다고 하네요.

그래서 몇 가지만 뽑아서 보여준다고 합니다. 이것을 통해서 실제와 가짜의 유사성을 확인해 볼 수 있다고 하네요.

MNIST는 실제 데이터 레이블에서 레이블을 추출하여 '샘플링'하고 이를 RCGAN의 조건 입력으로 사용합니다.

 

이는 합성 데이터 세트와 실제 데이터 세트의 라벨 배포가 라벨이 독립적이지 않다는 사실 (환자가 고 / 저 혈압을 동시에 겪지는 않을 것임)을 존중하여 동일하게 보장합니다.

 

 

일단은 여기까지 6부터는 2장에서 진행하려고 합니다.

 

으음 개인적으로 하면서 의학 데이터에 대해 무지해서인지, 코드를 안 봐서 인지 모르겠지만, 

유익한 논문인지는 잘 모르겠네요. 

아직까지 크게 와 닿는 게 없네요. 코드를 잘 봐야 할 것 같아요. 어떻게 구동되는지 와 닿지가 않네요...

 

 

728x90