GAN
논문 출처 : https://arxiv.org/pdf/1406.2661
1. 이름이 GAN인 이유
GAN은 Generative Adversarial Nets의 약자로서 적대적생성 네트워크이다
이러한 이유가 붙은 이유는 GAN은 두 모델의 경쟁으로 인해 학습하는 녀석이기 때문이다
GAN에는 두 모델이 존재한다 하나는 가짜 이미지를 생성하는 Generative model이고 다른 하나는 가짜인지 진짜인지 판별해내는 Discriminative model이다
간단하게 Generative model을 G, Discriminative model을 D라 부르겠다
G는 학습을 통해 D를 속일 수 있는 이미지를 만드는 것을 목표로 한다
D는 학습을 통해 G의 이미지를 걸러 내는 것을 목표로한다
이렇게 적대적인 관계로서 경쟁하며 학습하기에 이 모델의 이름이 GAN이다
2. 어떻게 경쟁하는가
서로 경쟁하는 관계를 수식으로 나타내면 위와 같다
E는 조건을 만족하면 1이고 만족하지 못하면 0이다 따라서 첫항의 의미는 x가 Pdata(x)즉 실제 이미지에 해당하면 1이며
둘째항의 의미는 z가 Pz(z) 즉 노이즈에 해당하면 1이란 의미이다
G(z)는 G가 만들어낸 그림을 의미하고 D(x)는 x가 진짜일 확률 이다
앞부분 log D(x) 는 실제 이미지에 대한 판별기의 판단 확률을 의미하고
뒷부분 log(1-D(G(z)))는 G가 생성한 이미지에 대한 판별기의 판단확률을 의미한다
보다시피 G는 V(D,G)를 최소로 만드려하고 D는 최대로 만드려한다
만일 D의 성능이 최대라면 logD(x) = log 1 = 0이 되며 log(1-D(G(z))) = log (1-0) = 0 이되어 0이 최대이며 0에 가까울수록 좋다는 것을 알 수 있다
반대로 G의 성능이 최대라면 lod D(x)항은 G의 성능과 무관하므로 넘어가고 log(1 - D(G(z))) = log( 1-1) = -inf 가 되어 V(D,G)의 값이 작을 수록 좋다는 것을 알 수 있다
3. GAN의 장단점
우선 장점은 학습에 있어 역전파만이 필요하며 마르코프 체인(과거와 현재의 상태를 보고 미래를 예측할수있는 상태)이 필요하지 않으며 학습에 추론이 필요하지 않다 또한 매우 선명한 분포를 지닐 수 있다는 점이다
반면에 단점은 생성된 데이터의 분포를 확실하게 표현하는 것이 없다는 것과 학습할때 G와 D가 균등해야하는 점이다 만일 G가 D에 비해 과도하게 학습된다면 충분한 다양성을 지닐 수 없는 'Helvetica scenario'에 빠질 수 있다
또한 논문에서 제공되는 예시를 보면 mnist같이 상당히 해상도가 낮은 사진들을 예시로 삼았음을 볼수 있는데 이는 GAN이 높은 해상도의 이미지에 대해서는 약한 모습을 보이기 때문이다 이를 극복하는 것은 다음 포스팅인 PGGAN에서 극복할 것이다
참조
[논문리뷰]GAN(Generative Adversarial Nets) 리뷰
안녕하세요. 밍기뉴와제제입니다. 이번에는 GAN을 리뷰해보겠습니다.
velog.io
[확률/통계] 마르코프 체인 Markov Chain
오늘의 나는 과거의 내가 만든 것
velog.io