2020/07/27

2020. 9. 20. 09:33NewsLetter

최근 소식

  • 요즘 가장 화두가 되고 있는 소식은 OpenAI에서 공개한 GPT-3 일 것 같습니다. GPT-3로 앱을 제작하거나, 글을 작성하는등, 다양한 업무를 수행할 수 있다는점이 정말 놀라운데요. GPT-3를 활용한 문서요약 예시는 여기서 살펴보실 수 있습니다!
  • 정부가 한국판 뉴딜 정책을 발표하였습니다. 인공지능 관련 정책으로는 데이터 댐 구축의 일환으로 양질의 데이터를 대규모로 구축, 개방하기 위한 AI 학습용 데이터 구축 사업을 시행한다고 합니다. 이를 통해 자연어, 자율주행, 음성, 시각 등 다양한 분야의 데이터 구축, 개방될 예정입니다.

[S1] Towards Robust and Reproducible Active Learning Using Neural Networks

논문 원문: https://arxiv.org/pdf/2002.09564.pdf

한줄평: Active Learning의 실험 및 평가 방법이 변경 되어야 한다!

  • 현실에서는 Labeled 데이터가 부족한 상황이 많습니다. Labeled 된 데이터가 많으면 좋을텐데, 모든 Unlabeled 데이터를 labeling 하기에는 많은 시간과 비용이 소모될 수 있습니다.
  • Unlabeled 데이터중에서, 어떠한 데이터를 labeling 해서 모델을 학습시키는 과정을 Active Learning이라고 합니다.
  • 본 논문에서는, 다양한 환경 (다양한 annotation batch size, validation set size, regularization 이 탑재된 Backbone등)에서 기존의 Active Learning 방법론들 (RSB, BALD, CoG, Coreset, VAAL, QBC등)을 비교하고 있습니다.
  • 논문의 실험결과에 따르면, RSB (Random Sampling Baseline) 방법론이 그동안 저평가되고 있었으며, 다양한 환경에서 consistent 하게 RSB 보다 뛰어난 방법론은 찾기 어려웠다고 말하고 있습니다.
  • 그리고 이러한 경향성은, Backbone Network (Resnet-18 또는 VGG-16) 가 잘 regularize 되어 있다면 (Autoaugment 또는 Stochastic Weight Averaging 을 가미한 Classifier) Active Leaerning 방법론간의 차이는 더욱 줄어든다고 말하고 있습니다.
  • 결론적으로 이 논문은, 새로운 Active Learning 방법론을 제안하기 위해서는, 1) 다양한 환경에서의 실험 (annotation batch size, validation size 등) 결과를 리포팅 해야하며, 2) 잘 regularize 되어 있는 Backbone Network 기반으로 실험해야 하며, 3) Transferability (A 모델에서 중요한 data는, B 모델에서도 중요한 것인가?를 측정) 또한 고려하여야 한다. 라고 주장하며 논문을 마치고 있습니다.

[S2] Simple and Effective VAE Training with Calibrated Decoders

논문 원문: https://arxiv.org/abs/2007.04964 (Arxiv)

한줄평 : VAE의 decoder 단계에서도 variance를 학습해보자!

  • Variational Autoencoder (VAE) 는 marginal likelihood p(x)p(x) 를 추정할 수 있는 간단하지만, 매우 강력한 모델입니다.
  • VAE 여러 변형이 있지만, continuous data 를 다룰 때는 Gaussian VAE가 가장 대표적인 형태이며, encoder 와 decoder 모두 Gaussian 분포를 활용하고 있습니다.
  • 하지만, 우리는 일반적으로 VAE 를 학습 시킬 때, encoder 단계에서의 variance 는 고려하지만 decoder 단계에서의 variance 는 identity로 fix 합니다 (실제로 VAE 의 reconstruction error term 을 보면, variance 관련된 term 이 없는것을 확인하실 수 있습니다!).
  • 본 논문에서는, decoder 단계에서 mean 뿐만 아니라 variance 도 함께 추정한다면, 더욱 좋은 결과를 낼 수 있다고 소개하고 있습니다.
  • Variance 를 추정하기 위해서 다음 3가지 방법을 제안하고 있습니다. 1) mean 과 유사하게 variance 도 neural net 의 output 으로 추정 2) variance를 free parameter로 설2) variance를 free parameter로 설정정 3) MLE (Maximum Likelihood Estimator) 추정을 통한 optimal variance 추정
  • 추가적으로, beta-VAE 와의 연결관계도 규명하고 있습니다. 왜 갑자기 beta-VAE 가 나오냐구요?! decoder의 variance 를 고려한다는 것은, reconstruction loss 와 KL-divergence 사이의 loss 비율을 변화시킨 다는 것이고, 이는 beta-VAE 와 철학이 유사하기 때문입니다!
  • CelebA, SVHN, MNIST, CIFAR 등에서 실험을 진행하였으며, optimal variance 일반적으로 좋은 성능을 기록하고 있습니다 (적절한 hyper-parameter beta를 찾기 어려운 beta-VAE와는 다르게, 본 논문의 모델은 비교적 안정적인 성능을 보여주고 있네요!)

