음악 생성

[논문리뷰] - A Hierarchical Latent Vector Modelfor Learning Long-Term Structure in Music (Music Vae-2)

김다응 2023. 1. 15. 11:47
728x90

3. Model

sequence 데이터에서 이전에 제안된 VAE 에 사용된 기본 구조를 따름 (ex. Bowman)

 

3.1 Bidirectional Encoder

encoder q(z|x) 의 경우 2 계층 양방향 LSTM 네트워크를 사용함

input seq X={x1,x2, ... , xt} 를 처리하여

두번째 양방향 LSTM 계층에서 최종 상태 벡터 ht -> , <- ht 를 얻게 됨

ht, latent distribution parameter mean 과 variance 를 생성하기 위해 두개의 LSTM 은 concat 되며 fully connected layer 로 공급됨

 

Wh,u Wh,variance 및 bu 는 각각 가중치 행렬 및 bias vector 임

해당 실험에서는 LSTM 을 사용함

 

모든 레이어의 state 크기는 2048 이며  latent 크기는 512 이다.

표준 VAE 처럼 u 및 sigma 는 Eq 와 같이 잠재 분포를 매개 변수화 함

양방향 반복 인코더의 사용은 input seq 에 대한 latent distribution 의 long term 문맥을 제공함

 

3.2 Hierarchical Decoder

이전 연구에서 recurrent vae 디코더는 일반적으로 단순히 적층된 RNN 이었음

디코더 RNN 은 잠재 벡터 z 를 사용하여 초기 상태를 설정하고

auto regressive 하게 output seq 를 생성하였음 

간단한 RNN 을 디코더로 사용하면 긴 시퀀스에 대한 sampling 및 reconstruction 이 불량하다는 것을 발견하였음

이것이 출력 시퀀스가 생성됨에 따라 hidden state 의 gradient vanishing 이 영향을 끼친다고 판단함

 

이 문제를 완화하기 위해 디코더에 대한 새로운 계층적 RNN 을 제안함

입력 시퀀스 x 가 다음과 같이 끝점 iu 를 갖지 않는 yu 들로 중복되지 않은 시퀀스들로 나눠질 수 있음

iu + 1 = T 의 특수경우를 정의

latent vector z 는 fully connected layer를 통과한 뒤 activation 을 통해 conductor RNN 의 초기 상태를 얻음

conductor RNN 은 각 시퀀스에 대해 하나씩 임베딩 벡터 C = {c1, c2, ..., cu} 를 생성함

현재 모델에서는 2 layer LSTM 을 사용함 decoder RNN 레이어 하나당 1024 유닛 생성함

 

autoregressive RNN decoder 는 여전히 "posterior collapse" 문제가 존재함

모델이 latent state 를 무시하게 됨

장기 구조를 모델링 하기위해 latent code 를 사용하도록 디코더의 범위를 제한하는 것이 중요하다는 것을 발견함

 

출력 시퀀스 내에서만 state 를 전파할 수 있도록 하여 decoder 에서 하위 레벨의 RNN 의 유효 범위를 줄임

Conductor 에 의해 전달된 임베딩으로 각 후속 RNN 상태를 초기화 함

각 디코더가 long term context 을 얻는 유일한 방법은 conductor 에 의해 생성된 embedding 을 사용하는 것이며

이는 결국 latent code 에만 의존한다는 것을 의미함

 

각 시퀀스가 끝날 때 디코더의 상태가 다시 도체로 전달되는 conductor 의 auto regressive 버전을 실험했지만 더 나쁜 성능을 보였다 

따라서 이러한 제약 조건이 시퀀스를 바르게 auto encoding 하기 위해 모델이 conductor embedding 과 확장하여 latent vector 를 활용하도록 효과적으로 강제할 수 음

 

3.3 Multi-Stream Modeling

텍스트와 같은 많은 일반적인 sequence data 는 단일 stream 으로만 구성됨

즉 토큰을 생성하는 sequence source 는 하나 뿐임

하지만 음악은 종종 기본적으로 다중 stream 신호로 구성됨

주어진 음악 시퀀스는 여러 플레이어가 함께 노트를 생성하는 것으로 구성될 수 있음

 

우리는 출력 토큰에 대해 세가지 악기 각각에 대해 하나씩 3개의 개별 음악을 생성한다는 점을 제외하고 기본 MusicVAE 와 동일한 trio 모델을 도입하여 가능성을 탐구합니다.

