2020/09/21

2020. 9. 20. 09:34NewsLetter

최근 소식

  • 구글 머신러닝 부트캠프가 소개되엇습니다. "머신러닝 개발자로 발돋움 하고 싶은 분들을 위한 프로그램"이라고 하네요. 약 4개월동안 온라인으로 과정이 진행되는것 같습니다. 9월30일까지 신청기간이라고 하니, 관심 있으신 분들은 어서 지원해보시면 좋겠네요!!!

[S1] Implicit Kernel Attention

논문 원문: https://arxiv.org/pdf/2006.06147.pdf (Arxiv-20)

한줄평: Attention을 Kernel 관점에서 해석해보자!

  • Transformer와 Graph Attention Network (GAT) 등, attention은 여러 모델, 여러 Task에서 사용되고 있습니다.
  • 이러한 Attention은 모델의 성능 뿐만 아니라, 모델의 작동 방식을 해석하는데에도 유용하게 활용되고 있습니다.
  • 본 논문에서는, Transformer에 존재하는 scaled dot-product attention과, GAT에 존재하는 concatenation-based attention을 kernel로 해석하였습니다. 즉, 두 attention의 식을 분해해보면, similarity term (RBF kernel)과 magnitude term(L2L^{2} norm) 으로 분해가 된다는 것을 밝혔습니다.
  • 이러한 분해를 기반으로, similarity term과 magnitude term의 성질을 분석하고, magnitude term에서의 Lp=2L^{p=2} norm이, attention weight의 sparsity와 연관이 있다는 것 또한 발견하였습니다.
  • 이를 기반으로, 저자는 implicit kernel로 RBF kernel을 generalize 하고, L2L^{2} norm을 LpL^{p} norm으로 확장하여, 더욱 일반화된 모델을 제시하였습니다.
  • 추가적인 발견으로는, 기존의 attention이 kernel (similarity term)보다는, L2L^{2} norm (개별적인 magnitude term)에 더욱 집중하고 있다는 것을 실험적으로 밝혔습니다.
  • Text Classification, Translation, Regression, Node Classification 의 실험에서, 본 모델의 성능을 확인하였습니다.

[S2] CausalGAN Learning Causal Implicit Generative Models with Adversarial Training

논문 원문: https://arxiv.org/pdf/1709.02023.pdf (ICLR-17)

한줄평: Causal graph를 generative model에서 어떻게 활용할 수 있을까?

  • Generative Model을 기반으로 image generation을 시도할 때, "조금만 더 웃게 하는 사진을 만들 수 없을까?"와 같이, 이미지를 원하는대로 변형하고 싶은 경험이 있었을 것입니다.
  • 조금 더 웃고 있는 사진을 만들기 위해서는 어떻게 해야 할까요? 입을 약간 크게 키워야 하겠죠? 과연 그것이 전부일까요?
  • 입이 벌려지는것 뿐만 아니라, 눈을 약간 작게 만들면, 훨씬 자연스러운 웃는 사진이 될 것입니다.
  • 반면에, 원래 이미지의 성별정보나 머리 색깔 등은 변하면 안되겠죠?
  • 이러한 인과관계를 고려한 이미지 생성을 가능하게 해주는 모델이, 본 연구에서 제시하는 CausalGAN 입니다.
  • 주어진 causal graph (웃으면 눈이 작아지고, 입이 커진다 등)를 기반으로, causal controller를 만든 다음, generator와 discriminator를 기반으로 이미지를 생성합니다. Causal controller 또한 Generative adversarial nets의 generator로 모델링 합니다.
  • causal controller에서, 우리가 원하는 곳에 intervention (e.g. 웃고 있지 않은 사진을, 웃고있게 만들겠다!)을 하게 되면, 인과관계가 있는 요소들 (눈, 입)은 그에 맞게 자연스럽게 변형되고, 성별, 머리색과 같은 요소들은 그대로 유지되는 이미지를 생성할 수 있게 됩니다!

[S3] Approximate Inference for Spectral Mixture Kernel

논문 원문: https://arxiv.org/pdf/2006.07036.pdf (Arxiv-20)

