Saturday, September 29, 2018

ISMIR 2018 논문 소개 [1/3]



차례

ISMIR 2018 논문 소개 [1/3] (이 게시물)

ISMIR 2018

MIR(Music information retrieval) 분야의 가장 중요한 학회인 ISMIR(/이즈미어/) 2018이 막 끝났습니다. ISMIR는 현재 더블 컬럼 6+n페이지의 논문을 받고 있는데 이번에는 총 104편의 논문 발표가 있었습니다. 매년 제출되는 논문이 늘고있고 작년보다 약간 많은 논문이 나온것 같네요. 참가자수도 약 450명으로 작년의 300여명에 비해 크게 늘었습니다. 머신러닝 전반적으로 관심이 늘어나고 있고 프랑스 파리라는 위치도 한 몫 했겠죠.

이번에는 특이하게 모든 논문이 4분간의 구두 발표와 2시간 가량의 포스터발표를 둘 다 하는 형식으로 학회가 진행되었습니다. 첫 시도였는데 여러가지 장단점이 있었죠. 그리고 처음으로 구두 발표를 유튜브에 실시간으로 중계하였습니다. 

Trend

- 데이터셋 논문의 증가!
- 딥러닝이 절대 다수
- 자동 채보같은 문제에서 Convolutional RNN을 사용한 논문을 여럿 봄
- 세부 주제는 여전히 매우매우 다양함

Tutorials




Papers

ISMIR 논문은 전부 온라인에 공개되어있습니다. 몇몇 논문을 골라서 간단히 소개하겠습니다.

이 논문에서 푸는 문제는 Automatic drum transcription, 즉 드럼 채보입니다. 

드럼이 있는 오디오 신호 --[ADT System]--> 드럼 악보 

여기에서 제안하는 시스템은 Player와 Transcriber로 이루어져있습니다. Player는 학습 데이터가 부족한 부분을 채워주는 모듈로 기존 학습 데이터를 변형하거나 생성하는 역할을 하고, 이를 이용해 Transcriber는 점점 더 채보를 잘 할 수 있게 되는 셈입니다. 논문에서는 Generator/Discriminator로 이루어진 GAN에서 영감을 받았다고합니다. 기존 MIR 연구중에서도 데이터 크기를 키우는 Data augmentation 논문은 여럿 있었지만 이런건 처음보네요.

제안하는 방법은 (남들도 그렇듯) Stochastic gradient descent/Backpropagation입니다. 따라서 전체 end-to-end 시스템을 학습하려면 Player <--> Transcriber간 소통과 player 내부의 동작이 모두 미분가능해야겠죠. 섹션 2.2.1, 2.2.2를 보면 Player의 여러 과정이 θ로 매개변수화 되어있습니다. θ는 드럼 음원에 컨브넷(Player Convnet이라고 부릅시다)을 적용해서 구합니다. 그 결과 원래 입력 파일이 조금 바뀌고 (Augmentation) 추가적으로 다른 드럼 소리가 정해집니다 (Sample addition). 이 과정은 그림2에 잘 나와있습니다. 그림 1이랑 내용이 겹치지만 둘 다 올립니다.





학습은 GAN의 학습을 따릅니다. 즉 Transcriber는 y를 감소하는 방향으로, Player는 (1-y)를 감소하는 방향으로 최적화를 합니다. Wasserstein GAN 의 방식같군요.

실험 결과 분석은 생략합니다. 

4.4 섹션을 보면 Player의 역할에 대한 토의가 있는데 저는 동의하지 않는 내용입니다. 일단 전체 학습 구조가 이렇게 하는게 제일 좋은건지 잘 모르겠어요. 논문의 의도는 학습 데이터가 많지 않아서 뉴럴넷이 판단하기 어려운 케이스를 많이 만들어주는것이라고 하는데, i) Player Convnet이 정말 그걸 판단할 수 있는 구조가 아니라고 생각하구요, ii) Player가 문제를 어렵게 만드는것이 논문에서 의도한대로 학습데이터가 희소한 부분을 채워준다는 보장이 전혀 없습니다. 문제를 어렵게 만드는 전처리과정을 학습한것 이상으로 해석하는건 무리수라고 봅니다. 논문에서 관찰한대로 대부분의 매개변수가 범위내의 극대 혹은 극소값 (-1 혹은 1)을 가진 것은 값이 극단적일수록 일반적인 드럼 신호가 아니라서 문제가 어려워져서 그런것일 가능성이 더 높습니다. 만일 Player도 y를 감소하는 방향으로 학습했다면 Player가 아니라 trained preprocessor가 되었을테니까요. 

깃헙에 각종 데이터와 코드가 올라와있습니다.

