LSGAN의 장점

Sigmoid decision boundary

(a) The sigmoid cross entropy loss (b) The least square loss

f-divergence와의 관계

전에 보여드렸었지만 LSGAN은 다음과 같이 변형된 문제를 푸는데요:

$$\begin{align}&\min_DV_{LSGAN}(D) = \frac{1}{2}\mathbb{E}_{x\sim p_{data}~(x)}[(D(x)-b)^2] + \frac{1}{2}\mathbb{E}_{z\sim p_z(z)}[(D(G(z))-a)^2] \\ &\min_G V_{LSGAN}(G) = \frac{1}{2}\mathbb{E}_{z\sim p_z(z)}[(D(G(z))-c)^2] \end{align}.$$

이를 약간만 더 바꿔주면 아래와 같이 확장할 수 있습니다:



$V_{LSGAN}(G)$에 $\frac{1}{2}\mathbb{E}_{x\sim p_{data}(x)}[(D(x)-c)^2]$가 추가된 것뿐인데 어짜피 $V_{LSGAN}(G)$는 $G$에 대한 문제이기 때문에 solution에는 변화가 없습니다.



이 때, $G$가 fix된 상태에서 optimal $D^*$는 다음과 같습니다.

$$D^*(x)=\frac{bp_{data}(x)+ap_g(x)}{p_{data}+p_g(x)}$$

( * 이 역시도 푸는 방식은 GAN (2)글을 참고하시면 됩니다.)



그러면 이제 위에 소개했던 확장식을 다음과 같이 변형할 수 있습니다 (수식의 간결성을 위해 $p_{data}$를 $p_d$로 대체합니다):





거의 산수에 가까운데요 아무튼 이렇게 풀어 나온 식에 $b-c=1$ 그리고 $b-a=2$라는 조건을 주면,

$$\begin{align}2C(G)&=\int_{\chi}\frac{(2p_g(x)-(p_d(x)+p_g(x)))^2}{p_{d}(x)+p_g(x)} dx\\ &=\chi^2_{Pearson}(p_d+p_g||2p_g)\end{align}$$

라고 합니다. 여기서 $\chi^2_{Pearson}$은 Pearson $\chi^2$ divergence라고 하네요. 즉, $a,b,c$가 위 조건을 만족할 때, LSGAN이 하는 일은 $p_g+p_d$와 $2p_g$ 사이의 Pearson $\chi^2$ divergence를 최소화하는 것과 동치라는 말입니다. 가만히 생각을 해보면 $p_g=p_d$일 때, 즉 generator가 만들어 내는 sample의 distribution이 data distribution과 같을 때 divergence가 최소가 되어 0이므로 궁극적으로 원래 GAN 가고자 하는 방향과 비슷하다는 것을 보여줍니다.



$f$-GAN 논문에서 이야기 하고자 했던 부분 역시도 결국의 JSD 대신 $f$라는 임의의 divergence로 바꿔도 결국에 GAN과 비슷한 일을 할 수 있다는 것을 보여준 것이기 때문에 LSGAN도 같은 맥락에서 볼 수 있다고 주장하는 것입니다.



재밌는 점은 $a,b,c$가 꼭 저 조건을 따르지 않는 경우에도 딱히 성능이 떨어지지는 않았다는 점입니다. 구체적으로 어떤 variation이 있는지에 대한 부분은 논문의 parameter selection section에서 짧게 다루는데 논문의 내용 이해에 크게 중요하지는 않으므로 생략합니다.



실험 결과

이론이나 분석만 좋고 결과가 별로면 사실 좀 그렇죠? (WGAN이 사실 좀...그런 면이 없잖아...) 앞서 애기한 분석을 바탕으로 LSGAN이 기존의 GAN보다 얼마나 잘하는지 보기 위해서 실험을 여러가지 수행하여 결과를 보여주는데 생성된 이미지들의 질이 상당히 놀랍습니다. (이게 바로 기대하지 않았던 녀석이 잘하면 반사 효과를 보는 그런 느낌인건가?...)