[S3] On Mixup Regularization

논문 원문: https://arxiv.org/abs/2007.0496 (Arxiv)

한줄평 : Mixup 을 이론적으로 이해하기 위한 첫 걸음!

  • Mixup은 data instance 간의 interpolation 을 통해서, 새로운 data 를 생성 및 학습하는 data augmentation 방법입니다.
  • 간단한 알고리즘에 비해서, 매우 직관적이고 높은 성능향상을 보이고 있습니다.
  • 그 까닭에, Manifold Mixup, CutMix, Puzzle Mix 등 다양하게 연구가 진행되고 있습니다.
  • 반면, 오늘 소개해드리는 논문에서는 Mixup 의 효과를 이론적으로 접근하고자 하였습니다.
  • 저자는 Mixup이 1) data dependent random perturbation 으로 해석할 수 있으며, 추가적으로 2) Calibration, Jacobian regularization, label noise, data instance normalization 관련 regularization term 으로 분리될 수 있다는 것을 밝혔습니다.
  • 이를 기반으로 저자는 1) Mixup + input mode (Mixup 이 data normalization 효과가 있다고 했으니, train 단계에서 Mixup을 사용했다면, test 단계에서도 input 을 그에 알맞게 modification 해줘야겠죠?!) 2) Approximate Mixup (Mixup 목적식을 taylor 전개하면 여러 term 으로 분해 되는데, 그 중, stability 를 저해하는 term 을 제외한 Mixup) 을 추가적으로 제안하고 있습니다.

[L1] RetrieveGAN: Image Synthesis via Differentiable Patch Retrieval

한줄요약: Differentiable한 Patch retrieval로 더 나은 성능의 image synthesis 달성

논문 원문: https://arxiv.org/pdf/2007.08513v1.pdf (ECCV-2020)

Motivation

주어진 scene description으로부터 이미지를 생성하는 작업은 다수의 오브젝트들 간의 복잡한 관계를 파악해야 하는 어려운 문제입니다. 따라서 이를 위해서는 현실적인 이미지를 생성해야 할 뿐 아니라 같은 장면 속의 다양한 오브젝트들의 상호관계를 파악할 수 있어야 합니다.

GAN의 등장 이후 최근에는 scene graph, bounding box, semantic segmentation map 등의 여러 정보들을 조건으로 하는 conditional GAN이 연구되고 있습니다. 그중에서 가장 큰 연구 갈래는 두가지로 나뉘는데, 그 중 하나는 모델이 오브젝트의 외형을 스스로 학습하여 이미지를 생성하는 parametric model과 다른 하나는 memory bank를 활용하여 이미지를 생성하는 semi-parametric model입니다.

Semi-parametric model의 경우, 다음의 두가지 이슈가 존재합니다. 첫번째는 retrieval process가 non-differentiable하지 않아 pre-defined된 embedding이 필요하다는 점, 그리고 두번째는 scene description을 표현하기 위해 다수의 오브젝트들이 필요한데, 보통의 방법론들은 오브젝트를 독립적으로 선택하여 오브젝트 간의 상호 관계를 표현하기 어렵다는 점이 있습니다.

Related works

특정 조건을 주어 그 조건에 맞는 이미지를 생성하는 방법에는 여러가지가 있습니다. 그 중에서 텍스트의 형태로 조건을 주는 경우에는 크게 자연어로 장면이 설명되어 있거나, scene graph의 형태로 설명되어 있는 경우로 나눌 수 있습니다. Scene graph의 경우 오브젝트를 node로 표현하고, 오브젝트 간의 관계를 edge로 표현하여 자연어로 주어진 경우보다 더 명확하다는 장점이 있습니다.

Scene graph가 주어져 이미지를 생성하는 모델들은 대부분 graph convolution network나 text embedding network 등으로 오브젝들의 외형과 오브젝트 간의 관계를 파악하여 conditional generative 모델등으로 이미지를 생성하는 과정으로 이루어져 있습니다. 하지만 현재의 parameteric model들은 픽셀 단위로 이미지를 생성하기 때문에 현실적인 이미지를 표현하기에 부족합니다.

