본문 바로가기

Study/AI

[머신러닝/딥러닝] GAN 요약 정리

GAN(Generative Adversarial Network)이란? 

생성적 적대 신경망, 경쟁을 통해서 배운다는 개념의 인공지능 기술

Generator (생성자) 와 Discriminator (판별자) 두 개의 모델이 동시에 적대적인 과정으로 학습시키며, 생성자 G는 실제 데이터 분포를 학습하고, 판별자 D는 원래의 데이터인지 생성자로부터 생성이 된 것인지 구분

 

GAN의 구조와 구성요소

G(Generator)와 D(Discriminator)를 적대적인 관계로 보면서 연쇄적인 과정을 거쳐 D(Discriminator)가 나중에는 판별하지 못 할 정도의 진짜 같은 이미지를 만들어냄

생성 모델 G(Generative Models)

실존하지 않지만 있을 법한 이미지를 생성할 수 있는 모델이미지 데이터의 분포를 근사하는 모델 G를 만드는 것이 생성 모델의 목표 -> 생성자의 분포가 원본 학습 데이터의 분포를 잘 따를 수 있도록 만들어서 학습이 잘 되었다면 통계적으로 평균적인       특징을 가지는 데이터를 쉽게 생성 가능

생성자 이미지 분포 학습 방법 (GAN의 비용함수)

목적 함수 (Objective function)를 통해 생성자는 이미지 분포 학습 가능

:  G(s)를 최소, D(s)를 최대로 하는 목적 함수 (변수: G,D 함수의 값)

: 데이터 분포에서의  x(real image)를 변수로 하는 logD(x)의 기댓값

: z(latent space)분포에서의 z를 변수로 하는 log(1-D(G(x)))의 기댓값

 

진짜 : 1 ~ 가짜: 0을 부여해 학습

V(D,G) 함수 값 G는 낮추려고 하고, D는 높이려고 한다.

 

D가 목적을 이루기 위해서는 D(x) = 1, D(G(z)) = 0 이 되어 함수 값이 0이 되면 된다.

G가 목적을 이루기 위해서는 D(G(z)) = 1이 되어 함수 값을 최소로 만들면 된다.

 

판별자는 학습을 함에 있어서 원본 데이터에 대해서는 1로 분리할 수 있도록 학습을 하고 가짜 이미지가 들어왔을 때는 0이 나올 수 있도록 학습을 진행

-> 생성자는 자신이 만든 가짜 이미지가 판별자가 1을 출력할 수 있도록 학습을 진행

즉, 생성자는 자신이 만든 이미지가 그럴싸한 이미지로 보일 수 있도록 학습을 진행