위 결과는 LSGAN과 DCGAN의 결과를 비교한 것입니다. 네트워크 구조는 거의 동일하되 끝에 loss function만 다르게 하였다고 합니다. 확대하거나 클릭하여 보시면 아실 수 있는데 꽤나 선명합니다. 저자들도 LSGAN의 결과가 좀 더 선명하고 진짜 같이 만들어 냈다고 주장합니다. 솔직히 이쯤되면 인정할만하군요...



안정성에 대한 실험을 위해 DCGAN에서 비교한 것과 같이 batch normalization (BN)의 유무에 따른 결과 역시도 비교해주는데요 generator에 없는 것을 $BN_G$ generator와 discriminator 둘 다 없앤 것을 $BN_{GD}$라고 표현했고 당연하지만? $BN_{GD}$+Adam 방식 외에는 모두 LSGANs이 mode collapse 없이 잘 수렴했다고 하는군요.











(a), (b)가 $BN_{G}$+Adam인 경우이고 (c), (d)가 $BN_{GD}$+RMSProp에 대한 결과입니다. 여기서 관찰된 내용은 LSGAN이나 GAN이 잘 학습되는데 생각보다 Optimizer의 종류가 영향을 많이 끼쳤다고 하네요. (앞으로 삽질할 때 꼭 참고하겠습니다...-_-;;)



두번째 실험으로는 일부러 discriminator가 saturate하기 좋은 구조로 네트워크를 만들어서 비교했을 때 결과가 어떻게 나오는 지를 확인하였습니다. 이를 위해서 (1) make the generator and the discriminator condition on label vectors (2) add sigmoid activation to the last layer of the discriminator 라고 하는데요. 음...(2)번은 sigmoid가 ReLu 등의 activation function에 비해 잘 saturate하는 것이 알려져 있으니 이 것을 말하는 것인가 싶은데 (1)번은 무슨 말인지 잘 모르겠네요..왜 저렇게 하면 discriminator가 더 잘 saturate하게 되는 것인지....아시는 분? (conditional GAN을 읽어보면 이해가 되려나요)





Specially designed architecture for (a) Generator (b) Discriminator

아무튼 결과는 LSGAN이 그럼에도 불구하고 mode collapse 없이 잘 생성한다는 것을 보여줍니다. 윗 줄의 결과가 LSGAN입니다:







이 외에도 재미있는 실험을 한가지 더 추가하여 보여주는데요 클래스 수가 3740개로 매우 많은 한자를 생성하게 해봤는데 LSGAN이 한자를 읽을 수 있을 정도로 매우 잘 쓸 뿐만 아니라 (나는 까막눈이네...) 라벨도 정확히 일치하게 만들어낸다는 것을 보여줬다고 합니다. 이 경우 data augmentation과 같이 사용할 수도 있기 때문에 실제로 GAN이 만든 이미지나 데이터가 실전에 사용될 수 있는 퀄리티를 뽑아냈다는 점에서 매우 대단한 것 같습니다. $$\begin{align}&\min_DV_{LSGAN}(D) = \frac{1}{2}\mathbb{E}_{x\sim p_{data}~(x)}[(D(x)-b)^2] + \frac{1}{2}\mathbb{E}_{z\sim p_z(z)}[(D(G(z))-a)^2] \\ &\min_G V_{LSGAN}(G) = \frac{1}{2}\mathbb{E}_{x\sim p_{data}(x)}[(D(x)-c)^2] + \frac{1}{2}\mathbb{E}_{z\sim p_z(z)}[(D(G(z))-c)^2] \end{align}.$$$V_{LSGAN}(G)$에 $\frac{1}{2}\mathbb{E}_{x\sim p_{data}(x)}[(D(x)-c)^2]$가 추가된 것뿐인데 어짜피 $V_{LSGAN}(G)$는 $G$에 대한 문제이기 때문에 solution에는 변화가 없습니다.이 때, $G$가 fix된 상태에서 optimal $D^*$는 다음과 같습니다.$$D^*(x)=\frac{bp_{data}(x)+ap_g(x)}{p_{data}+p_g(x)}$$거의 산수에 가까운데요 아무튼 이렇게 풀어 나온 식에 $b-c=1$ 그리고 $b-a=2$라는 조건을 주면,$$\begin{align}2C(G)&=\int_{\chi}\frac{(2p_g(x)-(p_d(x)+p_g(x)))^2}{p_{d}(x)+p_g(x)} dx\\ &=\chi^2_{Pearson}(p_d+p_g||2p_g)\end{align}$$라고 합니다. 여기서 $\chi^2_{Pearson}$은 Pearson $\chi^2$ divergence라고 하네요. 즉, $a,b,c$가 위 조건을 만족할 때, LSGAN이 하는 일은 $p_g+p_d$와 $2p_g$ 사이의 Pearson $\chi^2$ divergence를 최소화하는 것과 동치라는 말입니다. 가만히 생각을 해보면 $p_g=p_d$일 때, 즉 generator가 만들어 내는 sample의 distribution이 data distribution과 같을 때 divergence가 최소가 되어 0이므로 궁극적으로 원래 GAN 가고자 하는 방향과 비슷하다는 것을 보여줍니다.$f$-GAN 논문에서 이야기 하고자 했던 부분 역시도 결국의 JSD 대신 $f$라는 임의의 divergence로 바꿔도 결국에 GAN과 비슷한 일을 할 수 있다는 것을 보여준 것이기 때문에 LSGAN도 같은 맥락에서 볼 수 있다고 주장하는 것입니다.재밌는 점은 $a,b,c$가 꼭 저 조건을 따르지 않는 경우에도 딱히 성능이 떨어지지는 않았다는 점입니다. 구체적으로 어떤 variation이 있는지에 대한 부분은 논문의 parameter selection section에서 짧게 다루는데 논문의 내용 이해에 크게 중요하지는 않으므로 생략합니다.이론이나 분석만 좋고 결과가 별로면 사실 좀 그렇죠? (WGAN이 사실 좀...그런 면이 없잖아...) 앞서 애기한 분석을 바탕으로 LSGAN이 기존의 GAN보다 얼마나 잘하는지 보기 위해서 실험을 여러가지 수행하여 결과를 보여주는데 생성된 이미지들의 질이 상당히 놀랍습니다. (이게 바로 기대하지 않았던 녀석이 잘하면 반사 효과를 보는 그런 느낌인건가?...)위 결과는 LSGAN과 DCGAN의 결과를 비교한 것입니다. 네트워크 구조는 거의 동일하되 끝에 loss function만 다르게 하였다고 합니다. 확대하거나 클릭하여 보시면 아실 수 있는데 꽤나 선명합니다. 저자들도 LSGAN의 결과가 좀 더 선명하고 진짜 같이 만들어 냈다고 주장합니다. 솔직히 이쯤되면 인정할만하군요...안정성에 대한 실험을 위해 DCGAN에서 비교한 것과 같이 batch normalization (BN)의 유무에 따른 결과 역시도 비교해주는데요 generator에 없는 것을 $BN_G$ generator와 discriminator 둘 다 없앤 것을 $BN_{GD}$라고 표현했고 당연하지만? $BN_{GD}$+Adam 방식 외에는 모두 LSGANs이 mode collapse 없이 잘 수렴했다고 하는군요.(a), (b)가 $BN_{G}$+Adam인 경우이고 (c), (d)가 $BN_{GD}$+RMSProp에 대한 결과입니다. 여기서 관찰된 내용은 LSGAN이나 GAN이 잘 학습되는데 생각보다 Optimizer의 종류가 영향을 많이 끼쳤다고 하네요. (앞으로 삽질할 때 꼭 참고하겠습니다...-_-;;)두번째 실험으로는 일부러 discriminator가 saturate하기 좋은 구조로 네트워크를 만들어서 비교했을 때 결과가 어떻게 나오는 지를 확인하였습니다. 이를 위해서 (1) make the generator and the discriminator condition on label vectors (2) add sigmoid activation to the last layer of the discriminator 라고 하는데요. 음...(2)번은 sigmoid가 ReLu 등의 activation function에 비해 잘 saturate하는 것이 알려져 있으니 이 것을 말하는 것인가 싶은데 (1)번은 무슨 말인지 잘 모르겠네요..왜 저렇게 하면 discriminator가 더 잘 saturate하게 되는 것인지....아시는 분? (conditional GAN을 읽어보면 이해가 되려나요)아무튼 결과는 LSGAN이 그럼에도 불구하고 mode collapse 없이 잘 생성한다는 것을 보여줍니다. 윗 줄의 결과가 LSGAN입니다:이 외에도 재미있는 실험을 한가지 더 추가하여 보여주는데요 클래스 수가 3740개로 매우 많은 한자를 생성하게 해봤는데 LSGAN이 한자를 읽을 수 있을 정도로 매우 잘 쓸 뿐만 아니라 (나는 까막눈이네...) 라벨도 정확히 일치하게 만들어낸다는 것을 보여줬다고 합니다. 이 경우 data augmentation과 같이 사용할 수도 있기 때문에 실제로 GAN이 만든 이미지나 데이터가 실전에 사용될 수 있는 퀄리티를 뽑아냈다는 점에서 매우 대단한 것 같습니다.