이러한 이유로 최근에는 semo-parameteric model들을 기반으로 레퍼런스 패치들을 이용하여 패치 레벨의 이미지를 생성하는 연구가 진행되고 있습니다. 이러한 모델들은 외부의 patch bank를 참고하여 가장 적합한 patch를 찾고 이를 통해 최종 이미지를 생성하는 과정을 거칩니다. 그러나 이러한 모델들 역시 앞서 서술한 바와 같이 image retrieval 과정은 non-differentiable하다는 점과 patch를 독립적으로 선택한다는 단점들이 있었습니다.

Methodology

RetrieveGAN의 목적은 주어진 scene graph gg로부터 이미지 xRH×W×3x \in R^{H\times W \times 3}을 생성하는 것입니다. 이에 따라 RetrieveGAN은 scene graph encoding, patch retrieval, image generation의 3단계로 이루어져 있습니다.

Scene graph encoding 단계에서는 주어진 scene graph를 입력 받아 이후의 patch retrieval과 image generation에 도움이 되는 정보를 추출하는 것을 목적으로 합니다. 그래서 이 단계에서는 주어진 scene graph 정보에서 feature를 뽑고, 각 오브젝트에 대한 bounding box를 예측하며, 메모리 제약으로 인해 각 오브젝트에 대해 kk개의 후보를 뽑는 pre-filtering 과정으로 이루어져 있습니다.

Patch retrieval 단계에서는 이미지 합성을 위해 다수의 패치를 선택하는 것을 목적으로 합니다. 이 단계에서는 이전 Scene graph encoding 단계에서 뽑은 pre-filter된 patch에서 patch embedding function으로 patch feature를 추출하고 iterative retrieval process를 통해 모든 오브젝트를 선택하게 됩니다. 임의로 선택한 patch feature를 query로 하여 iterative하게 retrieval하는 과정을 통해 patch를 하나씩 뽑아나가 모든 오브젝트에 대한 patch를 선택하게 됩니다.

Single object retrieval. 매 iteration마다 주어진 query에 대해 오브젝트 하나에서 pre-filter된 kk개의 patch에서 한 개의 patch를 선택하게 됩니다. 이때 kk개의 patch에서 ii번째 patch가 선택될 확률 P(x=i)P(x=i)와 비례하는 catogorical 변수 πRk\pi \in R^k, πiP(x=i)\pi_i \propto P(x=i)라고 정의할 수 있습니다. 이 변수는 다음과 같이 주어진 query feature와 patch feature의 l2l_2 distance로 계산할 수 있습니다.

πi=efqryEp(pi;θEp)\pi_i = e^{-\|f_{qry}-E_p(p^i;\theta_{E_p})\|}

이때 fqryf_{qry}는 query의 feature이고, EpE_p는 embedding function을 의미하며, θp\theta_p는 학습가능한 mode parameter입니다. 이 categorical distribution에서 샘플링을 위해서 Gumbel-Max trick을 사용하여 다음과 같이 샘플링을 할 수 있습니다.

argmaxi[P(x=i)]=argmaxi[gi+logπi]=argmaxi[πi^]argmax_i[P(x=i)] = argmax_i[g_i+log \pi_i]=argmax_i[\hat{\pi_i}]

여기서 gi=log(log(ui))g_i=-log(-log(u_i))로 re-parameterization term이며, uiUniform(0,1)u_i \sim Uniform(0,1)입니다. RetreiveGAN에서는 이 과정을 differentiable하게 만들기 위해 argmax를 연속 함수인 softmax operation으로 근사하였습니다.

$$ s=softmax(\hat{\pi})=\frac{exp(\hat{\pi_i}/\tau)}{\sum_{q=1}^k exp(\hat{\pi_q}/\tau)} $$

Iterative retrieval for multi object. 총 n개의 오브젝트 patch를 각각 k개의 오브젝트 patch 후보군에서 뽑기 위해서는 weigthed reservoir sampling strategy를 사용합니다. 총 n×kn \times k개의 patch 후보군에 대해 위에서 정의한 π^i\hat{\pi}_i를 계산하고 π^\hat{\pi}에 대해 nn번의 iteration을 돌면서 softmax 연산을 수행하여 top-kk개를 선택합니다. 이때 j번째 iteration의 patch가 선택될 확률을 π^i(j)\hat{\pi}_i^{(j)}라고 하면 다음과 같이 확률값을 iterative하게 업데이트 할 수 있습니다.