한줄평: SM kernel을 사용하는 GP를 어떻게 안정적으로 학습시킬 수 있을까?

  • Kernel 하면 어떤 kernel이 먼저 떠오르시나요? 아마 RBF kernel (또는 SE kernel)이 먼저 떠오르실 것 같습니다.
  • 하지만, 막상 RBF kernel을 내가 가지고 있는 데이터에 적용해보면, 잘 fitting 하지 못하는 경우가 많습니다. 그렇기 때문에, 저는 SM (Spectral Mixture kernel)을 자주 사용하는 편입니다.
  • SM kernel이 RBF kernel과 뭐가 다른지 궁금하실 수 있을것 같습니다. 쉽게 설명하자면, RBF kernel이 Single Gaussian 이라면, SM kernel은 Mixture of Gaussian 이라고 생각하시면 될 것 같습니다.
  • 하지만, SM kernel을 GP에서 사용하려면 크게 2가지 문제를 경험하게 될 수 있습니다. 첫번째는, 속도가 비교적 많이 느리다는 것입니다. 두번째는, SM kernel에서의 mixture 개수를 늘린다고 성능이 더 좋아지지는 않는다는점 (오히려 떨어질수도...)입니다.
  • 본 논문에서는 이 2가지를 해결하고자 하였습니다. Random Fourier Features를 활용해서, SM kernel을 빠르게 근사할 수 있는 모델링을 제안하였습니다. 추가적으로, True kernel을 잘 근사하기 위한 (error를 줄이기 위해서), sampling 방법론을 제안하였습니다. 해당 방법론으로 실험한 결과를 보면, mixture 개수가 늘어나더라도, 안정적으로 학습이 되는 것을 확인할 수 있습니다.

[L1] WaveGrad: Estimating Gradients for Waveform Generation

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

한줄평: Denoising Diffusion Probabilistc Model의 보코더 버젼, Gaussian Noise로부터 음성을 만들어요!

Motivation

Statistical model을 구분하는 여러가지 방법이 있지만, 많이 알려진 구분 방법은 generative model과 discriminative model로 구분하는 방법이 있습니다. 쉽게 말해서 dicriminative model은 사진이 주어졌을 때 이 사진이 고양이일 확률이 얼마인지 말할 수 있다면, generative model은 고양이 사진의 확률이 어떻게 되는지 말할 수 있는 모델입니다. Generative model은 고양이 사진의 확률이 어떻게 되는지 알기 때문에 확률적으로 샘플링을 통해 고양이 사진을 뽑아(생성) 할 수도 있습니다.

Generative model은 비교적 discriminative model에 비해 더 어렵다고 알려져 있으며, 특히 딥러닝계에서는 discriminative model보다 조금 더 늦게 연구가 진행되었습니다. Generative model로는 가장 유명한 generative adversarial network(GAN)부터 variational autoencoder(VAE), autoregressive model, flow 모델등이 연구되어 왔습니다. 그리고 이와는 조금 다른 방식의 generative model이 있어서 소개드리고자 합니다.

이번에 소개드릴 generative model은 denoising diffusion probabilistic model (앞으로는 DDPM이라고 부르겠습니다.)입니다. DDPM은 이 논문에서 처음으로 제시되었고, 기존의 generative model과 비교했을때 상당히 괜찮은 성능을 보여주었습니다. DDPM은 guassian noise에서 데이터를 생성한다는 면에서 GAN과 비슷하지만, 학습 방식에서 차이가 있습니다. DDPM을 소개하기 앞서서 diffusion probabilistic model부터 소개해드리겠습니다.

Diffusion Probabilistic Model

위의 그림과 같은 Markov chain이 있다고 가정합시다. 이 Markov chain은 gaussian noise(XTX_T)에서 유한한 시간의 샘플링을 거쳐 데이터(X0X_0)를 생성하는 모델입니다. 데이터에 약간의 노이즈를 조금씩 더해 완전한 guassian noise로 만드는 reverse process라고 한다면, 그의 역과정은 noise에서 데이터를 생성하는 forward process라고 할 수 있습니다. Diffusion model에서는 forward process와 reverse process 모두 gaussian transition으로 가정합니다.

Forward process는 diffusion process라고 하기도 하는데, 데이터에 β1,,βT\beta_1, \dots, \beta_T variance schedule의 guassian noise를 점차 더해나가 posterior를 다음과 같이 근사할 수 있습니다.