계층적 디코더 모델에서 이러한 별개의 stream 을 계층의 직교 차원으로 간주하고 각 계층에 대해 별도의 decoder RNN 을 사용한다

conductor RNN 의 embedding 은 별도의 fully connected layer 를 통해 각 계층의 RNN 상태를 초기화 한 다음 tanh activation 을 수행함

 

 비계층적인 decoder 를 사용하는 경우 단일 RNN 을 사용하고 출력을 분할하여 instrument 계층마다 softmax 를 생성함

 

4. Related Work

Recurrent VAE (Bowman) 인코더와 디코더 모두에 RNN을 사용하는 효과적인 VAE

신중한 최적화를 통해 문자 수준에서 모델링 된 문장 사이를 생성하고 보간할 수 있음

 

Auto regressive decoder 가 있는 다양한 VAE 모델도 제안되었으며

PixelVAE 의 경우 PixelCNN 과 VAE 를 결합하고 그 결과를 자연스러운 이미지 모델링 작업에 적용하였다

마찬가지로 variational lossy autoencoder 는 vae 를 pixelCNN pixelRNN 디코더와 결합함

저자들은 디코더의 범위를 제한하고 latent code 앞서 역 자기 회귀 흐름을 사용하였음

 

또한 반복 인코더와 디코더가 있는 또 다른 예로 연속적으로 값이 매겨진 pen 의 좌표의 sequence 를 성공적으로 모델링하는 sketchRNN 이 있다

 

반복 상태 자체가 시간에 따른 의존성을 갖는 확률적 잠재 변수인 모델이 많이 제안되었음

유사한 예로는 계층적 인코더와 디코더를 사용하는 serban 이 있다. 모델은 두 단계의 계층과 생성을 사용한다. 또 각 입력 시퀀스에 대한 잠재 변수를 가진다.

이 모델과 현재 우리의 모델의 결정적인 차이점은 전체 시퀀스를 나타내기 위해 단일 잠재 변수를 사용한다는 것이며 보간 및 속성 조작과 같은 응용을 가능하게 한다.

 

5. Experiments

Music VAE 는 음악 데이터에 대한 일련의 양적, 질적 연구를 수행함

첫째, Bowman 에 설명된 것과 같은 단순한 반복 VAE 가 짧은 음표 시퀀스 사이를 효과적으로 생성하고 보간할 수 있음

데이터를 효과적으로 모델링하기 위해 새로운 계층적 디코더가 필요한 긴 note sequence 를 생성함

이 것을 검증하기 위해 더 나은 데이터에서 속성을 재구성, 보간 및 모델링할 수 있다는 증거를 제공

제안된 모델이 샘플의 인식된 품질에서도 극적인 성능을 보인다 것을 통해 검증함

 

5.1 Data and Training

데이터의 경우 널리 사용되는 디지털 점수 형식인 MIDI 파일을 사용하였으며

MIDI 파일에는 노래의 각 개별악기에서 재생할 note 의 pitch 와 time 에 대한 정보가 포함되어있음

웹에서 최대 150 만개의 고유 파일을 수집하여 모델 교육에 필요한 충분한 데이터를 구축하였음

이러한 midi 파일에서 다음과 같은 훈련 데이터를 추출 하였는데

2-bar 및 16-bar 멜로디, 드럼, 멜로디 라인, 베이스 라인 및 드럼 패턴의 별도 스트림으로 구성된 16-bar trio seq 를 사용하였음

 

monophone melody 와 베이스 라인을 16번째 음표 이벤트의 시퀀스로 모델링하였음

128개의 midi pitch 를 위한 128개의 note one token 과 note off 와 쉼표를 위한 단일 token 을 가진 130차원 출력공간이 된다.

드럼 패턴의 경우 general midi 기준에 의해 정의된 61개의 드럼 클래스를 9개의 표준 클래스에 매핑하고 512개의 범주형 토큰으로 가능한 모든 조합을 표현하였다.

타이밍을 위해 모든 경우에 우리는 각 막대가 16개의 이벤트로 구성된 16번째 노트 간격으로 노트를 양자화 하였다.

 

모든 모델은 Adam 을 사용하여 학습률이 10-3 에서 10-5로 무효화 되고 지수 감쇠율이 0.9999 이며 배치 크기가 512 이다.

2-bar 및 16-bar 모델은 각각 50K 100K 기울기 업데이트를 위해 실행되었다

 

5.2 Short Sequences