π^i(j+1)π^i(j)+log(1si(j))\hat{\pi}_i^{(j+1)} \gets \hat{\pi}_i^{(j)} + log(1-s_i^{(j)})

그리고 선택된 patch는 다시 선택되지 않도록 선택된 patch의 확률값은 음의 무한대 값으로 바꿉니다. nn번의 iteration 후에는 선택된 patch를 모아 n-hot vector를 계산하게 됩니다. 그리고 중요한 것은 이 모든 과정이 differentiable하다는 점입니다. 따라서 patch embedding function 등과 같은 patch retrieval의 모듈인은 이후의 image generation 모듈의 loss값을 받아 최적화를 할 수 있습니다.

추가적으로 iterative retrieval과정에서 더 나은 학습을 위해 두가지 loss가 들어가게 됩니다. 첫번째는 ground-truth selection loss로 학습과정에서 접근 가능한 ground-truth patch의 feature 후보군에 포함시킨 후 ground-truth path의 feature를 query로 주었을 때 ground-truth path를 선택하는지에 대한 loss입니다. 두번째는 co-occurrence loss로 triplet loss를 통해 co-occurenece embedding space 상의 retrieved patch들의 거리를 최소화는 것을 목적으로 합니다.

Image generation단계에서는 이전 단계인 differentiable한 patch retrieval에서 선택한 patch들을 참고하여 현실적인 이미지를 생성하게 됩니다. 이 과정에서는 PasteGAN의 구조를 참고하여 generator를 구성하였고, 이미지 수준의 discriminator와 패치 수준의 discriminator로 두 개의 discriminator로 adversarial loss를 구성합니다.

