ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WaveNet - A Generative Model for Raw Audio
    논문_리뷰 2021. 1. 26. 00:53
    WaveNet - A Generative Model for Raw Audio
    Aaron van den Oord, Sander Dieleman Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, Koray Kavukcuoglu

     

    Abstract

    • raw audio waveform을 생성하기 위한 DNN 제안 논문
    • WaveNet은 완전히 확률적이고 autoregressive하며, 각 오디오 샘플에 대한 예측 분포를 이전 모든 샘플에 맞춰 조정한다.
    • 단일 WaveNet을 사용해서 화자의 특징을 잡아낼 수 있으며, 화자의 identity에 따른 상태따라 전환하여 사용할 수 있다.
    • 음악을 학습했을 때, 음악적 요소 또한 잘 생성한다.
    • phoneme recognition에 대해 좋은 결과를 보여주는 Discriminative model로 사용 가능하다.

    Introdctuion

    • AutoRegressive generative model인 PixelCNN 아키텍처 기반으로 만들어진 오디오 생성 모델
    • Long-range temporal dependency를 해결하기 위해 dilated causal convolutions 기반의 아키텍처 개발하여 receptive field를 넓혔다.
    • WaveNet은 일반적이고 유연한 오디오 생성 모델로 TTS, Music, voice conversion 등에 사용될 수 있다.

    WaveNet

    • WaveNet은 t 시점의 오디오 샘플을 t-1 시점까지의 샘플들의 조건부 확률 분포로 모델링한다.
    • categorical classification 문제로 다루며, 최적화는 Minimize negative-log-likelihood (Minimize Cross-Entropy)를 사용한다.

    Dilated Causal Convolution

    • PixelCNN와 유사하게 조건부 확률 분포는 Stack of Convolutional layers에 의해 모델링된다. 이 때, 네트워크에는 Pooling layer가 없으며 입력과 동일한 차원의 출력을 내보낸다.

    • causal convolutional는 receptive field를 증가시키기 위해서는 많은 레이어 혹은 필터가 필요하다는 문제가 있다. 
      ex) Fig2의 receptive field는 (# of layers + filter length - 1 = 5) 밖에 되지 않는다.

    • dilated causal convolutional을 사용한다면 매우 넓은 receptive field를 제공할 수 있으며 오디오 신호의 long-range temporal dependency를 어느정도 해결할 수 있다.
    • Fig3은 dilation이 [1,2,4,8]로 설정했을 때 dilated causal convolution을 나타낸 그림이다.
    • WaveNet 논문에서는 매 레이어 마다 dilation을 정해진 limit까지 두배 증가시키는 것을 3번 주어서 총 30개의 레이어를 쌓았다. 

    [출처] Google DeepMind

    Softmax Distributions

    • 네트워크의 출력을 모델링할 때 softmax를 사용한다. 이는 categorical distribution이 형태에 대한 가정이 없기 때문에 더 유연하다는 장점 때문이다.
    • 대부분의 audio 신호는 16-bit quantization --> softmax로 표현 --> 65,536개 output 필요 --> 연산량 많음
    • 논문에서는 $\mu$-law companding transformation을 적용하여 256개의 non-linear한 값으로 quantize한다.

    $f(x_t) = sign(x_t)\frac{ln(1+\mu * abs(x_t)}{ln(1+\mu)}$ // $ -1 < x_t < 1 , \mu = 255 $

    Gated Activation Units

    • dialted Conv 뒤에 Gate activation units ($ z = tanh(W_{f,k} * x) \odot \sigma(W_{g,k} * x) $) 을 사용한다.
    • $*$= convolution 연산, $\odot$= element-wise multiplication 연산, $\sigma$= sigmoid, $k$= layer index, $f,g$=filter and gate

    Residual & Skip connection

    • 보다 깊은 네트워크를 학습이 가능하고 빠르게 학습하기 위해 skip conntection을 사용

     

    댓글

Designed by Tistory.