Wasserstein GAN 논문 요약

✓ 이 글은 다음 포스팅을 참조하였음

https://ahjeong.tistory.com/7

https://www.slideshare.net/ssuser7e10e4/wasserstein-gan-i

https://jonathan-hui.medium.com/gan-wasserstein-gan-wgan-gp-6a1a2aa1b490

Section 1. Introduction

인트로덕션에서는 이제껏 GAN의 흐름과 그를 기반하는 여러가지 이론..?에 대한 이야기를 하고있다.

먼저 이 논문에서는 Unsupervised learning을 볼건데, 이는 데이터의 분포를 직접 학습해야되는 것이므로

궁극적으로 데이터 분포인 P(x)를 아는것이 목적이 되시겠다.

따라서 이것을 알기위해서 고전적인 방법으로는 maximum likelihood가 있었다.

이는 쉽게 말하면 학습데이터의 likelihood를 최대화시키는 파라미터를 찾는것이다.

(이에 대한 자세한 설명은 https://indigopyj.github.io/nips2016_1/ 요기참고)

그리고 이렇게 추측한 P_θ와 실제데이터의 분포 간의 거리를 최소화시키는 방법인 KL divergence를 사용한다.

그런데 이렇게 하려면 뭐 여러가지 이슈를 해결해야된다.

우리가 봐야되는 P_θ가 존재하는 곳은 low dimensional manifold인데 여기서는 또 KL divergence가 정의가 안된다캄.

이에 대한 해결책으로는 모델분포에다가 noise term을 추가하는 것인데

보통은 매우 high bandwidth를 가지는 gaussian noise를 추가하는 것이 유명한 방법인데 이렇게 하게되면 플링 퀄리티가 영 안나온다고 함.

결론적으로는 노이즈 텀을 추가하는 것이 정확한 해결책은 아니지만 maximum likelihood를 접근하기 위해서는 필요하단말씀이다.

그래서 아무튼 우리는 z라는 latent vector를 p(z)에서 샘플링하여 이를 function g_theta : Z → X 에 통과를 시킨다. 결론적으로는 real data distributuion P_r에 가까운 분포의 parameter theta를 찾는 것이 관건이다.

이 방법을 쓰는 모델로는 대표적으로 VAE와 GAN이 있다.

문제는 GAN은 참 학습하기 힘들다는 엄청난 단점이 있다.

그래서 이 논문에서는 model distribution과 real distibution 사이의 거리를 어떻게 측정할 수 있는지에 집중을 해볼 것이다.

여기서 또 중요한 이야기가 하나 나오는데

θ를 최적화 시키기 귀해서는 P_θ가 다음과 같은 성질을 가져야 된다.

$\theta \ \mapsto \ P_{\theta }\ :\ continuous$

여기서 Continuity(연속성) 이란,

스크린샷 2020-11-30 오후 9 08 11

다만 여기서 또 알아야 되는 것은 P_theta_t는 두 분포 사이의 거리를 계산하는 방법에 의존적인 성질을 띈다.

즉 이 거리가 weaker할수록, continous mapping을 하기 쉬워진다고 한다. 자세한 이야기를 뒤에서 나오리라 믿는다.

image

(참고)

아무튼 지금 이 연속성 이야기가 중요한 이유는 이렇기 때문이다.

(치기 귀찮아서 필기로 대체..)

무튼 아직까지는 뭔소리인지 잘 모르겠다.

정리하자면 이 논문에서 다룰 내용은 아래와 같다.

  1. Section 2에서는 새로운 거리 메트릭인 Earth Mover(EM) distance를 제안한다.

  2. Wasserstein-GAN이라는 새 모델을 제안한다

  3. WGAN은 D와 G 를 학습시 둘 사이의 밸런싱에 그렇게 공을 들이지 않아도 되며, mode dropping문제가 줄어들게 해준다. 무엇보다 D를 학습시키는 과정에서 EM distance를 계속 예측할 수 있는 능력이 있다.

Section 2. Different Distances

여기서부터 갑작스럽게 수학이 나오기 시작한다.

시작하기전에 개념을 몇가지 정리한다.

image

\[\chi \ is\ a\ compact\ metric\ set\] ​

a topological space Χ is called “compact” if each of its open covers has a finite subcover.

즉, compact 집합은

  1. 경계가 있고

  2. 경계를 포함함.

\[\Sigma \ denotes\ the\ set\ of\ all\ the\ Borel\ subsets\ of\ \chi \]

Borel 집합이란 Χ 내에서 측정 가능한 집합들이다.

측정가능하단 소리는 확률분포로 확률값을 계산가능하다는 말과 같다.

\[\Pr ob\left(\chi \right)\ denotes\ the\ space\ of\ probability\ measures\ defined\ on\ \chi \]

이것은 그냥 편하게 확률분포 P라고 생각하자.

​ ★ 여기서 sup(=supremum)은 least upper bound를 말한다.

Total variation distance : 두 확률측도의 측정값이 벌어질 수 있는 값 중 최대값.

image

즉 위 그림에서 A 영역 안의 점을 대입하였을때 Pr(A)와 Pg(A) 의 차이 중 가장 큰 것을 말한다.

image

KL과 JS는 이전 논문들에서 충분히 다룬 메트릭이라 패스.

image

Π(Pr,Pg) 는 Pr, Pg의 결합확률분포의 집합을 말하고, γ는 그 중 하나를 말하는 것이다. 그리고 Inf(infimum)은 greatest lower bound를 말한다.

한마디로 말하자면 Pr을 Pg로 바꾸기 위해서, γ(x,y)는 x에서부터 y로 이동할때 얼마나 비용이 들었는지를 말한다.

EM distance는 최적의 transform plan에 대한 비용이다.

이게 무슨소리일까? 쉽게 이해해보자

image

왼쪽영역(1,2,3)에 박스들이 있는데 이를 오른쪽 (7,8,9,10) 영역으로 옮긴다고 하자.

이때 쉽게생각하기 위해서 모든 박스의 질량은 1이라고 가정함.

만약 박스1을 옮긴다고 하면, 이때 드는 비용은 (7-1) * 질량1 = 6이다.

즉, 옮겨지는 거리의 차이 곱하기 질량 이라고 생각하면 된다.

이를 모든 박스에 적용하여 그 비용을 총합하면, 왼쪽영역에서 오른쪽영역으로 박스를 옮길때에 드는 총 비용이 된다.

image

똑같은 이야기를 이번에는 표로 정리해보았다.

각각의 플랜을 γ라 할때 예를들면 γ_1을 살펴보자

왼쪽위치 1에 있던 박스들은 어디로 이동되었을까?

먼저 7로 박스 1개가 이동되었고, 10으로 박스2개가 이동되었다.

이런식으로 생각하여 모든 비용을 더하게 되는것이다.

γ_2는 방식이 다르다. 그러나 이때 우연하게도 둘의 비용이 같게나왔다.

하지만 여기서 알겠지만, 같은 왼쪽영역에서 오른쪽영역으로 이동하는 것인데 방법이 다르고, 심지어 비용마저 다를 수 있다. 우리는 최적의 transport plan에 대한 비용을 찾아야한다.

다시 수식으로 돌아가자.

image

위의 박스예시를 생각한다면, 각 transport plan은 γ였고, 이 모든 계획들의 집합을 Π라 한다.

즉 Pr -> Pg 로 바꿀때의 모든 계획(=결합확률분포) Π(Pr,Pg) 중 하나를 γ(X,Y)라 한다.

image

위 그림에서 파란색 점선이 X의 분포, 빨간색 점선이 Y의 분포, Χ이 결합확률분포를 말한다.

그들 사이의 거리(초록색 직선)의 기댓값이 매 Χ마다 나올 것이고, 이 중에서 가장 작은 값을 찾는 것이 EM distance이다.

다시 정리하자면,

Π(Pr,Pg) 의 모든 결합확률분포 중에서 d(X,Y)의 기대값을 가장 작게 추정한 값을 말한다.

저자는 Example 1 을 통해 EM distance의 정당성을 증명하였다.

image

예를 들어, 이런 두 분포가 있을 때 둘 사이의 거리를 각각의 메트릭으로 구해본다.

image

여기서 특징은 TV, KL, JS는 두 분포가 겹치지 않을 때는 불연속이 된다.

즉 두 분포가 서로 겹치는 경우에는 0, 그렇지 않을 때는 무한대 또는 상수로 극단적인 값이 나온다.

다른말로 다시 말하자면, θ_t 가 0으로 수렴할 때, EM에서는 P_θ_t는 P_0으로 수렴하지만, 다른 메트릭에서는 수렴하지 않는다. 이를 그림으로 나타낸게 아래그림.

image

결론 ; EM distance를 사용하면 low dimensional manifold에서 gradient descent를 이용해 probability distribution을 배울 수 있다.

그래서 WGAN에서는 EM distance를 loss function으로 사용하기로 하고, 그러기 위해서는 아래와 같은 가정을 만족해야한다.

image

한국말로 풀어쓰자면,

Pr : 목표 distribution

Pθ: 학습시키고 있는 현재 distribution, gθ(z)의 분포이고 g는 매핑함수

  1. g가 θ에 대해 연속적이면, W(Pr, Pθ)도 연속적이다.

  2. g가 locally Lipschitz이고, 가정1을 만족한다면, W(Pr, Pθ)는 모든 점에서 연속적이고, 미분가능하다.

  3. 1,2 가정은 JS divergence와 KL divergence 에서는 성립하지 않는다.

잠깐, 여기서 locally Lipschitz 가 뭔지 집고 넘어가자.

(출처: https://freshrimpsushi.tistory.com/875)

음..저게 무슨 소리인지..

쉽게 생각하면 K를 부등식의 우변에 남기고 나머지를 좌변으로 옮겨본다면

두 점 사이의 거리를 일정 비 (=K) 이상으로 증가시키지 않는 조건 을 말한다.

즉 립시츠 조건을 쓰면 기울기가 K 이상으로 넘어가지 않기 때문에 gradient exploding 같은 문제를 예방할 수 있다고 한다. 일단은 이정도만 알고 넘어가도록 하겠다.

image

추론1은 EM distance를 최소화 시켜 학습하는 것이 neural network에서 말이 된다는 것을 말해준다.

gθ가 파라미터 θ를 사용하는 feedforward neural network 라고 하고,

p(z) 는 p(z)의 모든 샘플의 크기의 기댓값이 무한대보다는 작다는 것을 만족하는 사전확률이라고 하자.

그럼 가정1(appendix 참고)이 만족되고 따라서 W(Pr, Pθ)는 모든곳에서 연속적이고 거의 모든곳에서 미분가능하다.

이것에 대한 증명은 appendix에 나와있다. 일단 나는 스킵하겠다.

지금까지 이 모든것은 결국

EM distance가 loss function(cost function)으로 쓰기 적합하고 그것은 JS divergence보다 낫다는 것을 말하고 있다.

그리고 Theorem2 에서는 KL(strong), JS, TV,EM(weak) 순으로 strength가 정렬됨을 설명하는 내용이다.

image

  1. TV가 0으로 수렴하는 것은 JS가 0으로 수렴하는 것과 동등하다.

  2. EM이 0으로 수렴하는 것은 Pn이 random variable distribution에서 P로 수렴하는 것과 동등하다.

  3. KL이 0으로 수렴하는 것은 (1)을 암시한다.(즉, KL->0 => TV-> 0 or JS->0)

  4. (1)은 (2)를 암시한다. (TV-> 0 or JS->0 => EM->0)

우선 증명은 생략하고 이 정리는 결국 EM distance가 low dimensional manifold에서 다른 distance보다 적합하다는 것을 말해주는 것이다.

Section 3. Wasserstein GAN

image

​ EM 수식을 다시 살펴보면 inf이 나오는데 사실 이부분은 계산이 힘든 부분이다(intractable).

그 이유는 결합확률분포 Π(Pr,Pg)를 할려면 Pr을 알아야되는데, 우리는 Pr을 알고자하는게 목적이기 때문이다.

따라서 Kantorovich-Rubinstein duality를 사용해서 식을 바꿔본다.

$\parallel f \parallel _{L} \leq 1$ 은 f 가 1-립시츠 함수를 만족할 조건이다.

그래서 우리는 이제 이 f라는 함수를 알아내면 W값을 구할 수 있게 되는데, 이를 위해 변수 w를 추가로 사용하여 f_w를 갱신하면서 근사하는 방식​을 사용할 것이다. 이 때 f_w는 어떤 k에 대한 k-립시츠함수이다.

그리고 기존식에서 Pθ에 대한 부분을 gθ(z)에 대한 식으로 바꿔준다.

image

이 모습은 마치 GAN Loss와 흡사하다.

image

(GAN Loss)

이제 또 여기서 Theorem3이 나오는데, 이것은 위 식을 어떻게 최적화할지를 설명해주고 있다.

image

첫번째 식을 θ에 대해 미분하면 Pr에 대한 항이 사라지면서 두번째 항만 남아있게 된다.

원래는 EM distance를 minimize 시키는 태스크였다면 식이 변환되면서 maximization task로 변환이 된다. 따라서 W는 θ에 대해 gradient ascent 이 일어나고 반대로 generator에서는 앞에 음수항이 붙었기 때문에 gradient descent가 일어난다.

앞에서도 말했듯이 w라는 변수에 대해서 f_w를 갱신시켜 근사하는 방식을 채택한다고 했으니, 일반적으로 딥러닝에서 기울기를 갱신시켜 파라미터를 갱신시키는 방법과 거의 유사하다고 생각하면 된다.

특히 지금 WGAN과 GAN은 매우매우 네트워크 구조가 유사한데,

유일한 차이점은 GAN에서는 D의 아웃풋 + sigmoid function 으로 나오는 값을 로스함수에 집어넣는 방식이었다.

WGAN에서는 sigmoid를 사용하지 않으며 아웃풋 스칼라 값 자체를 사용하게 된다(강화학습에서 value function과 유사). 따라서 여기서는 discriminator대신에 critic이라는 이름을 붙혀주었다. 아무래도 sigmoid를 쓰면 saturation현상이 있는데 그때문에 시그모이드를 사용하지 않았다.

image

(출처 https://jonathan-hui.medium.com/gan-wasserstein-gan-wgan-gp-6a1a2aa1b490)

여기서 핵심은 w라는 변수는 W라는 compact space내에 존재하는데,

W가 compact하다는 것은 모든 f_w 함수가 k-립시츠를 만족한다.

립시츠 조건을 만족하도록 discriminator(=critic)의 파라미터 w 는 일정한 범위 [-c,c] 안에 있도록 강제로 제한해버린다. 이 과정을 clipping 혹은 clamping이라고 부른다.​

이 논문에서는 [-0.01, 0.01] 이라고 범위를 잡아버렸다.

그런데 이 논문에서도 이 방법에 대해서 “terrible way”라고 일컫을 정도로 안좋은 방법이긴 하다.

그 이유는 만약 c가 매우 크다면, 한계점이 너무 높아서 그 한계까지 도달하기위해서는 너무나 오랜시간이 걸릴 수 있고,

만약 c가 너무 작다면, 레이어가 많은 네트워크의 경우 vanishing gradients 문제가 발생할 수 있다.

그러나 이 저자는 이 방법이 너무나 간결하고, 이미 어느정도의 성능을 보여서 일단은 추후의 연구주제로 남겨놓겠다고 하였다.

image

이것이 바로 WGAN의 수도코드이다.

w는 RMSProp optimizer를 사용하는데 그 이유는 뒤에서 다룰것이다.

w를 한번 갱신한 후 clip을 해주고 있다.

이 그림은 기존 GAN과 WGAN의 discriminator(or critic)가 어떻게 다르게 동작하는지를 보여주고 있다.

빨간색 선이 우리가 아는 discriminator인데 보다시피 엄청나게 빠르게 real/fake를 잘 구분하게 되지만, 금방 gradient vanishing현상이 나타나버린다.

반면에 하늘색 선은 WGAN의 critic인데 saturate되지도 않고 linear형태로 깔끔하게 gradient가 나오고 있다.

그 원인에는 clipping에도 있다. weight값을 제한함으로써 function이 과하게 바뀌는 것에 대해서도 제약이 걸리는 것이다. 그리고 중요한것은 이는 mode collapse가 아예 발생할 수 없는 상황이 되어버린다.

Section 4. Empirical Results

( with EM distance )

image

( with JSD )

이전 GAN 모델들만 해도 generator가 학습이 잘 되었는지를 확인하려면, 로스추이를 살펴보는게 아니라 생성된 이미지를 저장하여 직접 눈으로 확인하는 방식이었다. 즉 이미지 퀄리티가 좋아진다고 해서 로스가 줄어드는 것은 아니었다.

그래서 첫번째 실험은 이미지의 퀄리티와 loss간의 상관관계를 살펴보는 실험 이었다.

JSD를 사용할때 위쪽 두개의 그래프를 보면, 학습이 진행될수록 오히려 예측값이 상승하거나 아니면 constant가 나온다. 그리고 JSD의 하한값인 log2=0.69 에 어느순간 고정되어버린다.

이 말은 즉, JS distance saturates = discriminator has 0 loss = generated samples are meaningful

인 것이지만, 예외적으로 mode collapse에 빠졌을때 무의미한 이미지를 생성해낼 수 있다는 말과 같다.

반면에 W값은 이미지의 퀄리티가 좋아질수록 감소하는 추이를 보이고, 좌측 맨 아래 도표의 경우 망한 이미지에 대해서는 아예 값의 변화가 없는 것을 알 수 있다.

그렇기 때문에 EM distance를 사용하면 예전처럼 매번 이미지를 저장하여 모드 콜랩스에 빠졌는지 학습이 잘 되었는지 확인하지 않아도 된다는 것이다!

그러나 이 방법이 모델의 정량적 평가를 한다고 아직 단정지을 순 없다고 한다. 왜냐하면 critic이 다른 모델들끼리 서로 비교하는 것은 아직까진 힘들수도 있다고 한다.

그리고 아까 위해서 언급했던 RMSProp의 사용이유 에 대한 언급이 나오는데,

Adam과 RMSProp간의 차이점을 먼저 말을 하자면

RMSProp + Momentum = Adam 이다.

즉 모멘텀이 있고없고가 두 옵티마이저의 차이점인데, 바로 이 모멘텀에서 문제가 발생한다는 것이다.

critic학습 시 로스가 nonstationary(극한값이 존재하지 않는것)하기 때문에, 모멘텀을 쓰는 것이 오히려 안좋다.

특히 로스가 갑자기 증가해서 샘플퀄리티가 안좋아지는 경우, Adam step의 방향과 gradient 방향이 반대가 되어 코사인값이 음수가 되어버린다. 코사인이 음수가 되면 불안정성이 더욱 증가되어 Adam 에서 모멘텀을 뺀 RMSProp을 채택하게 되었다고 한다.

image

두번째 실험은 모델의 정량적평가이다.

Figure 5 는 DCGAN 구조를 사용하였을때 WGAN과 기존 GAN간의 차이점을 살펴본것이다.

DCGAN의 우수함 덕분에 두 경우 모두 좋은 퀄리티를 보여주었다.

Figure 6은 DCGAN구조에서 batch norm을 빼버리고 generator의 필터수를 고정하여 전반적으로 파라미터가 줄어든 경우이다. 놀랍게도 기존 GAN은 아예 이미지를 생성하지 못하고 있다.

image

Figure 7은 generator의 구조를 MLP로만 이루어져있도록 수정한 것인데, 물론 이전 실험들에 비해 퀄리티가 떨어지지만 기존 GAN에 비해 WGAN은 어느정도 이미지를 생성해내고 있다. 그리고 중요한 것은 기존 GAN에서는 mode collapse현상이 나타나고 있다.

+) Weight clipping의 문제점을 해결하기 위해서 나온 모델이 있는데,

WGAN-GP라고 기존 critic loss에다가 gradient panelty라는 것을 더해서 clipping 대신에 weight가 급변하는 것을 막아준다.

보다 자세한 내용은 여기를 참고.

https://jonathan-hui.medium.com/gan-wasserstein-gan-wgan-gp-6a1a2aa1b490

박나깨

박나깨

저는 Deep Learning, Computer Vision, AI, Image Processing에 관심이 있는 학생입니다.