Sunday, September 30, 2018

ISMIR 2018 논문 소개 [2/3]


차례

ISMIR 2018 논문 소개 [1/3]

이어서 논문을 열심히 읽어보도록 합시다!

Papers

frame단위로 뭔가를 분류/예측/탐지하는 MIR문제가 많이 있습니다. 예를 들면 보컬 유무 탐지나 마디의 경계선을 찾는 다운비트 탐지같은 문제가 여기에 해당합니다. 이를 딥러닝 혹은 로지스틱 회귀 등으로 해결하려면 출력값에 Sigmoid를 적용해주고 이를 0.5를 기준으로 반올림하는 식의 방법을 많이 사용합니다.

그러나 상황에 따라서 0.5 미만의 값임에도 주변보다 값이 확연히 큰 피크에 해당한다면 "Positive"로 보는게 맞을때가 많이 있습니다. 이런 경우에 주변 값의 평균과 최대값 등을 비교하여 피크를 찾는 방법이 널리 쓰입니다. 본문의 식 1-3이 여기에 해당하고 Librosa의 peak_pick도 같은 원리입니다.

한편 이런 SGD기반의 최적화는 대체로 프레임단위로 ground truth가 존재하고 각 프레임마다 loss를 구하는 것이 보통입니다. 이 논문은, peak picking에서 주변 프레임과 비교를 통해 지역 극대값을 찾는다면 loss도 주변 프레임까지 고려해야 한다는 가설로 시작합니다. 즉 ground truth에 존재하는 지역 극대값을 예측모델이 따라갈 수 있도록 하자는 의미입니다.

그런데 여기에서 제안한 방법은 아무리 봐도 좀 의아하네요. 요약하면 $t=t_0$의 loss뿐만 아니라 주변의 loss까지 포함하자는 이야기인데, 어차피 전체 신호를 프레임으로 나누고 각 프레임에서 loss를 구한 뒤에 그걸 다 더하는 식으로 (=이 논문에서 식(4)에 나온대로) loss를 구하기 때문에 결과적으로 동일한것이 아닌지.. 

그리고 식(11)은 cross-entropy의 두 항에 가중치를 준 식인데 같이 나온 설명은 물론 틀린말이 아니지만.. 그림 4, 5를 보면 $\phi$가 1에 가까울수록 F-measure로 더 높은 숫자가 나오는데요, 이에 대해 본문에서는 아래와 같이 복잡한 해석과 추정을 합니다.

"For any values less than one, there is a dramatic decrease in performance which suggests that the false negative suppression half of the WCE function has a negative effect on performance. This is possibly due to the extremely high value given to flat parts of the activation function (see Figure 2), causing these parts of the activation function to become noisy. This suggests that the improvement is due to the false positive suppression half of the WMD system. As this alone achieves higher F-measures than the other proposed cost functions, then it also suggests that their improvement is also due to the suppression of false positives."

그런데 훨씬 직관적인 설명이 있습니다. 
- $\phi$ 가 작아질수록 (예: 0이면) target이 1일때의 loss를 크게 보므로 false negative를 줄입니다. 물론 반대로 $\phi$가 클수록 false positive를 줄이구요. 
- 여기에서 다룬 드럼 채보같은 문제는 라벨의 밸런스가 전혀 맞지 않습니다. 대부분의 프레임에서 아무 일도 없고 (target이 0) 어쩌다가 한번씩만 target=1이 되니까요. 
-- 그리고 이런 데이터 분포를 따라서 학습이 진행되기 때문에 뉴럴넷은 negative (target=0)를 훨씬 더 많이 예측합니다. 타겟의 대부분이 0이니까요. 
- 그런데 F-measure는 false negative와 false positive에 동일한 가중치를 주는 평가지표에요 (precision과 recall의 조화평균).  다시말해 데이터 포인트로는 몇개 없는 target=1들의 에러인 false negative에 훨씬 큰 가중치를 주고 전체 성능을 평가하는 셈이죠.
- 그러므로 학습을 진행할 때 $\phi=1$에 가까우면, 즉 false negative의 데이터 샘플에서 훨씬 큰 gradient를 받아오도록 해버리면 (<--> target=1인 데이터 샘플에 더 큰 가중치를 주면), F-measure 측정시 더 유리한 점수를 받습니다.

저자가 트잉여가 아니라 물어보긴 귀찮지만 아무래도 제 설명이 맞지않나싶습니다. 그리고 이 문제는 데이터에 가중치를 줘서 밸런스를 맞춰주면 바로 확인해볼 수 있고, focal loss같은것을 써도 되고, 아무튼 제안한 방법보다는 좋은 실험/해결방법이 많이 있다고 생각합니다. 



저자는 이미 여러번 보컬 탐지 (VD; Singing voice detection) 논문을 냈었는데, 그러다보니 보컬에 있는 프레임이 대체로 에너지가 더 높다는걸 깨달았습니다. 그리고 데이터 기반으로 VD문제를 풀다보면 시스템이 단순히 에너지 기반의 판정을 내려버리는 문제가 생길 수 있죠. 이를 해결하기 위해 컨볼루션 커널의 성분의 합이 0이 되도록 하는 zero-mean convolution을 제안합니다. 이렇게 되면 입력값 X에 있는 offset이 제거된다는것이 3페이지의 식에 잘 나와있습니다.

