[
  
    {
      "title"       : "StackGAN",
      "category"    : "",
      "tags"        : "deep learning, GAN, Generative Model, Text",
      "url"         : "./Stack-GAN.html",
      "date"        : "2021-09-25 19:32:20 +0000",
      "description" : "Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks",
      "content"     : "StackGAN의 목적text-to-image의 시초라고도 볼 수 있지 않을까 싶다. 이 논문은 단순히 Vanila GAN에 upsampling layers를 더한 GAN_INT-CLS 보다는 GAN을 두 층을 쌓아서(Stack) 더 좋은 성능을 낼 수 있음을 보여준다.조금 더 디테일하게 들어가보자면 두개의 sub-problems로 나눈다. 원초적인 형태, 색, 그리고 텍스트에 알맞는 object를 스케치 한다. 텍스트 설명을 한번 더 입력으로 받고, 위에서 나온 1차적인 스케치에 고화질로 덧칠한다.문제 시나리오기존의 바닐라 GAN을 이용해서 text-to-image를 구현하는 것은 굉장히 어렵다. 보통 GAN에다가 upsampling layers를 더해서 고화질 이미지를 만드는 경우, 1. 높은 학습 instability와 2. nonsensical outputs를 만들어 낸다.그렇다고 저화질 이미지를 만드는 경우 =&gt; 디테일한 부분 혹은 생생한 부분(e.g. 새의 눈동자)들이 부족하다.해결 이에 저자는 사람 페인터가 그림을 그리는 방법에서 착안을 받아, 목적에서 언급한 두개의 방법을 두개의 Stacked Generative Adversarial Networks로 구현 제한된 학습 text-image pairs는 text conditioning manifold의 부족으로 이어진다. 이에 Conditioning Augmentation technique을 제시하여, latent conditioning manifold에서 약간의 random 작은 변화를 일으키고, 만들어지는 이미지들의 다양성을 증가시킨다.traing procedure여기서 x는 true data distribution에서의 real image, z는 noise vectorModel ArchitectureConditioning Augmentation텍스트 t는 encoder를 통해 인코딩 되고, 텍스트 임베딩 ⍴가 된다. (이 때 encoder는 FC Layer이다.) 이 후 한번 더 nonlinearly 변형되어서 generator의 input으로 사용될 수 있는 conditioning latent variables가 된다.** 여기서 문제인 점이, data의 수가 제한되어 있기에, lantent data manifold에서의 불연속성을 야기하기도 한다.이를 해결하기 위해 Conditioning Augmentation technique를 제시한다.latent variable c를 텍스트 임베딩 ⍴를 이용해 만들어진 independent Gaussian distribution으로 부터 랜덤으로 뽑아낸다.(VAE의 reparametrization trick과 비슷한거 같네요, 그런데 실제로 이 기법을 이용했네요!)Stage- 1&amp;2 GAN위에 Model Architecture에서 어떻게 모델이 구성되고 돌아가는지를 확인할 수 있다.여기서 몇가지 특이한 점 (바닐라 GAN과의 차이점)이 있다. 첫 번째는 Discriminator 학습에 있어서, real images와 corresponding text descriptions을 positive pair로 제공받는다."
    } ,
  
    {
      "title"       : "Variational Auto Encoder",
      "category"    : "",
      "tags"        : "deep learning, autoEncoder, KL, Generative Model",
      "url"         : "./Variational-Auto-Encoder-copy.html",
      "date"        : "2021-09-18 19:32:20 +0000",
      "description" : "Taking a look at variational auto encoder in deeper.",
      "content"     : "첫 글이네요 &gt;&lt; 부족한 점이 많으니, 틈틈히 피드백 해주시면 감사하겠습니다.VAE의 목적\" We introduce a stochastic variational inference and learning algorithm that scales to large datasets and, under some mild differentiability conditions, even works in the intractable case\"Stochastic Variational InferenceVariational Inference는 사후확률(posterior) 분포 \\(p(z \\vert x)\\)를 다루기 쉬운 확률 분포 q(z)로 근사하는 것을 말한다. 이는 사후확률 분포 계산이 어렵기(intractable) 때문이다.여기서 KLD(Kullback-Leibler divergence) 개념이 등장한다. 간단하게 두 확률 분포 차이 \\(p(z \\vert x)\\) &amp; \\(q(z)\\)를 계산하는데 사용하는 함수이다. KLD가 줄어드는 쪽으로 q(z)를 업데이트하는 과정을 통해 사후 확률을 잘 근사하는 q*(z)를 얻는게 VI의 아이디어이다.학습된 근사 사후 추론 모델은 recognition, denoising, representation, visualization의 목적으로 활용될 수 있다. 본 알고리즘이 인식(recognition) 모델에 사용될 때, 이를 Variational Auto-Encoder라고 부를 것이다.그렇다면 업데이트 하는 방법이 핵심이 되겠네요?! =&gt; SVI: Gradient Descent를 VI에 적용한 방법참고문제 시나리오i.i.d x로 이루어진, \\(X = \\sum\\limits_{i=1}^N{x_i}\\)를 가정한다. 또한 해당 x는 관측되지 않은 연속 확률 변수 z를 포함한 어떠한 random process에 의해 만들어졌다고 가정한다.intractability해결방안 : \\(p(z \\vert x)\\)와 근접할 수 있는 \\(q(z \\vert x)\\)라는 additional network를 정의하자.a large data데이터가 너무 크면 배치 최적화는 연산량이 매우 많다. 우리는 작은 미니배치나 데이터포인트에 대해 파라미터 업데이트를 진행하고 싶은데, Monte Carlo EM과 같은 Sampling Based Solution은 데이터 포인트별로 Sampling Loop를 돌기 때문에 너무 느리다.해결방안 효율적인 ML/MAP 근사 추정 제안 파라미터 θ의 선택에 따라 관측값 x가 주어졌을 때 잠재 변수 z에 대한 효율적인 근사 사후 추론을 제안 변수 x에 대한 효율적인 근사 Marginal Inference를 제안한다.Kullback-Leibler Divergence위에서 언급한 KLD에 대해서 한번 더 다루고 가야, 하단에서 다룰 Margianal Likelihood에 대해 알 수 있다.다음은 KLD식이다. P와 Q분포가 동일하면 DKL은 0을, 다르면 다를수록 높은 값을 갖게 된다.참고Marginal Likelihood다음은 데이터 포인트 하나에 대한 Marginal Likelihood를 재표현한 식이다.다음 정리를 통해, \\(p(z \\vert x)\\)가 Intractable하므로, 계산할 수 없는 KL부분(우측)을 제외한 Tractable Lower bound를 구할 수 있다.이때 해당 intractable KL term은 항상 &gt;=0 이다.다음은 위의 수식을 거쳐 구한 Marginal Likelihood의 Variational Lower Bound(ELBO)이다.이 때 학습은 당연하게도 Lower bound를 최적화하는 방향으로 이루어지게 된다.How?위에서 언급했지만, Lower Bound L(θ,ϕ;x(i))를 θ,ϕ에 대해서 미분하고 최적화하고 싶은데 쉽지 않다.이러한 타입의 문제에 대해 일반적으로 쓰이는 Monte Carlo Gradient Estimator는 굉장히 큰 분산을 갖고 있어서 우리의 목적에 적합하지 않다.참고: Variational bayesian inference with stocahstic search, David M Blei, ICML-12SGVB estimatormild condition 아래에서, 근사 Posterior \\(q(z \\vert x)\\)를 Reparameterize할 수 있다. 이 때 mild condition에 대해 서는 뒤에서 다루겠다. (Reparametrization trick)\\(q(z \\vert x)\\)라는 근사 Posterior로부터 Samples를 생성하기 위해, 논문에서는 다른 방법을 사용하였다. z가 연속형 확률 변수이고, z ~ \\(q(z \\vert x)\\)가 어떠한 조건부 확률을 따른다고 하자. 이 때 z를, z = g(ϵ,x)라는 Deterministic 변수라고 표현할 수 있다.이 떄 ϵ는 독립적인 Marignal p(ϵ)를 가지는 auxiliary variable이고, g(.)는 ϕ에 의해 parameterized되는 vector-valued 함수이다.이 reparameterization을 통해 근사 posterior의 기댓값을 ϕ에 대해 미분 가능한 기댓값의 Monte Carlo 추정량으로 재표현하는 데에 사용될 수 있다.우선 ELBO에서 좌측은 우선 킵해놓고 우측 \\(DKL(q(z \\vert x) || p(z))\\)를 조금 보겠다. 해당 식은 적분 수식을 직접 풀어 계산할 수 있다. (appendix 참고)이제 남은 것은 expected reconstruction error에 해당하는 \\(Ez(logp(x \\vert z))\\)를 풀어주는 것이다.다음의 보라색 부분은 L개의 Sample을 뽑아 이에 대한 근사치로 추정량을 구하는 것을 보여준다.Prior로부터 나온 근사 Posterior에 대한 KLD 값인 핑크색 항은 Regularizer의 역할 (qϕ 라는 inference 를 위한 확률분포가 pθ 와 비슷하게끔 만드는)을 한다.Stochastic Gradients 계산Reparameterization Trick나는 왜있을까.."
    } 
  
]