q(x1:Tx0):=t=1Tq(xtxt1)q(xtxt1):=N(xt;1βtxt1,βtI)q(x_{1:T}|x_0):=\prod_{t=1}^Tq(x_t|x_{t-1}) \\q(x_t|x_{t-1}):= N(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)

여기서 variational distribution qq 가 모두 gaussian distribution이므로 계산을 통해 다음과 같이 임의의 시점 t에서 데이터(x0x_0)에 대한 conditional distriution을 구할 수 있습니다.

q(xtx0)=N(xt;αˉtx0,(1αˉt)I)αt:=1βt,αtˉ:=s=1tαsq(x_t|x_0)=N(x_t;\sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I) \\ \alpha_t:=1-\beta_t, \bar{\alpha_t}:=\prod_{s=1}^t\alpha_s

반대로 guassian noise에서 데이터 샘플을 만드는 reverse process의 joint distribution은 다음과 같이 Markov chain으로 정의할 수 있습니다.

pθ(x0:T):=p(xT)t=1Tpθ(xt1xt)pθ(xt1xt):=N(xt1;μθ(xt,t),Σθ(xt,t))p_{\theta}(x_{0:T}):=p(x_T)\prod_{t=1}^Tp_{\theta}(x_{t-1}|x_t) \\p_{\theta}(x_{t-1}|x_t):= N(x_{t-1}; \mu_{\theta}(x_t, t), \Sigma_{\theta}(x_t, t))

Forward process와 reverse process의 두 distribution을 통해 데이터 (x0x_0)의 negative log likelihood에 대한 varitational bound를 계산하여 pθ(xt1xt)p_{\theta}(x_{t-1}|x_t) 의 forward process posterior를 다음과 같이 구할 수 있습니다.

