Home [ML 머신러닝] GAN - 정복하기 (2)
Post
Cancel

[ML 머신러닝] GAN - 정복하기 (2)

GAN - 기본 수식

지난시간에 이어 수식에 대해 알아보겠다.


수식

수식

수학에 익숙치 않거나, 이런 수식을 많이 접하지 안해본 사람들은 의아할 것이다.

도대체 저 $min, max$는 뭘까..?

결론부터 말하자면,

왼쪽에서 G는 V(D, G) 가 최소(min) 가 되려 하고, D는 V(D, G) 최대(max) 가 되려고 한다는 의미이다.


D의 입장?

구별 모델인 D의 입장에서 생각해보자.

D의입장

  1. D는 경찰이다. 가짜 데이터에는 0을 출력하고, 진짜 데이터에는 1을 출력해야 한다.
  2. x는 진짜 데이터고, G(z)는 G가 z를 가지고 만든 가짜 데이터이다.
  3. 따라서 D는 오른쪽 수식 중, D(x) = 1이 되어야 하며, D(G(z))는 0 이 되도록 하는 것이 최대 목표이다.

즉 D의 목적은 $logD(x)$ 의 값이 최대가 되는 것임에는 이변이 없다.

1
여기서 의문이 하나 든다. log D(x) 의 값은 최대 0의 값을 가지지 않나..?

분명 값이 최대가 되는것이 목표인데, $logD(x)$의 값은 최대 0이다..

하지만 신경쓰지 않아도 된다. 즉 무슨 말이냐면, $logD(x)$의 값이 0이지만, 그 값은 어찌되었든 최대란 것이다. 그러므로, D의 입장에서는 0이 최대이기에 수식의 값 $V(D,G)$의 값이 0이 되는 것이 최고의 상황이란 뜻이다.

따라서 D는 0에 가까운 숫자로 가기 위해 노력하는 것을 최대(max)가 되려 한다 하고, 이를 max D로 표현한 것이다.


G의 입장

다음은 G의 입장에 대해 알아보겠다.

수식의 이미지 부터 확인하자.

G의수식

V(D, G) 은 GAN의 Loss 함수, Objective 함수라고 불리며, G의 목적은 V(D, G) 가 최소가 되도록 하는 것을 의미한다.

  1. G는 위조지폐범이다. 경찰과 반대로 G는 D가 가짜 데이터에 대해 1을 출력하게 해야 한다. D가 진짜 데이터를 제대로 구별하는지 아닌지는 별로 상관이 없다.
  2. x는 진짜 데이터고, G(z)는 G가 z를 가지고 만든 가짜 데이터이다.
  3. 따라서 오른쪽 수식 중, D(x) = 0이 되어야 하며, D(G(z))는 1 이 되도록 해야 한다.

G가 원하는 상황은 다음과 같다. 앞에서 D가 어떻게 하는지는 상관이 없다. 다만 뒤에서 D(G(z))가 1이 되게 해야 한다.

log(1-1)으로 인해 log 0 이 된다면 해당 값은 -infinity를 향하게 된다.

이는 매우 매우 0보다도 작은 무한대의 음수로, 결국 G의 목표는 엄청 엄청 작은 0 보다 작은 음의 무한대를 향하는 것이 목적이라고 볼 수 있다.

따라서 G가 원하는 최적의 상황은 매우 매우 작은 음의 무한대가 되는 방향이 되는 것이다.


Reference

https://www.youtube.com/watch?v=odpjk7_tGY0 - 고려대 최윤제 (1시간만에 GAN 정복하기)

This post is licensed under CC BY 4.0 by the author.