Ladvimg=Ex[logDimg(x)]+Ex^[log(1Dimg(x^)]Ladvobj=Ep[logDobj(p)]+Ep^[log(1Dobj(p^)]L_{adv}^{img} = E_x[log D_{img}(x)] + E_{\hat{x}}[log (1-D_{img}(\hat{x})]\\L_{adv}^{obj} = E_p[log D_{obj}(p)] + E_{\hat{p}}[log (1-D_{obj}(\hat{p})]

여기서 xx는 이미지, pp는 패치를 위미하며, x^\hat{x}는 생성된 이미지, p^\hat{p}는 생성된 이미지에서 crop된 패치를 의미합니다.

결론적으로 학습하는 모든 loss를 정리하면 다음과 같습니다.

  • LgtselL_{gt}^{sel} : 후보군 중에 포함된 ground-truth patch를 선택함에 대한 loss
  • LoccurselL_{occur}^{sel} : 오브젝트들의 후보군 간의 triplet loss
  • Ladvimg,LadvobjL_{adv}^{img}, L_{adv}^{obj} : 전체 이미지와 crop된 이미지의 adversarial loss
  • Lpimg,LpobjL_{p}^{img}, L_{p}^{obj} : pre trained된 VGG feature space의 distance에 대한 perceptual loss
  • LacobjL_{ac}^{obj} : 생성된 patch에 대한 classification loss
  • LreconimgL_{recon}^{img} : ground-truth 이미지와 생성된 이미지의 l1l_1 distance loss
  • LbbxL_{bbx} : 예측된 bounding box에 대한 l1l_1 distance loss

Experimental Results

사용된 데이터셋은 scene generation에 기본적으로 bench mark로 사용되는 COCO-stuff와 Visual Genome을 사용하였습니다. 모든 실험에서 해상도는 128x128을 사용하였습니다. 해상도를 제외하고는 pre-process와 split에는 sg2sim 프로토콜을 따랐습니다. PasteGAN과는 다르게 patch의 segmenting에는 접근하지 않았습니다.

성능 비교를 위해서는 sg2im, AttnGAN, layout2im, PasteGAN을 썼습니다. 비교 metric으로는 Inception Score(IS), Frechet Inception Distance(FID), Diversity(DS)를 사용했습니다.

  • Inception Score : Inception v3를 사용하여 생성된 이미지의 visual quality를 측정합니다.
  • Frechet Inception Distance : Inception v3를 feature extractor로 사용하여 생성된 이미지의 visual quality와 diversity를 측정합니다
  • Diversity : AlexNet을 사용하여 Learned Preceptual Image Patch Similarity(LPIPS)의 이미지 feature의 거리를 통해 diversity를 측정합니다.

Realism and diversity. 공정한 비교를 위해서 bounding box는 모델이 예측한 값을 사용했을때와 ground-truth 값을 사용했을 때를 모두 비교하였습니다. 생성된 이미지가 얼마나 사실적인지와 얼마나 다양하게 생성되는지를 IS, FID, DS 값으로 비교한 결과 다음과 같은 결과를 관측할 수 있었습니다.

첫번째로 이 논문에서 제시한 RetrieveGAN은 COCO-Stuff 데이터셋에서 예측된 bounding box값과 ground-truth값을 사용했을때 모두 비슷한 성능을 보였으나, Genome 데이터셋에서는 ground-truth bounding box을 사용했을때 더 나은 성능을 보였습니다. 이러한 이유는 Genome 데이터셋은 하나의 장면에 등장하는 오브젝트들이 서로 관계가 거의 없었기 때문에 그럴듯한 bounding box를 생성하기 어렵기 때문입니다.

두번째는 Visual Genome 데이터셋에서는 AttnGAN이 IS와 DS에 대해서 가장 좋은 성능을 보였지만, FID 값에서는 RetreiveGAN이 더 나은 성능을 보였습니다. FID 값에 비해 IS 값은 mode collapse 문제에 대해 덜 민감하다는 특성이 있습니다. 또한 DS값은 이미지의 visual quality에 상관없이 feature distance에만 관련있습니다.

Patch compatibility. 얼마나 모델이 서로 연관된 patch를 선택했는지를 알기 위해서는 유저 스터디를 진행했습니다. 사람들한테 scene graph를 보여준 후 어떤 패치 그룹이 더 서로 연관성 있고, 같은 이미지에 속해있는 것이 자연스러운지에 대해 질문을 통해서 결과를 얻었습니다. 그 결과 RetreiveGAN이 PasteGAN보다 더 나은 성능을 보였는데, 이것은 RetrieveGAN의 differentiable한 retrieval process 덕분인 것으로 보입니다.

Ablation study. 제시한 RetrieveGAN의 각 요소가 미치는 영향을 알아보았습니다. 그 결과 ground-truth selection loss (LgtselL_{gt}^{sel})와 co-occurrence penalty loss (LoccurselL_{occur}^{sel})로 인해 가장 좋은 성능을 보였으며, 이 두 loss로 인해 생성된 이미지의 visual quality가 증가하였습니다.

Image generation. 정성적인 비교를 위해 각 모델들에 의해 생성된 이미지들을 비교했습니다. sg2im의 경우 오브젝트들의 외형과 오브젝트들의 상호 관계를 대략적으로 잡아냈습니다. 그러나 전체적으로 scene이 복잡한 경우 생성된 이미지의 퀄리티가 제한적이었습니다. 비슷하게 AttnGAN 모델도 복잡한 관계를 제대로 표현하는데에는 어려움이 있었습니다. PasteGAN은 전체적인 이미지 퀄리티가 RetrieveGAN과 비슷했지만, 선택한 패치를 표현하는 퀄리티가 약간 부족한 모습을 보였습니다.

Patch retrieval. retreival한 patch를 잘 표현하기 위해 모델들이 생성한 이미지와 선택한 patch를 같이 나타냈습니다. RetreiveGAN의 경우 선택한 오브젝트들이 PasteGAN에 비해 생성된 이미지에 깔끔하고 그럴듯한 외형을 갖고 있는 모습을 보였습니다. 또한 differentiable한 patch retrival한 과정 덕분에 retreival한 patch들이 서로 상호작용하고 있는 모습을 보입니다.

Conclusion

기존의 이미지 생성 모델들이 갖고 있었던 한계를 극복하기 위해 differentiable한 retreival module이 더해진 이미지 생성 모델인 RetreiveGAN을 제시하였습니다. 모델의 retrieve module은 매 iterative하게 이미지 생성을 위해 서로 상호작용하는 patch를 선택하게 됩니다. 또한 이 module은 differentiable하기 때문에 이미지 생성 과정과 함께 더 나은 embedding function을 학습하게 됩니다. 이를 정량적으로, 정성적으로 다른 기존의 모델과 비교한 결과 differential한 특성과 iterative하게 retreival하는 과정을 통해서 더 좋은 퀄리티와 오브젝트 간의 관계가 자연스러운 결과물을 얻어낼 수 있었습니다.



'NewsLetter' 카테고리의 다른 글

2020/08/24  (1) 2020.09.20
2020/08/17  (0) 2020.09.20
2020/08/10  (0) 2020.09.20
2020/08/03  (0) 2020.09.20
2020/07/20  (0) 2020.09.20