반복적인 VAE 로 음악 시퀀스를 모델링하는 것이 가능하다는 중거로 먼저 flat decoder 로 2-bar 음계 음악 시퀀스의 모델링을 시도하였고 KL cost weight seta 는 0.0 에서 0.2 로 무효화 되었으며 지수율은 0.99999 였다.

 

모델이 입력을 재구성하는 데 매우 정확하다는 것을 발견하였음 또한 설득력 있는 interporate 와 sample 을 생성할 수 있었음

특히 teacher forcing 및 sampling 된 reconstruction 정확도의 차이가 적었고 posterior collapse 또는 exposure bias 의 문제 없이 latent code 를 효과적으로 사용하는 방법을 배웠다.

 

이러한 성공에도 불구하고 모델은 16-bar 시퀀스를 안정적으로 재구성할 수 없었음

예를들어 teacher forced reconstruction accuracy 와 sample reconstruction accuracy 간의 불일치가 27% 이상 증가하였음

이는 계층적 디코더의 설계에 이유가 됨

 

5.3 Reconstruction Quality

재구성 정확도는 teacher forced 와 전체 sampling 을 통해 계산됨

모든 경우에 softmax temperature 1.0 이 사용되었으며 logits 에서 직접 sampling 하였다.

표를 보았을 때에 teacher forcing 과 sampling 둘다 hierarchical 에서 더 높은 정확도를 가지며

sampling 의 hierarchical 의 경우 teacher forcing 과 유사한 수준까지 올라왔으며 0.7 이상의 정확도를 가진다

위의 그림은 잠재 공간 보간 결과로 모든 값은 1024개의 보간된 시퀀스에 걸쳐 평균화 됨

X 축은 왼쪽에서 오른쪽 시퀀스 A 에서 B 사이의 보간을 나타냄

위의 그래프는 sequence A 와 보간된 point 사이의 sequence hamming

아래 그래프는 독립적으로 훈련된 LM 에 대한 상대 log probability

 

5.4 Interpolations

창의적인 목적을 위해 의미론적인 보간을 원함. 플랫 디코더와 계층적 디코더의 latent space interpolate 를 두 시퀀스의 혼합 기준선과 비교함 중간 시퀀스를 샘플링을 위해 0.5 의 softmax Temperature 을 사용하여 A 1024 개의 16 bar 멜로디와 1024 개의 다른 고유한 평가 멜로디  B 사이를 보간함

 

Music VAE 는 두가지 예시 멜로디와 그에 상응하는 중간점을 보임

보간은 A 와 유사한 반복 패턴 B 와 같은 희소성 있는 상위 레지스터 및 새로운 공유 음악 키라는 두 멜로디의 의미적 요소를 합성함

 

5.5 Attribute Vector Arithmetic

midi 에서 직접 계산할 수 있는 5가지 속성 diatonic membership, note density, average interval, 16 번째 8번째 note syncopation 을 정의하였음 

이를 테스트 하기 위해 370K random train set 에서 이런 속성을 측정하였고 표시된 속성의 양에 따라 집합을 정렬하고 그것을 4분위로 분할 및 상단 4분위의 평균 잠재 벡터에서 하단 4분위의 평균 잠재 벡터를 빼 속성 벡터를 계산하였음

 

주어진 속성 벡터를 적용하는 것이 목표 속성에 의도된 변화를 일관되게 생성한다는 것을 발견함

또한 하나의 속성을 증가시키면 다른 속성이 감소하는 경우를 발견하는데 huristic 이 겹치는 특성을 포착하기 때문이라고 판단함.

 

5.6 Listening Tests

다른 모델들의 결과와 비교하였으며 청취자들은 모델 중 하나에서 샘플링 되거나 평가 데이터 세트에서 추출된 두개의 16-bar 구성을 제시받았음 

듣기 테스트 결과를 보면 계층적 디코더를 사용한 쪽이 flat 보다 우수한 점수를 받았으며 drum 의 경우 현실의 data 보다 더 좋은 점수를 받았다

 

6. Conclusion

장기 구조를 가진 시퀀스의 개선된 모델링을 위해 계층적 decoder 를 사용하는 반복 variational auto encoder 인 musicVAE 를 제안하였으며 음악 데이터에 대한 실험에서 정량적이고 질적인 실험을 통해 현 모델의 성능을 검증해냈다

향후 다른 유형의 순차적 데이터에서 모델을 테스트하는 데 관심이 있다.