본문 바로가기

Artificial Intelligence

GAN(Generative adversarial network) 이란?

1.1 GAN이란?

 

GAN(Generative adversarial network)
동시에 두 개의 모델을 훈련하는 머신러닝의 한 종류

Generator는 가짜 데이터를 생성하도록 훈련
Discriminator는 실제 샘플과 가짜 샘플을 구분하도록 훈련

Generative(생성적) : 모델의 목적 - 새로운 데이터를 생성
Adversarial(적대적) : generator와 discriminator 사이의 경쟁 구도를 나타냄

 

1.2 GAN의 동작방식


Generator의 목표는 훈련 데이터와 구별이 안 될 정도로 훈련 데이터셋의 특징이 잘 나타난 샘플을 생성하는 것
Generator의 입력 값은 랜덤한 숫자로 구성된 벡터
생성자는 판별자의 분류 결과에서 피드백을 받아 학습

Discriminator의 목표는 특정 샘플이 진짜(훈련 데이터)인지 가짜(생성자가 생성한 데이터)인지 구별하는 것
가짜 이미지에 속아 가짜를 진짜로 분류할 때마다 생성자는 자신이 임무를 잘 수행하고 있다고 알게됨
생성자가 만든 이미지가 가짜라는 걸 판별자가 포착할 때마다 생성자는 더 그럴듯한 결과물을 생성해야 한다는 피드백을 받음

Discriminator는 다른 Classifier처럼 자신의 예측과 실제 레이블 간의 차이를 통해 학습
따라서 Generator가 더 그럴듯한 데이터를 만들수록 Discriminator도 진짜와 가짜를 더 잘 구별하며 두 네트워크가 모두 동시에 지속해서 성능이 향상 됨

Generator
입력 : 랜덤한 숫자로 구성된 벡터
출력 : 최대한 진짜 같아 보이는 가짜 샘플
목표 : 훈련 데이터셋에 있는 샘플과 구별이 불가능한 가짜 샘플 생성하기

Discriminator
입력 : 1. 훈련 데이터셋에 있는 실제 샘플, 2. 생성자가 만든 가짜 샘플
출력 : 입력 샘플이 진짜일 예측 확률
목표 : 생성자가 만든 가짜 샘플과 훈련 데이터셋의 진짜 샘플을 구별하기


1.3 GAN 훈련하기


GAN Training algorithm
매 훈련 반복에서 다음 과정을 반복합니다.
 (1) Discriminator Training
a. Training dataset에서 랜덤하게 진짜 샘플 x를 선택합니다.
b. 새로운 random noisy vector z를 얻어서 G 네트워크를 이용해 가짜 샘플 x*를 만듬
c. D 네트워크를 이용해 x와 x*를 분류함
d. 분류 오차를 계산하고 전체 오차를 역전파해서 Discriminator의 훈련 가능한 파라미터를 업데이트하고 분류 오차를 최소화
 (2) Generator Training
a. G network를 사용해 새로운 랜덤한 잡음 벡터 z에서 가짜 샘플 x*를 만든다.
b. D network를 이용해 x*을 분류합니다.
c. 분류 오차를 계산하고 역전파해서 Generator의 훈련 가능한 파라미터를 업데이트하고 판별자D의 오차를 최대화


1.3.1 균형에 도달하기


게임 이론에서 이러한 상황을 제로섬 게임으로 인식한다
한 사람이 얻는 이득만큼 다른 사람이 손해를 본다.
모든 참가자 모두 자신의 상황을 더는 개선할 수 없거나 자신의 행위를 변경함으로써 이익을 볼 수 없는 시점에서 내시균형Nash equilibrium에 도달함


GAN은 다음 조건이 충족될 때 내시 균형에 도달합니다.
  - 생성자 G가 training dataset의 실제 데이터와 구별이 안되는 데이터를 생성합니다.
  - 판별자 D가 할 수 있는 최선이 특정 샘플이 진짜인지 가짜인지 랜덤하게 추측하는 것뿐입니다.(즉 샘플이 진짜인지 아닌지 50대50확률로 추측)

균형에 도달하면 GAN은 수렴converged했다고 말합니다.
실무에서는 GAN의 내시 균형을 찾기가 불가능에 가까운데 이는 비볼록 게임 nonconvex game의 수렴 도달에는 복잡성이 매우 크기 때문입니다.
실제로 GAN의 수렴은 GAN연구에서 가장 중요한 미결 문제 중 하나입니다.
이문제가 GAN연구나 여러 혁신적인 GAN 애플리케이션 개발에 방해하지않는다.
수학적으로 완전하게 보장되지 않더라도 GAN은 실제 놀라운 성과를 달성합니다.


활용사례


아마존 - 패션 카테고리의 추천시스템에 GAN을 이용하여 실험, 수많은 의상을 분석해 주어진 스타일에 어울리는 새 아이템을 생성하도록 훈련
의료 연구 - 진단의 정확도를 개선하고자 GAN을 이용하여 합성한 데이터로 데이터셋을 증가시킴





































반응형
LIST