$$ q(x_{t-1}|x_t, x_0)=N(x_{t-1};\tilde{\mu_t}(x_t, x_0), \tilde{\beta}_tI) \\ \tilde{\mu_t}(x_t, x_0):= \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}x_0 + \frac{\sqrt{\bar{\alpha}_{t}}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t, \tilde{\beta}_t:=\frac{1-\tilde{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t $$

q(xt1xt,x0)=N(xt1;μt~(xt,x0),β~tI)μt~(xt,x0):=αˉt1βt1αˉtx0+αˉt(1αˉt1)1αˉtxt,β~t:=1α~t11αˉtβtq(x_{t-1}|x_t, x_0)=N(x_{t-1};\tilde{\mu_t}(x_t, x_0), \tilde{\beta}_tI) \\ \tilde{\mu_t}(x_t, x_0):= \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}x_0 + \frac{\sqrt{\bar{\alpha}_{t}}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t, \tilde{\beta}_t:=\frac{1-\tilde{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t

Denoising Diffusion Probabilistic Model

DDPM은 diffusion probabilistic model을 이용하여 guassian noise에서부터 reverse process를 반복하여 데이터를 생성하는 모델입니다. 학습 과정에서는 주어진 데이터에 대해 gaussian noise로부터 데이터를 생성하는 forward process의 과정과 데이터에서 gaussian noise를 생성하는 reverse process의 과정을 비교하여 log likelihood를 계산하여 모델의 파라미터들을 학습하며, 생성 과정에서는 학습된 파라미터들을 통해 gaussian noise로부터 데이터를 생성합니다.

계산의 편의성을 위해 forward process의 variance βt\beta_t 를 constant로 무시하고, reverse process의 Σθ\Sigma_\theta 또한 σtI\sigma_tI 로 가정합니다. 학습시에는 hyperparameter인 전체 timestep T 중에서 한 time t를 선택하고 그 시점에서의 gaussian noise로부터 출발하여 reverse process를 반복하여 생성된 variable과 데이터에서 출발하여 forward process를 반복하여 생성된 variable의 likelihood를 다음과 같이 구할 수 있습니다.

Lt1=Eq[12σt2μ~t(xt,x0)μθ(xt,t)2]+CL_{t-1}=E_q[\frac{1}{2\sigma_t^2}\parallel\tilde{\mu}_t(x_t,x_0)-\mu_\theta(x_t,t)\parallel^2]+C

이 식을 잘 정리하면 (이 논문의 수식 과정을 참고해주세요) 다음과 같이 간단한 L2 norm의 식으로 변형이 가능합니다.

Lt1=ϵϵθ(αˉtx0+1αˉtϵ,t))2L_{t-1}=\parallel\epsilon-\epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon,t))\parallel^2

여기서 ϵ\epsilon 은 guassian noise이고, ϵθ\epsilon_\thetaxtx_t 에서 ϵ\epsilon 을 예측하는 function입니다.

반대로 생성 과정에서는 ϵ\epsilon 의 gaussian noise를 샘플링한 후 forward process를 T만큼 반복해주면 됩니다.

이 두 과정을 알고리즘을 표현하면 다음과 같습니다.

Application

Generative model이 제안되었을 때 가장 처음으로 적용하는 task는 아무래도 이미지 생성입니다. 처음 VAE가 제안되었을 때도 논문에서 가장 먼저 적용하고 성능을 비교한 것은 MNIST으로 학습 후 이미지를 생성하는 것이었고, GAN이나 PixelCNN, PixcelRNN 역시 이미지 생성에 많은 연구들이 진행되었습니다. 그 다음으로 적용하는 것은 보통 음성 데이터입니다. 그 중에서도 특히 raw wave를 생성하는 보코더 task에 적용이 되었습니다.

음성 합성은 보통 두 단계로 이루어집니다. 첫번째는 주어진 텍스트와 음성 옵션(화자, 감정, 속도 등)과 함께 음성의 frequency의 intensity가 담긴 mel spectrogram을 생성하는 단계이며, 두번째는 생성된 mel spectrogram을 바탕으로 raw wave를 생성하는 보코딩 단계입니다. 보코더의 경우 WaveNet 을 시작으로 여러 모델들이 제안되었는데, 그 모델들은 대부분 generative model들을 기반으로 동작합니다.

이미지 생성 이후에 보코더에 적용되는 이유는 이미지 생성보다 보코더를 생성할 때 들어가는 conditional information이 더 많기 때문입니다. 이미지의 경우 대략적인 class나 약간의 추가 정보가 들어가 그 정보에 맞는 이미지가 생성되게 되는데, 이미지의 일부분이 정확하거나 content와 약간의 달라져도 사람들은 크게 인지를 못하는 경우들이 있어 상대적으로 난이도가 쉬울 수 있습니다. 반면에 보코더의 경우 mel의 정보를 충실하게 반영해야 하며 생성된 음성 중 일부분이라도 이상하면 사람들은 잘못되었다고 크게 느끼기 때문에 상대적으로 어려운 task입니다.

이번 WaveGrad는 DDPM의 기본적인 아이디어와 과정을 보코더로 가져와 만든 모델입니다. 전체적으로 diffusion probabilistic model의 forward와 reverse process가 존재하며 DDPM의 학습과 합성(생성)과정이 동일합니다. 다만 task가 이미지 생성이 이난 mel frame을 condition으로 wave를 생성하는 것이므로 모델의 구조가 크게 달라졌으며, loss 계산시 L2 norm이 아닌 L1 norm을 사용하고 있습니다.

모델의 성능 측정을 위해 보코더들 중 가장 성능이 좋다고 알려진 WaveNet과 그 외의 non-autoregressive 모델들과 같은 데이터에 대해 학습하고 성능을 비교하였는데, WaveNet을 압도할만큼 성능이 매우 뛰어난 것은 아니었지만, 생성 시간을 고려하였을 때 WaveNet과 견줄만큼의 성능이 나왔습니다.

Conclusion

이번 기사에서는 diffusion probabilistic model을 기반으로 하는 보코더인 WaveGrad에 대해 다뤄보았습니다. 사실 WaveGrad의 비중보다는 diffusion probabilistic model의 비중이 더 컸습니다. Generative model에서 GAN이 매우 뛰어난 성능으로 각광을 받는 와중에 이러한 새로운 generative model의 등장과 그에 따른 application 모델들이 제안되어서 신선했습니다. 더 많은 연구가 진행되어 다양한 generative model에 대한 선택지들이 늘고 성능들이 더욱 더 개선되기를 조심스레 기대해봅니다.


'NewsLetter' 카테고리의 다른 글

2020/09/28  (0) 2020.09.27
2020/09/14  (0) 2020.09.20
2020/08/24  (1) 2020.09.20
2020/08/17  (0) 2020.09.20
2020/08/10  (0) 2020.09.20