LSGAN의 장점은 크게 두 가지로 나눌 수 있습니다. 지난 글에서도 언급했었지만 기존 GAN은 generator가 만든 sample이 실제 data distribution과 거리가 멀지라도, sigmoid cross entropy loss function 입장에서는 일단 discriminator를 속이기만 하면 문제가 없기 때문에 별다른 피드백을 주기 어렵습니다 (아래 그림).하지만 LSGAN은 least square loss function을 사용하여 sample이 decision boundary로부터 멀리 떨어져 있는 경우 거리에 따라 패널티를 주기 때문에 generator가 좀 더 decision boundary에 가까운 (hopefully or approximately data distribution에 가까운) sample을 만들도록 할 수 있습니다.LSGAN의 두번째 장점도 이 loss function과 관련이 있습니다. 아래 그림에서 보실 수 있듯이 $x$ 값에 따라 saturate 될 수 있는 sigmoid cross entropy loss function과는 달리 least square loss function이 오직 한 점에서만 최소값을 갖기 때문에 LSGAN이 좀 더 안정적인 학습이 가능하다고 설명하는군요.LSGAN 저자들은 아마도 논문을 읽는 사람들이 least square로 간극을 줄이는 방식이 너무 단순하고 어떻게 보면 무식한? 방식이 아니냐는 생각을 할까봐 걱정이 되었나봅니다. 한 챕터를 할애하여 LSGAN이 푸는 문제에 작은 조건을 추가하면 LSGAN 방식이 결국 Pearson $\chi^2$ divergence를 최소화하는 것과 같은 것이란 것을 보여줍니다. (사실 이게 이렇게 연결이 된다는게 더 신기하네요..)Original 논문에서도 보여주었듯이 GAN의 minimax problem을 푸는 문제는 결국 generator가 근사하고자 하는 $p_g$와 data distribution $p_{data}$ 사이의 괴리를 줄이는 문제와 동치입니다. 특히 GAN은 Jensen-Shannon divergence를 줄이는 것으로 알려져 있죠 ($$C(G) = KL\left(p_{data}||\frac{p_{data}+p_g}{2}\right) + KL\left(p_g||\frac{p_{data}+p_g}{2}\right) -log(4).$$