사실 저도 비슷한걸 드럼 분리에서 깨달았는데 이걸 가지고 휴리스틱으로 점철된 논문을 냈다가 까인게 5-6년전 일이군요. 혹시 관심있으신분...



실험이 잘 되어있는 좋은 논문이네요. 그런데 한편으론 에너지가 더 크다는 것도 정보의 일부고 실제 데이터가 그런 분포를 따른다면 그걸 이용하는것에 반드시 문제가 있다고 할 수 있을지.. 물론 제안하는 방법이 모든 SNR에서 더 좋은 성능을 보였기 때문에 이 경우에는 별로 중요하지 않습니다만.

작년에 나온 (스펙트로그램을 이용하는) U-net기반 음원분리 논문의 time-domain 버전입니다. 전에 여러 번 읽고 구현도 해봤는데요, 몇 가지 특징은..

- 크기가 작은 데이터셋으로 했을 때 스펙트로그램 U-net보다 살짝 좋은 성능이 나왔습니다.
- sisec 2018에서 괜찮은 성능을 보인 시스템 중 하나입니다.
- "valid" 컨볼루션을 사용할것을 제안했습니다. 맞는 방향이라고 생각합니다.
- U-net의 업샘플링 부분(디코더)에서 컨볼루션 레이어 기반의 업샘플링이 아니라 linear interpolation을 사용했는데 이것도 나쁘지 않아보입니다. 그런데 컨볼루션 업샘플링도 파라미터를 잘 셋팅하면 사실 linear interpolation이랑 비슷한 작용을 하는식으로 학습이 되지 않을까 싶기도 하구요.
- 입력 값으로 스테레오 채널을 모두 사용한것은 좋은 방향입니다. 그런데 여기서 한것보다 좀 더 적극적으로 할 수 있을것 같습니다.
- 네트웍의 전반부(인코더)는 conv1d와 decimate를 번갈아가면서 사용했는데, 사실 이것은 dilated conv1d를 쌓은것과 같은 연산을 수행합니다. (본문엔 나와있지 않습니다.)





다소 복잡한 뉴럴넷 구조를 쓰는데 아쉽게도 데이터셋에 따라서 기존 방법 (DSM [2]: 작년 ismir에 나왔던 간단한 컨브넷) 대비 제안한 방법(위의 3개 - segmentation, seg+ note, seg + time)항상 좋지가 않아서 좀 아쉽네요. 데이터셋이 작아서 그럴수도 있다는 생각도 듭니다. 그리고 이런식으로 결과가 나왔다면 데이터셋마다 어떤 특징을 갖고있는지 알아봐야할 때가 아닌가 합니다.

(c)의 데이터셋과 DSM 논문의 저자가 같은 사람(Rachel Bittner)인데요, 자기가 만든 데이터셋으로 제일 열심히 실험을 했던것일지도 -.-

제안한 방법중에 Segmentation이 나머지 두개보다 더 간단한건데 막상 성능은 더 좋게 나왔네요. 물론 차이가 크지 않고, note PNN과 time PNN은 transfer learning을 한것이라 Segmentation이 6 epochs동안 학습을 한 반면 note PNN, time PNN은 2 epochs만에 저 성능을 달성한 것이라고 합니다. 그런데 그건 pre-training시간을 빼고 계산한것인데 pre-training까지 포함하면 정말 유리한지? 물론 pre-training은 한번만 하는 것이니 데이터셋 내지 use-case가 여럿 있다면 여전히 장점이긴 하지만요. 그보다도 어차피 트레이닝 몇시간이면 될것같은데; 차라리 학습 데이터가 덜 필요했다면 모를까 엄청난 장점으로 보이진 않습니다.

전반적으로 실험이나 글쓰기도 괜찮고, Li Su가 공저자로 참여한 논문이 이번에 괜찮았던것으로 기억해서 앞으로 나올 논문도 기대가 많이 됩니다.


연구내용은 다소 평이하지만 런던에 있는 자동작곡 스타트업 Jukedeck에서 나온 논문이라 링크만 걸겠습니다. Jukedeck은 업계에서 상당히 잘 하고있는 스타트업이니 현업에서 어떤 방법을 사용하는지 알 수 있는 좋은 자료입니다.



아주 마음에 드는 논문입니다.

우선 symbolic domain(악보)에서 음악의 스타일을 바꾸는 스타일 트랜스퍼 문제를 푸는 논문입니다. 여기에서는 주어진 음악이 멜로디와 반주(accompaniment)로 이루어진 homophonic music이라고 가정하고, 멜로디를 그대로 둔 채 반주의 스타일만 바꾸는 상황으로 가정합니다. 

LSTM으로 feature를 생성하고, 이를 이용해 다시 autoregressive convnet으로 각 시점의 음표를 생성합니다. 여기에서 핵심은 섹션 2.4 스타일 트랜스퍼에 나온 알고리즘 1입니다.



일단 본문에 나온 바로는 [7] DeepBach의 변형입니다. 그런데 제 이해가 매우 얕아서 누가 자세히 알려주시면 좋겠군요. 


논문 소개 2/3은 여기까지입니다.


No comments:

Post a Comment