다운비트 추정(Downbeat tracking)은 음악 오디오 신호에서 각 마디의 시작점(들)을 찾는 문제입니다. 최근에 딥러닝 기반의 다운비트 추정 시스템 논문이 여럿 나왔는데 이를 분석하는 논문입니다.

다운비트 추정 문제는 리듬과 직접적인 연관이 있는 문제이고 따라서 시스템이 리듬과 관련된 특징값 추출 --> 뉴럴넷 --> 각종 후처리로 이루어져있습니다. 그러다보니 여러 시스템을 공정하게 비교하기가 어렵고 각 과정의 중요도 내지 기여도를 판별하기 어려운데 이 논문에서 분석을 시도합니다.

그런데 논문에서 해석한것과 달리 저는 후처리(thresholding vs DBN) 말고는 전체적으로 큰 영향이 없는것으로 봅니다. 특히 중요한 요소라고 한 Datum vs Beat -- input signal granularity는 그렇게 중요하지 않아보여서 좀 의문입니다. 

굉장히 좋은 연구입니다. 실험을 더 추가할것도 없이 바로 TISMIR에 낼 수 있는 깊이가 아닌가 합니다.

크게 보면 자동작곡을 다루는 논문입니다. 여기에서는 멜로디에 맞는 코드를 찾는 harmonization과 코드에 맞는 멜로디를 생성하는 melodization을 번갈아가면서 수행하는 시스템을 보여줍니다. 이렇게 번갈아가면서 음악의 요소를 업데이트하는 방식은 실제로 사람이 작곡을 할 때도 거치는 과정이죠. "To partially and incrementally refine the (music) piece"라는 표현을 본문에서 사용했네요.



그림 2를 보면 각 모델이 어떤 역할을 하는지 잘 나와있습니다. i) 코드의 흐름을 먼저 예측하고 ii) 코드가 바뀌는 타이밍을 정하고 iii) 다시 코드 내에서 멜로디의 음표가 나오는 타이밍(멜로디의 리듬)을 예측하고, iv) 마지막으로 이에 맞추어 각 음표의 음고(pitch)를 결정하여 멜로디를 완성합니다.

온라인 데모도 보시길 추천합니다.

글쓰기도 나쁘지 않고 실험도 잘 했습니다. 다만 실제로 목적하는 바를 달성했는지 다소 의문이 들기도 하는데, 제가 많이 접해본 내용이 아니라 실험 결과를 평가하기가 어렵네요.

일단 논문의 목적은 VAE로 음악의 representation을 학습하되 (audio signal --[VAE]--> latent vector) 그 결과로 나온 latent vector가 우리가 원하는 의미를 갖도록 하는 것입니다. 유사한 내용으로 머신러닝에서 이야기하는 "disentangled" representation이 있습니다. 이는 hidden vector의 각 차원이 사람에게 중요한 의미(예: 사진의 밝기, 글씨의 기울기, 선의 굵기..)를 갖도록 한 것입니다. 

섹션 2.1엔 일반적인 VAE 수식이 정리되어있습니다. 쉽게말해 AE(Auto-encoder), 즉 자기 자신을 복원하는(encode-decoder) 뉴럴넷인데 중간에 나오는 hidden variable 혹은 latent vector인 $z$가 정규 분포를 따른다고 가정하고 이 정규분포의 평균과 분산이 인코더의 최종 결과가 되는 구조입니다. 디코더는 이 정규분포를 따르는 확률변수를 샘플링한 값을 입력으로 합니다. 논문의 그림 1에서는 인코더=Analysis, 디코더=Synthesis가 됩니다.



그림 1 우측을 보면 각 음원의 음색을 사람이 평가한 Perceptual ratings이 있죠. 얘네들을 MDS를 써서 차원을 줄인 것이 $\tau$입니다. 이제 이 정보를 이용해서 $z$가 $\tau$와 어떤 연관을 가지면서 학습이 이루어지게 하려고 합니다. 이를 위해 추가한 항이 식 (4)이고 그 결과 최종적인 비용함수는 식 (4) 바로 위처럼 됩니다.

그럼 어떤 연관을 갖게될까요? 본문에서는 "we want the distances between instruments to follow the perceptual distance" 라고 설명합니다. 즉 두 악기간에 인지적인 차이(perceptual distance)와 각 악기를 압축한 값 $z$의 차이가 서로 비례하도록 학습이 진행되는거죠. 이 거리(distance)를 측정하는 방법으로 유클리디안과 가우시안을 사용합니다.



섹션 3.1이 다소 뜬금없는데 여기서 설명하는 내용이 정확히 시스템에 어떻게 들어갔다는것인지 저는 잘 이해하지 못했습니다. 이 prior가 비용함수에 포함되었다는 것인지..



