[Boostcamp AI Tech] DL Basic 9~10강

이성범·2022년 2월 11일
0

Boostcamp AI Tech

목록 보기
28/49

Generative Model

이번 강에서는 Generative Model에 대하여 학습을 진행했다.

00. 학습 내용

  • Generative Model의 기본 개념에 대하여 학습
  • Auto-regressive Model에 대하여 학습
  • Latent Variable Model에 대하여 학습

01. Generative Model

  • Generative Model은 간단하게 말해서 어떠한 확률 z를 추정하고 추정된 확률 z에서 새로운 데이터를 생성하는(샘플링) 모델이라고 생각하면된다. 따라서 Generative Model에서는 확률 z를 어떻게 구할 것이냐?가 중요한 Task가 된다.
  • z를 추론하는 가정에 따라서 모델 파라미터의 수와, 모델의 구조가 달라진다.
  • 앞으로 다룰 Auto-regressive Model은 조건부 독립를 가정하여 모델을 추론하고, Latent Variable Model은 확률 분포를 모델링을 통해서 추론한다.

02. Auto-regressive Model

  • Auto-regressive Model은 마르코프 정의에 기반한 조건부 독립을 가정하여 체인룰을 사용하여 모든 랜덤한 변수를 사용하여 p(x) 즉, 우리가 추론하고 싶은 분포를 찾는 모델이다.

  • Auto-regressive Model의 가장 기본적인 모델은 Neural Autoregressive Density Estimator, NADE 이다.
  • NADE는 주어진 데이터를 기반으로 밀도를 계산하는 즉 확률 분포를 계산하는 explicit model이다. (위 그림의 경우 784 pixel image 데이터)

  • NADE는 위와 같은 공식으로 결합 확률 분포를 독립적으로 계산한다.
  • 그 후에 가우시안 분포에서 랜덤으로 샘플링한 변수를 바탕으로 계산된 확률 분포를 가지고 이미지를 생성하게 된다.

  • 또한 Auto-regressive Model은 RNN을 사용할 수도 있고 본 모델은 Pixel RNN이라고 불린다. (위 이미지는 RGB 이미지에 대한 Pixel RNN 학습 예시)

  • Pixel RNN 기반의 모델들은 분포를 어떻게 추론하느냐에 따라서 Row LSTM, Diagonal BiLSTM 등이 존재한다.

03. Latent Variable Model

  • Latent Variable Model은 크게 Variational Auto-encoder, Generative Adversarial Network 등이 존재한다.

  • Variational Auto-encoder는 데이터를 바탕으로 얻은 Posterior distribution와 가장 잘 매치하는 Variational distribution을 학습하는 모델이다.
  • 우리는 KL divergence를 활용하여 Posterior distribution과 가장 가까운 분포를 찾게된다면 그 분포가 곧 Variational distribution 될 것이다.
  • Variational Auto-encoder는 위 그럼 처럼 z에 평균과 분산을 모델링하는 것이 목표이고 학습된 평균과 분산에서 값을 샘플링하여 데이터를 생성해주는 모델이라고 할 수 있다.

  • Generative Adversarial Network는 데이터를 생성하는 generator와 데이터를 판별하는 discriminator 간의 minimax game으로 학습되는 구조라고 할 수 있다.
  • 모델의 학습 과정을 간단하게 설명하면 우선 discriminator에 실제 이미지 데이터를 넣어 실제 이미지라고 판별하는 loss1를 구한다.
  • 그리고 discriminator에 가우시안분포에서 추출한 샘플링 값을 바탕으로 generator가 생성한 이미지 데이터를 넣어 가짜 이미지라고 판별하는 loss2를 구한다.
  • 그리고 loss1 + loss2 하여 최종 loss를 구하고, 이 loss를 바탕으로 discriminator의 파라미터를 업데이트 한다.
  • 그 후에 discriminator에 generator가 생성한 이미지 데이터를 넣어 진짜 이미지라고 판별하는 loss를 구하고, 해당 loss를 바탕으로 generator의 파라미터를 업데이트 한다.
  • 이처럼 GAN은 generator와 discriminator가 서로 속고 속이는 방식으로 학습이 진행된다.

참고자료

profile
Machine Learning Engineer at Konan Technology

0개의 댓글