Deep Learning study

Spectral Normalization for Generative Adversarial Networks(SN-GAN) - (1) 본문

AI/papers

Spectral Normalization for Generative Adversarial Networks(SN-GAN) - (1)

HwaniL.choi 2019. 9. 20. 20:48
반응형

오늘 정리할 논문은 spectral normalization GAN 입니다. (모바일이라면 pc버전으로 보세요 ! )

 

논문을 보기전에 이 전의 포스팅인 립시츠 함수와 립시츠상수, Singular value decomposition(SVD),  Matrix norm에 대해서 알고 본다면 훨씬 이해가 쉬울것 입니다. ! 

 

이 논문에서는 Discriminator의 학습을 안정화(stabilize)시키기위해서 새로운 weight normalization 기법인 Spectral Normalization을 소개합니다.

Introduction

 

GAN의 기본적인 컨셉은 model의 분포와 discriminator를 번갈아가면서 학습시켜 model의 분포가 target분포를 따라가게 만드는 것이죠. 이러한 컨셉은 모두 학습할때에 각 스텝에서 optimal한 discriminator에의해 측정됐다는 가정이 깔려있습니다. 이말을 다시 생각해보자면, 그 만큼 discriminator의 성능이 GAN의 성능을 좌지우지 한다는 것입니다.

 

따라서 discriminator의 성능을 컨트롤 하는것이 가장 큰 숙제입니다. high dimensional space 에서는 더더욱 그것이 어려워지게됩니다. 만약 이러한 문제로 인해 discriminator가 학습하는동안 부정확한 estimation을 내놓고 불안정하게 된다면 generator는 target distribution을 학습하는데 어려움을 겪게 됩니다. 심지어 model distribution의 support와 target distribution의 support이 겹치는부분이 없게된다면 discriminator가 target과 model distribution을 완벽하게 구분해내게 됩니다. 즉, 더이상 학습을 하지 않는상태가 되는것입니다.

 

이러한 문제를 해결하기위해서 소개하는것이 spectral normalization입니다. 이것은 discriminator의 학습을 안정화시키는 방법이며, 다음의 특성을 가집니다.

 

  • Lipschitz constant만이 조정되어야하는(tuned) 유일한 hyper-prameter입니다. 그리고 단 하나뿐인 이 hyper-parmeter마저도 그닥 신경써서 조정할 필요가 없습니다.
  • 실행이 간단하고 추가적인 계산량이 적습니다.

사실 위에서 말한 Lipschitz constant의 tuning없이도 잘 작동한다고 말하고있습니다. 

 

Method

 

이제 이 방법에대한 이론적인 배경에 대해서 알아보도록 합시다. 다음과 같은 형태의 간단한 discriminator를 예시로 들고 , input을 x라고 합시다.

 

$$ f(x,\theta) = W^{L+1}a_L(W^L(a_{L-1}(W^{L-1}(...a_1(W^1x)...)))) \qquad   (1)$$

$$ where \ \theta \ := \ {W^1,...,W^L, W^{L+1}} \ is \ the \ learning \ parameters \ set, \ W^l \in \mathbb{R}^{d_l \times d_{l-1}}, W^{L+1} \in \mathbb{R}^{1 \times d_L}, \  \\ \ and \ a_l \ is \ an \ element-wise \ non-linear \ activation \ function.$$

 

위의 식은 쉽게 이해하실 수 있을것입니다. 단순히 layer들 (W) 과 activation function을 함수로써 표현해놓은 것입니다. (식의 간편성을 위해 bias는 생략했습니다.) 

이렇게 표현된 식에 의해서 discriminator의 마지막 output은 다음과같이 주어지게 됩니다.

$$ D(x,\theta) = \mathcal{A}(f(x,\theta)), \qquad (2)$$

$$ where \ \mathcal{A} \text{ is an activation function corresponding to the divergence of distance measure of the user's choice}$$ 

 

그리고 기본적인 GAN의 공식은 다음과같이 주어지게 되죠.

$$ \min_{G}\max_{D}V(G,D) $$

 

위의 기본 GAN의 minimax문제에서 볼 수 있듯이, 학습을 할 때에 D에대해 max인 , 즉 optimal한 D를 가정하고 학습을 진행하게 됩니다.

이러한 optimal한 D의 형태는 fix된 G에 대해서 다음과같이 주어진다는것을 알고있습니다.

 

$$ D^{*}_{G}(x) := q_{data}(x) / (q_{data}(x) + p_G(x))$$

 

예를들어, 이러한 D는 바로 아래와같이 표현 될 수있습니다.

 

$$  D^{*}_{G}(x) := {q_{data}(x) \over (q_{data}(x) + p_G(x))} \\ = sigmoid(f^*(x) = log_{q_data}(x) - log_{P_G}(x), \qquad (3)$$

$$ \text{its derivative }, \nabla_x f^*(x)= {1 \over q_{data}(x)} \nabla_x q_{data}(x) - {1 \over P_G(x)}\nabla_x P_G(x) \qquad (4) $$

 

위의 f함수는 단순히 sigmoid에 넣었을때 위의 optimal한 D의 형태가 나오게 만드는 함수입니다. 다시말하면 optimal 한 D가 나올때는 f가 저런식으로 생겨먹어야 한다는것이죠.

이런 f의 도함수는 (4)번식에 표현되어있는데 보시는것과 같이 unbounded 되어있으며 심지어 계산불가능할때도 있습니다. 따라서 뭔가 제약을 걸어주는 장치가 필요해보입니다. 

 

(4)번이 unbounded 되어있다는 말은 곧 이 함수는 Lipschitz continuty하지 않다는 것이고 , 그 말은 Lipschitz constant가 unbouned 되어있다는 말과 같습니다. 그러면 Intro에서 설명했던 Lipschitz contant를 조절한다는 설명이 왜 나왔는지를 알 수 있을겁니다. 따라서 이 논문의 주요 목적은 Lipschitz constant를 bounded하게 만들어 D의 gradient 가 폭발하는것을 막아주자는것입니다.  그것을 식으로 표현하면 다음과 같습니다.

$$\underset{\lVert f \rVert_{Lip} \le K}{\arg\max}V(G,D) \qquad (5)$$

Lipschitz norm을 K이하로 제한을 걸겠다는 것이죠.!

 

 

 

 

오늘은 시간이 없어 여기서 끊어가겠습니다. 다음 포스팅에서 본격적으로 spectral normalization방법에 대해서 알아보도록 하겠습니다.  그럼 이만 !! 

반응형
Comments