실험 결과를 보죠. 이렇게 학습을 진행하고 나온 결과 $z$ 를 PCA를 써서 3차원으로 압축한 것이 그림 3의 (b), (c), (d)입니다. 일반적인 VAE를 쓴것이 (a)구요. 제안한 방법대로 하면 각 악기별로 훨씬 더 구분이 된 결과가 나옵니다. 눈으로 봤을때 원하는 결과가 잘 나온것이죠.

섹션 5.2/표1이 좀 재밌는데요, 이 결과를 다시 레이어 1개짜리 뉴럴넷에 넣고 악기 분류 작업을 돌린 결과입니다. 일반적인 VAE가 악기 분류 작업을 제일 잘합니다! 저자들은 제안한 방법대로 하면 사람이 구별하기 어려운 악기들이(즉 종류는 다르지만 perceptual distance가 아주 작은 악기들이) 서로 겹치게 되어서 이런것이 아닌가 추측하네요.

5.3, 5.4, 5.5도 모두 의미있는 토의가 있고 특히 5.5는 온라인에 관련 영상도 있으니 참고하시길 바랍니다. 2페이지를 꽉 채운 결과 설명이 아주 인상적인 좋은 논문이네요. 



여기에서는 (convolutional) GAN으로 음악을 만드는 방법을 제안합니다. 일단 피아노롤(가로축은 시간, 세로축은 각 음표)을 생성하는 GAN인데, 최종 레이어에서 Binary value(0 또는 1)를 바로 생성하도록 수정을 가한것이 이 논문의 특징입니다. 

간단한 변화지만 뚜렷한 장점이 있네요. 기존에는 real-value로 나타난 피아노롤을 생성하고 사용할때는 이를 적당한 기준값으로 반올림하거나(thresholding) 값을 베르누이 확률분포의 파라미터로 보고 샘플링하는 방식(Bernoulli sampling, BS)을 사용했는데 둘 다 최종 결과물이 학습 과정시에 나오지 못하고 따라서 학습을 통해 해당 부분을 최적화할 수가 없습니다. 예컨대 GAN의 Discriminator가 이진화된 피아노롤을 못보는 것이죠. 이 내용이 2페이지의 '2 potential benefits' 중 첫번째 내용입니다. 두번째 장점은 학습 용이성입니다. 최종 결과물이 이진값이므로 전체 경우의 수가 급격히 감소합니다.

논문에서는 두가지 방식으로 이진화를 합니다. 식 (2)와 (3)에 설명되어있습니다. 그런데 원리 자체는 기존 방식과 크게 다르지 않고, 중간에 unit step function u()가 있는데 얘네들이 어떻게 미분가능한것인지 잘 모르겠네요.

실험 결과는 표 1에 정리되어있습니다. pretrained가 GAN을 쓰지만 제안한 Binary neuron을 안 쓴 것이구요. 그 외에 각종 학습방법에 따라 proposed, joint, end-to-end가 있습니다. 그런데 결과를 들여다보면 pretrained과 proposed가 별 차이가 없는 점은 좀 아쉽습니다.



OMR(Optical music recognition)은 이미지 파일로 악보를 받고 이를 인식하는 작업입니다. 악보 사진을 찍으면 이를 미디나 musicxml같은것으로 변환해주는 앱을 상상하시면 됩니다.



악보라서 일반적인 시각 객체 인식과는 조금 다르지만 일반적인 방법론을 대략 따르는것으로 보입니다. 이런 특징때문에 DWD(Deep watershed detector)를 사용합니다. 저자에 의하면 "simplify the desired energy surface to having small conical energy peaks of radius n pixels at the center of each object and be zero everywhere else" 라고 하는군요. 악보는 인쇄했거나 사람이 직접 오선보에 썼거나 결국 흑백으로 된 텍스트 비슷한 것이라 이 DWD를 적용하기에 적합한 상황이라고 합니다.




세상에서 유일하게 베이스 기타에 특화된 MIR을 최소 5년째 하고있는 Jakob의 논문입니다. 재즈 음악관련 과제가 있어서 가능한것이긴 하지만 정말 징한 녀석이죠.. 물론 제 논문을 2개나 인용했으므로 아주 좋은 논문인건 확실합니다.

그림 1을 보면 여러 악기가 섞여있는 음악 신호를 받아서 베이스 부분만 남긴(=Bass saliency estimation) 결과 예시가 나와있습니다. 이렇게 하고 나면 음원 분리나 채보 등의 작업을 하기에 유리해지겠죠.




일단 여기에서 [1/3]부를 마칩니다. 

No comments:

Post a Comment