2017년 4월 28일 금요일

초짜 대학원생의 입장에서 이해하는 Auto-Encoding Variational Bayes (VAE) (2)


저번 글에 이어 Variational bound에 대한 얘기를 마치고 VAE가 기존 방식들과 어떻게 다른지, 장점은 무엇인지 등을 살펴보겠습니다.




2017년 4월 19일 수요일

[PR12-Video] 1. Generative Adversarial Nets


TensorFlowKR facebook comunity에서 모인 12명의 paper readers (PR12)가 읽어주는 Deep learning paper awesome list 100선 by Terry Um.

#1. Generative Adversarial Nets


매주 일요일 두 명이 각각 40분 동안 발표하고 질문을 받으며 진행하게 되었는데요 그 첫 머리를 제가 GAN으로 시작하는 영광을 얻었습니다. 이런 촬영이 처음이라 맨 뒤에 GAN variants를 소개하다가 40분을 초과하여 살짝 끊겼지만 그래도 주요한 내용은 모두 커버해서 다행입니다. 다음부터는 타이머를 켜두려구요.

슬라이드: https://www.slideshare.net/thinkingfactory/pr12-intro-to-gans-jaejun-yoo

동영상이 너무 길다 싶으신 분은 아래 다음 읽을거리 중 GAN 포스팅을 읽으셔도 됩니다 :)
다음에 또 다른 주제로 뵈어요~!

다른 분들의 발표도 보고 싶다면: PR12 딥러닝 논문읽기 모임

다음 읽을거리






2017년 4월 18일 화요일

초짜 대학원생의 입장에서 이해하는 Auto-Encoding Variational Bayes (VAE) (1)

* Auto-Encoding Variational Bayes, Diederik P. Kingma and Max Welling 2014를 바탕으로 한 리뷰

안녕하세요 오늘은 GAN 시리즈 대신 GAN 이전에 generative model계를 주름잡고 있었던 Variational Auto-Encoder a.k.a. VAE에 대해 살펴보겠습니다. 그동안 논문들을 보다보면 GAN과 VAE를 비교하며 어떤 차이점이 있는지에 대해 여러 차례 언급이 되었기에 제대로 보지는 않았는데도 익숙할 지경입니다.

원래 뭐든 이름을 제대로 알면 다 아는거라고 하죠? :) 그럼 이름에 왜 "Variational"이 들어가고 "Auto-Encoder"는 어떻게 쓰이는지 확인해보겠습니다.




2017년 4월 6일 목요일

초짜 대학원생의 입장에서 이해하는 BEGAN: Boundary Equilibrium Generative Adversarial Networks (2)

* BEGAN: Boundary Equilibrium Generative Adversarial Networks David Berthelot et al. 2017을 바탕으로 한 리뷰

지난 글에 이어 BEGAN 내용을 쭉 살펴보고 마무리해보겠습니다. 마지막 부분에 얘기했었지만 GAN에서는 generator와 discriminator 사이의 파워 게임에서 균형을 맞춰주는 것이 매우 중요합니다. 이 균형이 잘 안 맞으면 discriminator가 generator를 쉽게 이기는 경우가 많은데 BEGAN에서는 이 부분도 equilibrium measure technique이라는 개념을 도입해서 일부분 해결을 해줍니다. 심지어 한 쪽이 좀 더 학습이 잘 된 경우에도 모델이 안정적으로 학습되게 해준다는 것을 실험 결과로도 보여줍니다.




2017년 4월 5일 수요일

초짜 대학원생의 입장에서 이해하는 BEGAN: Boundary Equilibrium Generative Adversarial Networks (1)

* BEGAN: Boundary Equilibrium Generative Adversarial Networks David Berthelot et al. 2017을 바탕으로 한 리뷰

구글이 미쳤어요


Hot한 논문은 빨리 리뷰해야 제맛이죠. 3월 31일날 arXiv에 올라온 따끈따끈한 논문인데 커뮤니티 사이트에 올라오는 글 덕에 편하게 살펴보다가 깜짝 놀랐습니다. 구글은 역시 구글인가 봅니다. 결과가 아주 어마무시하네요. 본문 중에
" We focus on the image generation task, setting a new milestone in visual quality, even at higher resolutions."
라는 말이 나오는데 과연 milestone이라 자신할만한 결과입니다...이름도 정말 멋지게 잘 지었습니다. BEGAN이라니.

BEGAN으로 생성된 이미지들 (구글이 정말 미쳤습니다..)

정말 이 정도면 data augmentation을 해도 되지 않나 하는 생각이 듭니다. 이 결과만 해도 128 X 128 이미지 사이즈로 생성된 것인데 사실 확대해서 보아도 어색함을 느끼기가 어려울 정도입니다.  처음엔 실제 데이터 이미지를 소개하는 것을 잘못 이해했나 하고 캡션을 다시 봤을 정도입니다.

BEGAN의 contribution 


저자들이 얘기하는 BEGAN의 contribution은 다음과 같습니다 (하나하나 따로만 봐도 빠질 것이 없네요):

  • 단순하지만 강력한 구조 빠르고 안정적인 학습과 수렴이 가능한 GAN
  • Discriminator와 generator 사이의 균형을 조정해주는 equilibrium contept
  • 이미지의 다양성과 질(quality) 사이의 trade-off를 조정하는 것이 가능한 새로운 방법
  • "수렴"의 approximate measure 

BEGAN은 기본적으로 앞서 나온 EBGAN과 WGAN에서 얻은 아이디어와 지금까지 개발된 다른 테크닉을 잘 사용해서 (물론 새로운 아이디어도 많이 있으나) 이렇게 좋은 결과를 만들어냅니다. 여기에 더해 (이미 알려진 것을 잘 사용하는 것도 정말 능력입니다만 이렇게까지 좋게 만들 수 있을 지는 상상도 못했네요.)

일단 BEGAN은 EBGAN과 상당히 닮은 뼈대를 가지고 있습니다. EBGAN이 discriminator에 auto-encoder를 사용하였던 것과 마찬가지로 BEGAN도 auto-encoder를 사용합니다. 다만 한 가지 중요한 다른 점은 일반적인 GAN이 data distribution을 맞추기 위해 학습하는 것에 반해 BEGAN은 auto-encoder loss distribution을 맞추려 한다는 것입니다. 이 때 Wasserstein distance를 사용한다는 점도 per-pixel Euclidean distance를 사용하는 EBGAN과는 다른 점입니다.




2017년 4월 2일 일요일

초짜 대학원생의 입장에서 이해하는 LSGAN (2)

Least Squares Generative Adversarial Networks Xudong Mao et al. 2016을 바탕으로 작성한 리뷰

저번 글에 이어 LSGAN의 장점과 f-divergence와의 관계 등을 수식과 함께 좀 더 구체적으로 살펴보겠습니다.

LSGAN의 장점


LSGAN의 장점은 크게 두 가지로 나눌 수 있습니다. 지난 글에서도 언급했었지만 기존 GAN은 generator가 만든 sample이 실제 data distribution과 거리가 멀지라도, sigmoid cross entropy loss function 입장에서는 일단 discriminator를 속이기만 하면 문제가 없기 때문에 별다른 피드백을 주기 어렵습니다 (아래 그림).

Sigmoid decision boundary

하지만 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이 좀 더 안정적인 학습이 가능하다고 설명하는군요.

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