Showing posts with label ISMIR. Show all posts
Showing posts with label ISMIR. Show all posts

Sunday, September 30, 2018

ISMIR 2018 논문 소개 [3/3]



차례

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


이번 글에서는 Late-Breaking/Demo 세션을 보겠습니다. 이 세션은 6+n페이지고 피어리뷰를 받는 정규 세션과는 다른 워크샵 트랙이라고 보시면 됩니다. 분량은 2페이지이고 MIR과 관련된 것이라면 실험이 진행중인 내용이나 데모 등 무엇이든 편하게 낼 수 있는 세션입니다.

LDB submissions

인공 와우(cochlear)는 음성 인식을 목적으로 하고 신체에 장착해야하므로 효율이 매우 중요합니다. 따라서 복잡한 연산이 어렵고 대략 수십 채널정도의 주파수 해상도를 갖고있습니다. 여기에서는 인공 와우를 장착한 사람들이 음악을 들을 때 어떤 요소를 중요시하는지 알기위해 인공 와우를 모사한 시스템을 통과한 음악을 들려주며 선호도를 AB 테스트로 조사했습니다.

그 결과가 그림 1입니다. 사람들은..
- 아는 노래 > 모르는 노래
- 정상 음질 > 떨어지는 음질

그리고..
- 모르는 노래, 정상 음질 > 아는 노래, 떨어지는 음질

이 이 실험의 제일 큰 수확이겠네요.

너무 간단한 결과지만 '아는 노래'로 널리 알려진 곡을 고르다보면 인기가 높은 곡이 나와서 애당초 '아는 노래'와 '모르는 노래'에 편향이 있을 수 있는데 (예를들어 '아는 노래' 집합의 노래 자체가 '모르는 노래'보다 더 사람들이 좋아할만한 노래라든지..) 이런걸 잘 걸러내고 실험한것 같았습니다.


피아노 악보에 있는 운지를 생성하는 파이썬 라이브러리입니다. 깃헙 코드 참고.

조만간 풀페이퍼로 나올것같은 완성도의 초록입니다. 흔히 악기의 음표 하나의 오디오 신호를  ADSR(attack - decay - sustain - release)의 인벨롭으로 해석합니다. 여기에서는 이를 HMM으로 모델링해서 채보에 이용했는데 매우 직관적이고 합리적인 방법으로 보입니다.

WaveGAN 등 좋은 연구를 많이 하고있는 Chris Donahue의 쩌는 데모입니다. 온라인에서 직접 보시죠.

요약하면, 단선율의 피아노 멜로디에서 다음에 나올 확률이 높은 노트 8개를 (RNN encoder로) 선정해서 8개의 키보드에 맵핑하고 이를 보여주는 방식입니다.

2페이지 워크샵 페이퍼에 수식이 15개라니..




Tonnetz는 음악에서 서로 다른 음표의 상대적인 관계를 시각화하는 방법입니다. 이 설명도 좋네요. Tonnetz를 이용하면 각 관계가 '그림'으로 나오는데 이 그림이 key-invariant, pitch-invariant등의 장점을 갖고있습니다. 이 초록에서는 이를 좀 더 발전시켰는데 제가 깊게 이해하진 못했습니다.

----

이상으로 ISMIR 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은 여기까지입니다.


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]부를 마칩니다. 

Wednesday, August 17, 2016

ISMIR 2016 - Day 3, 4


Day 3: Poster session 3


이 논문과,


이 논문은 거의 내용이 일치합니다.
우선, ground truth는 binary vector입니다. 다양한 드럼의 요소 - 심벌1, 심벌2, 스네어, 킥, 하이햇 등에 차원을 하나씩 할당한것이죠. 이 ground truth를 프레임별로 만들어줄 수 있겠죠? 그리고 오디오의 2-d representation (Log-frequency spectrogram)을 입력으로 넣어주고, RNN으로 이를 학습시킵니다. 끝~






아주 중요한 논문입니다. 이번 학회 논문중에 제일 중요하지않나 합니다.

음악 신호를 2차원으로 표현하면 주파수-시간축으로 나타냅니다. 여기서 주파수축이 linear scale이냐, mel-frequency냐, log scale냐의 차이가 있을 뿐입니다.

여기서 큰 문제가 발생하는데, 이미지랑 너무너무다른, 배음(harmonics)이라는 놈이 존재한다는거죠. 예를들어 440Hz 음은 880Hz, 1320Hz등 배음이 존재합니다. 

즉 N Hz 성분은 N-1, N+1성분과 상관관계를 갖는것이 아니라, 2N, 3N, 4N Hz 성분과 상관관계를 갖죠.

따라서 convolutional kernal을 '띄엄띄엄' 만들어주면 이 상관관계를 컨볼루션으로 모델링 할 수 있습니다. 위 그림의 spiral으로 표현된게 요겁니다.

진작 이렇게 했어야하고, 저도 비슷하게 구현했던적이 있는데 MTT/MSD로 데이터셋을 넘어오면서 작업이 멈췄습니다. Brian McFee도 얼마전에 같은 이야기를 했었구요.

특히 배음관계가 중요한 작업 - 악기인식 - 에 더 큰 영향이 있을겁니다. 꼭 참고하세요. 


Day 4: Oral session






제 논문입니다. 논문에 사용된 컨브넷의 크기를 최적화하고 다시 학습시킨 모델을 깃헙 저장소에 공개했으니 역시 참고하시길..


남주한 교수님 연구실의 금상은씨가 쓴 논문입니다. 
Multi-column approach를 적용해 보컬 분리를 했는데요, 아마 다른 작업에도 적용할 수 있는데가 많을 것 같습니다. 


Late-Breaking/Demo session

Late-breaking/demo 세션은 2+1페이지에 간략한 연구 내용/계획등을 요약해 자유롭게 발표하는 자리입니다. 정식 학회지로 출판이 되진 않고 온라인으로만 공개됩니다. 


마젠타팀에서 나온 내용인데요, 음... 야심차게 지은 이름 (Audio DeepDream)에서 알 수 있듯이 좀 별로네요. 저자가 구글브레인이라 써있는데 인턴이라고 써있지가 않아서 좀 놀랍습니다.



제가 요즘에 하는 내용입니다. 음악/플레이리스트의 '설명'을 자동으로 생성해주자는 계획인데 의도는 가상하나 데이터가 부족해서 힘들군요.



역대 최강의 학회 테이블을 소개합니다.


사실 이 세션은 제가 발표하느라 다른 포스터를 잘 못봤습니다.
깃헙에서 보려고 하니 클릭하면 웹브라우저에 파일이 뜨는게 아니라 자동으로 다운로드가 되는 바람에 읽을 마음이 들지가 않는군요. 
따라서 여기에서 턴을 종료합니다. 


Tuesday, August 9, 2016

ISMIR 2016 - Day 0, Day 1, Day 2

지금 학회가 진행중입니다만 우선 2.5일치 정리합니다.

Day 0: Tutorial

T1은 재즈 역사 소개 / 재즈 데이터셋 및 발표자들이 개발한 툴을 소개했습니다. T1의 발표자인 Jakob Abeßer는 재즈 관련 연구를 많이 한 사람입니다. T4는 EEG에 대한 소개였는데 발표는 매우 지루했습니다. 발표자료를 github에 올렸다고 했는데 어딨을까요..;;

제가 제일 관심있는 내용은 Tutorial: Natural Language Processing for Music Information Retrieval입니다. 내용 자체는 매우 기본적인 NLP입니다. 그리고 링크를 들어가 보시면 음악 관련 데이터로 학습한 word2vec 모델을 공유하고있습니다. 

T2는 MIR에 관심있는분이나 연구/공부를 시작하는 분들을 위한 내용입니다.
T6 - Why Hip-Hop is interesting은 MIR에서 일반적으로 가정하는 음악 신호와 힙합이 어떤 차이를 갖고 있는지에 대한 내용입니다.

Day 1: Papers

12음계의 representation인 chromagram은 STFT/CQT에서 하모닉스를 단순히 더하는 방식으로 계산할 경우 신호의 하모닉스 성분때문에 많은 노이즈를 포함하게됩니다. 이를 deep neural network를 이용해 더 잘 계산해주겠다는 내용입니다.
Chromagram은 오디오 feature representation의 하나로 멜로디나 코드 추출 등에 사용할 수 있습니다. 딥러닝으로 Feature를 학습하는 방식이 정확히 어떤 쓰임새가 있을지 따지긴 어렵습니다만 연구 방식은 유효합니다.

한참 boundary detection논문을 내던 저자가 이번엔 다른 문제를 푸는 논문을 냈군요. 10k 트랙을 이용하는데, 레이블링 정보가 트랙 전체에 보컬이 있냐/없냐로만 되어있습니다. 이걸 컨브넷을 써서 학습시킨 결과를 다시 시간 프레임별로 적용하면 결과적으로 각 프레임에 보컬이 있냐 없냐의 문제 (제목의 Pinpoint이 의미하는 바가 이것이겠죠)를 풀 수 있다는 내용입니다.
즉, 곡 전체의 라벨로 학습시켜도 더 작은 단위의 판단을 잘 내릴 수 있게 된다는 내용이구요.

이 방식이 작동할 수 있는 이유를 대충 설명하자면 그냥 데이터가 많아서, 오차가 상쇄된다고 볼 수 있습니다. 다르게 보면 강화학습의 학습 과정과도 같은 셈입니다. 강화학습에서도 t0부터 t1사이에 일어난 모든 이벤트 중에 사실 중요한 이벤트는 아주 일부일 수 있습니다. 그렇지만 t0-t1사이의 모든 이벤트가 같은 레이블에 의해 reward나 penalty를 받게 되지요. 이 논문의 적용 방식도 같고, 다만 강화 학습에서는 그런 다양한 example이 시간축에 분포하는 반면 여기에서는 spectrogram의 하나의 axis일 뿐인 것이죠. 혹은 이미지 분류에서도 꼭 pixel별 라벨링이 되어있지 않아도 deconvolution을 해보면 어떤 위치에 객체가 있는지 대략 알아낼 수 있는것과 같습니다.

발표 마지막에 아주 재미있는 데모가 있었습니다. 결과적으로 이 컨브넷이 뭘 학습하냐?라는 것이었는데 아무 스펙트로그램에다가 선을 마구 그려서 컨브넷에 보여주니까 대각선 성분이 있으면 보컬이 있는것으로, 대각선이 없고 가로/세로선만 있으면 보컬이 없는 것으로 판단하더군요. 아..아이유의 삼단고음은 어떻게 될지 궁금하군요. 아무튼 그래서 스펙트로그램에 VOICE라고 그림을 확 그렸더니 (그림을 그린 부분이 높은 값을 갖게 되겠지요) V, O, C 처럼 대각선 성분이 있는 곳은 보컬이 있다고 판단을 하더군요.




Last.fm 로그를 수집합니다. 플레이로그와 함께 사용자의 나이/국가/성별을 모았구요.
그리고 사용자 모델링을 통해 3가지 feature를 제안했습니다. Exploratoryness, Mainstreamness, Genderness입니다. 앞의 2개는 EchoNest에서 artist profile에 있던것과 비슷한 내용이고, 이름도 직관적이죠. 마지막 featurer의 경우 저는 정확히 이게 어떤 작용을 할 것인지 잘 감은 안왔습니다만 Paul Lamere (Spotify)의 블로그 포스팅 Gender Specific Listening에서 소개한 것 등 남/녀의 취향 차이는 있겠죠.

이제 계산한 user feature와 demographics 정보를 이용해 추천을 해야하는데, 추가된 정보를 어떻게 user-item matrix에 집어넣어서 factorise를 해줄 수 있을 것이냐가 문제겠죠? 이 논문에서는
S. Rendle. Factorization machines. In IEEE 10th Inter- national Conference on Data Mining, pages 995–1000, Sydney, Australia, 2010. IEEE. 
의 방법을 사용했다고 합니다. 논문을 인용만 했는데 설명이 너무 안된것이 좀 아쉽군요. 안봤지만 아마도 여러 유사한 목적의 다른 논문처럼, factorise하기 위한 objective function에, 추가된 criteria에 맞춘 항을 더한뒤에 SGD로 최적화하는 전형적인 방식이 아닐까 생각합니다.

결과는 심플한데요, 논문의 그림 2를 보시면 이런저런 정보를 다 사용하면 Matrix factorisation의 RMSE가 제일 낮아진다 - 즉 retrospective evaluation의 결과로 제일 좋다 - 는 내용입니다.

뒷부분에 추가로 주말/주중이라는 컨텍스트 정보를 추가했는데 결과는 별로 성능이 좋아지지 않습니다. 제 의견은 사용자 모델링에서 사용자가 얼마나 컨텍스트에 민감한지 - 즉 user.contextualness 같은 내용을 더 모델링하지 않으면 컨텍스트 관련 추천은 늘 이런식이 아닐까 합니다. 저자랑도 비슷한 이야기를 했구요.



USC의 Julian McAuley가 발표한 Amazon review dataset이 있습니다. 여기에서 음악 관련 카테고리만 모아서 열심히 정리를 한 데이터셋인 MARD: Multimodal Album Reviews Dataset을 발표했습니다.

아마존 product ID와 Musicbrainz ID가 매칭이 안된다는 슬픈 이유로 (API에 항목은 있지만 값이 대부분 비어있습니다) Entity recognition을 써서 장르나 밴드 이름등을 뽑아는 등 각종 귀찮은 text preprocessing작업을 거쳐서 만든 데이터셋입니다. 

그리고 이 데이터셋을 이용해 장르 분류 작업을 간단히 보였구요. 

드럼 기초 테크닉인 strike(치는것), buzz roll, flam, drag 네가지를 구별하는 논문입니다. 


Day 2


MIREX라는 이벤트가 있습니다. ISMIR에서 하는 competition인데요, 음.......... 한마디로 이야기하면 이제 정말 문제가 많습니다. 작업 개수는 너무 많고, 관리에 어려움이 많고 비효율적이고 등등. 참다못한 Brian이 Kaggle for MIR을 만들어야한다! 라는 내용을 제안하는 발표였습니다.

각종 인프라를 위한 소프트웨어가 공개되어있고, 이래저래 가능한 시나리오입니다. 다만 중간중간에 돈이 들어가는 부분이 있고, 사람들의 참여가 많이 필요하겠죠. 시도가 잘 되길 빌고있습니다.

각종 스트리밍 서비스 - 정확히는 클라우드 뮤직 서비스, 즉 본인의 음악을 업로드해서 쓰는 iTunes Match, Amazon, Google Music - 에 대한 사용자 조사입니다.

중간에, 60%정도 되는, 많은 사람들이 돈을 지불하고 쓸 용의가 있다고 응답했다. 고 써있는데 저는 좀 회의적입니다. 설문조사에서 사람들이 솔직하게 답하지 않는 흔한 오류가 아닐까요? 그 사람들이 스스로 '돈을 낼 용의도 있는데?'라고 말하거나, 혹은 진심으로 그렇게 믿는다 하더라도 이렇게, 이렇게! 이렇게 좋은 뮤직 스트리밍 서비스가 많은데 지금도 공짜로 쓰는 사람들이 엄청나게 많은 마당에 무슨 의미가 있는걸지 잘 모르겠습니다. 행여나 그게 진심이라면 스트리밍 업체에서는 무료 사용자의 만족도를 일부러 낮춰서 결제를 유도해야하는걸까요?

슬라이드가 공개되어있는지 모르겠습니다만 사진 몇장 첨부합니다.










Michele가 퀸메리에 방문연구와서 연구한 내용이군요. NLP동네에 ANEW라는, Affective Norm for English Words, 즉 각종 감정에 관련된 단어를 Arousal-Valence-Dominance 총 3개의 축으로 된 3d 공간에 맵핑시켜놓은 데이터가 있습니다. 이 데이터가, 즉 벡터 맵핑이, 음악의 감정(mood/emotion) 관련된 태깅이나 분류 문제에 직접 사용하기엔 좀 맞지 않는 면이 있습니다. 저도 한번 테스트해봤다가 너무 맞지 않아서 관뒀는데, 이걸 이래저래하게 고쳐쓰자는 내용입니다.

몇 달동안 같은 연구실에 앞-옆자리에 앉아있던 친군데 이걸 연구했는줄을 오늘 알았습니다...


아주 재밌는 내용입니다. 전에 영문 블로그에 정리했던 ICML 2016: ML4MD 워크샵에서도 비슷한 논문이 있었습니다. 각종 아이템 (song, user, playlist,...)의 co-occurrence를 이용해 word2vec비슷한 embeddings을 학습시키고 그걸 이용해 추천이나 분석을 하는 내용이고 이 논문도 유사한 내용입니다.

이 연구의 특징은 Song, Session, User 이렇게 3가지 카테고리를 하나의 평면에 맵핑했다는 내용입니다. 여기서 Session이란 대략 플레이리스트 비슷한건데, 곡 하나가 끝나고 다음 곡 재생되는 시간 간격이 10분이 넘으면 별도의 session으로 보는걸로 정의했습니다.


그리고 위의 그림처럼 같은 network에 있으면 co-occurrence라고 보구요.

시각화를 위해서는 직접 2D로 embedding을 구했고, 추천에 이용한 벡터는 128차원입니다.

사용한 데이터는 타이완의 KK Music이라는 곳의 로그이고 2015년 상반기 6개월간의 데이터를 썼습니다.


평가는 precision-recall을 보았는데 가장 기본적인 MF보다 좋은 성능을 보입니다.



이 데이터가 좀 재밌습니다. 사용자 한명을 고정하고 그 사용자가 들은 음악을 2D 평면에 배치시킨 것입니다. 여기에 Clustering을 써서 사용자가 현재 듣는 세션이 어떤 '모드'의 세션인지 (즉 어떤 cluster에 해당하는지) identify한 뒤에 그에 맞는 추천을 해준다면 자연스럽게 personalised contextual recommendation이 될 것 같습니다.

제 연구 분야이기도 해서 저는 아주 맘에드는 내용이었습니다.

제가 포스터 세션이 조금 일찍 갔는데, 3저자인 지도교수가 1저자인 학생에게 아주 자세한 내용을 묻더군요. 음... 그러니까 와서 발표할때까지 지도교수는 이 논문이 어떤 내용인지 잘 몰랐다는 이야기가 되겠습니다. 거기에서라도 물어보고 관심 가지는게 어디냐 하는 생각을 했습니다.

그리고 이 세션이 끝나고 어쩌다가 아마존 뮤직(@씨애틀)에서 엔지니어로 일하고있는 사람과 이야기를 했는데, 자세한건 이야기할 수 없지만 이 논문과 아주, 아주 비슷한 알고리즘을 회사에서 사용중이라고 하더군요. 그 정도면 이미 말해선 안되는 내용을 말한 것 같습니다만... 


서울대 이교구교수님 연구실에서 나온 논문입니다. DNN을 스펙트로그램이 아닌 cepstrogram에 적용하는 내용입니다. 왜냐하면,
...because a cepstrogram is shown to be a more robust representation to capture the dymanics of the overall timbre than a spectrogram.
이라고 합니다. 제가 잘 모르는 내용이라 논문 본문을 인용했습니다.

...input representation을 잘 몰라서 뒷부분 내용을 리뷰하기가 어렵군요...

실험에서는 GTZAN dataset을 사용했습니다. 너무 오래된 데이터셋이라 좀 문제가 있는데, 
  1. Corey Kereliuk, Bob L. Sturm, and Jan Larsen. Deep learning and music adversaries. IEEE Transactions on Multimedia, 17(11):2059–2071, 2015. 
에서 제안한 splitting을 사용했습니다. 그리고 random splitting의 결과도 같이 본문에 포함했습니다. 



음악 추천 관련입니다. 사용자의 skip/playing을 기반으로 현재 곡에서 다음 곡으로 나아가야할 '방향' 벡터를 구해주고, 이에 맞춰 곡을 추천해주는 알고리즘입니다. '방향'을 구하는 알고리즘이 핵심이구요.

대략 설명하면, 사용자의 log를 보고 co-occurrence를 통해 곡과 곡의 관계를 graph로 정의합니다. 이 때 co-occurrence를 사용해 곡와 곡을 잇는 edge의 값 (=similarity)을 구해주구요. 그리고 그 graph를 그대로 사용하기엔 연산량이 많아서 ISOMAP으로 n-dimensional space로 맵핑해줍니다. 

그리고 그 space에서 각 곡의 '진행 방향', 즉 공간에서 곡과 다음 곡의 상대적인 위치를 이용해 현재 사용자의 '관성' (혹은 진행 방향/속도..)를 구하고, 이를 통해 다음 곡을 고릅니다. 만일 사용자가 스킵할경우엔 그 방향의 반대방향으로 진행하게 되구요.

상당히 잘 진행한 연구라고 생각합니다. 다만 평가하는 부분에서 와닿지 않는 부분이 많이 있었습니다. 실험 설계가 과연 제안한 알고리즘을 평가하기에 적합한지도 잘 모르겠구요. 하지만 dynamic listening 상황을 가정한 연구라 평가하기가 엄청나게 어려웠을걸 감안해야겠죠. 아주 아주 유효한 접근 방식이라고 생각합니다. 실험까지 잘되었으면 (그리고 지도교수의 도움으로 앞부분이 좀 더 멋지게 포장이 된다면) 진짜 훌륭한 논문이 되었을거란 생각이 들었습니다.

Thursday, November 5, 2015

[Korean] ISMIR 2015 요약


2015 International Society of Music Information Retrieval (ISMIR)이 끝났습니다. 관심있게 본 발표를 정리하니 도움 되길 바랍니다.




서울대학교 융합기술원의 MARG랩에서 나온 논문입니다. 저도 한때 관심있었던 분야라 저자분과 이야기를 좀 했습니다.
연구의 가정은 스팩트로그램에서 wideband로 분포한 성분이 곧 타악기 성분이라는 것 입니다.
실험에서는 Derry Fitzgerald, Ono의 논문과 비교를 하였습니다.
저자의 말씀에 의하면 실제로는 Derry Fitzgerald 방법보다 좋지가 못하다고...
기본적으로 이 논문은 주파수 축에서의 분포만을 모델링했는데, DF는 주파수축/시간축 두 방향에서 각각 타악기/하모닉 악기의 분포를 모델링했습니다. 즉, DF방법에 비해 실제로 나타나는 현상을 덜 반영한 모델에서 출발하였기 때문에 나오는 한계가 아닌가합니다.






[2] Understanding uses of commercial music services through personas
Jinha Lee 교수님의 논문입니다.
음악 서비스의 유저 그룹을 clustering하고 어떤 패턴을 보이는지 연구한 내용입니다.
그룹 수가 7개나 되는데 전체 실험자 수가 40명밖에 되지 않는 점이 좀 아쉽습니다만 내용은 아주 자세합니다. (반대로 생각하면 숫자가 적어서 다채로운 공통점을 찾기가 쉬웠던 것 일수도 있지요. 즉 몇명 없는 사람의 특징에 오버피팅된...) 7개의 그룹은 두가지 특징에 의해 결정됩니다. 하나의 축은 Companionship - 얼마나 소셜하게 음악을 듣는가: [상-중-하]==[소셜-중립-개인적], 이고, 또 하나의 축은 투자(Investment) - 얼마나 음악에 시간/돈을 투자하는가:[상-중-하]==[투자하는 편 - 중립 - 안한다] 입니다. 조합을 하면 총 9개가 나오게 되지만, 주로 소셜 측면이 [상] 인 경우에 투자 측면은 [상, 중]만 존재하고, 소셜이 [하] 인 경우에 투자가 [중,하] 만 존재한다고 하네요.
이와 관련해서는 그동안 (Jennings 2007) 이 주로 인용되었었는데, 앞으로 이 논문도 많이 참고가 되지 않을까 합니다.





Music recommendation과 관련해서 가장 많은 논문을 쓰고있는 Markus Schedl 교수 랩에서 나온 논문입니다.
CF방식에서 latent factor에 social tag를 추가하였습니다. 
이미 어지간한 회사에서는 쓰고있는 방식일거라고 생각합니다만 아무튼 논문으로는 novel하긴 합니다.





Gracenote에서 소위 day-of-a-year, 즉 연중 각종 이벤트에 관련된 (temporal context) 사람들의 청취 패턴을 조사하였습니다. 데이타는 2012년 1년동안 스트리밍된 호ㅜ쑤이고, 크리스마스/할로윈/성 패트릭 데이 등에서 피크가 크게 나왔네요. 
이번 여름에 제가 네이버 랩스에서 하려고 했었던 것과 유사한 가정을 하고, 그 가정을 점검하였습니다. 가정했던 내용이 어느정도 성립하는걸 보니 다행스럽기도 하면서 그 내용이 출판된걸 보니 아쉽기도 하고 그러네요. 



일단 너무 광범위한 제목이라 좀 맘에 안들지만...
조지아텍에서 나온 논문입니다.
구체적인 내용보다도 셋팅에 먼저 눈이 가네요.
11025 Hz 샘플레잇, CQT - 36 bins/octave, 최저 주파수 110 Hz (베이스기타는 무시하는군요...)부터 최고 주파수 3520 Hz까지로 필터뱅크를 썼네요. 반음 하나당 3개의 bin이 나오고 전체는 180개가 됩니다.
그리고,
그림 2에 전체 시스템이 나와있는데 뭐 그림을 저렇게 그렸는지... 나중에 자세히 보고 보완하든지 하겠습니다. (퍽이나...)



우선 제목에서 semantic은 semantic web에서의 semantic으로 보시면 되겠습니다. 즉 db에 정리된 artist 관련 정보를 이용한 artist similarity measure를 제안한 것입니다. 예를 들어 멤버가 겹치는 밴드는 유사성이 높다든지 하는 내용입니다.




[7] Exploring data augmentation for improved singing voice detection with neural networks

음악 신호와 딥러닝을 적용할 때 data augmentation을 어떻게 해야하는지에 대해 다룬 논문입니다. 이미지의 경우 rotation/flip등의 인위적인 왜곡을 통해 트레이닝 데이타 수를 늘리는데, 음악에서는 그동안 필요에 따라 소소히 쓰여왔지만 이에 대해 정리된 논문은 없었습니다. 안그래도 필요성을 느끼던 차에 이번에 이 포스터도 나왔고, Brian McFee는 오랄로 유사한 내용을 발표했습니다.
다만 두 논문 모두 그동안 흔하게 쓰여왔던 방식 - pitch shift/time stretch/loudness 정도를 제시하였는데 이 외에 좀더 좋은 방식이 없을까 하는 의문이 듭니다. 아, 그리고 gaussian noise를 더하는 방식도 있는데, 음성인식에서라면 모를까 음악과 관련된 머신러닝 작업에서 노이즈를 더하는 것은 일반적인 의미를 갖기는 어려워보입니다.



결과를 보면 데이타를 늘렸다고 늘 좋아지지는 않습니다. 



아주 재미있는 논문입니다. 이번 학회에서 best post representation award를 받았습니다. 
사실 내용은 잘 이해를 못했고 데모를 들어봤는데 정말 웃깁니다. 벌이 웅웅거리는 소리로 비틀즈 노래의 멜로디를 바꿔놨거든요.




2015년 여름에 판도라에서 인턴을 한 Dawen Liang이 발표한 논문입니다. 내용 자체는 흔히 나오는, cold-start problem을 해결하기 위하 content-based recommendation입니다. 2014년 스포티파이에서 인턴을 한 Sander에 이어서 판도라에서도 유사한 접근을 하네요. 
사실 너무 당연한 일인 것이, 그동안 판도라에서는 수십명의 음악 전문가가 곡을 하나하나 태깅해왔습니다. 그렇게 쌓인 곡이 대충 100만-200만정도 되는데, 문제는 전체 음악 DB는 3-4천만곡이라는 거죠. 당연히 머신러닝이 필요하구요.
논문에서는 MSD를 사용했는데, 판도라 내부에서도 그들의 데이타를 갖고 같은 작업을 했다고 합니다. 
2015년 ICML의 워크샵에서 같은 저자가 발표한 논문과 사실상 같은내용이라고 슬금슬금 실토했습니다.




[10] Music boundary detection using neural networks on combined features and two-level annotations
위에서 소개한 data augmentation 논문과 같은 저자가 쓴 논문입니다. 소속 기관인 OFAI는 오시트리아의 국가연구소라고 합니다.
CNN을 통해 바운더리를 트레이닝 하였고, 트레이닝 방식은 바운더리를 포함한 부분에서는 1을, 바운더리가 없는 부분에서는 0을 라벨링하였습니다. 바운더리라는것이 그야말로 경계면이다보니 어떤 크기의 스펙트로그램을 어떻게 주어야 할지 좀 애매할 수 있는데, 여기서는 우선 그렇게 길지 않은 구간의 신호를 (예를들어 1-2초? 기억이 잘 안납니다만..) 사용하였고, 바운더리가 정확히 가운데에 있는 신호에 더 weight를 주었습니다.
바운더리를 찾기 전에 pre-processing으로는 harmonic-percussive separation을 사용하였습니다. 그렇게 할 경우에 채널이 2개 있는 이미지처럼 처음에 데이타를 사용 가능할텐데, 여기에서는 어떻게 했는지 모르겠네요.




굉장히 성능이 좋은 데모를 준비하였고 학회 전 주말에 있었던 핵데이에서 상을 받았습니다. 
사실 내용은 전혀 보지 않았습니다. 대신 데모 영상을 찍었습니다.




DNN으로 아무리 난리를 쳐도 왜 코드 인식이 완전히 해결되지 않는가? 하는 문제인데,  아래 그림을 잘 보시면...


- 12음계, 평균율에 맞지 않는 음원이 있어서.
- 평가 방법의 문제
- task formulation, subjectivity: 저한텐 거의 같은 문제로 보이는데 결국 데이타셋의 문제죠. Consistency가 보장이 되지 않는다는 것.


그 예로 U2의 with or without you의 코드를 들었습니다. 각종 DB및 tab웹사이트에서 나온 코드를 비교하면 다들 조금씩 다릅니다.
팝음악은 악보나오고 음악이 나온것이 아니라, 음악이 나오고 악보가 나온것이라 어쩔 수 없는 문제입니다.


흥미로워보여서 찍었습니다만 아직 안읽어봤습니다. City University에서도 딥러닝과 음악을 접목한 연구가 꾸준히 나오고있습니다. 다만 folk melody와 같이 지엽적인 (안타깝지만 서양 음악은 이제 서양만의 음악이 아니라는 사실은 인정해야합니다. 그렇다고 그 이외의 것들을 '제3세계'로 보는 관점에 동의하는건 아닙니다만.) 소재는 전 개인적으로 좀 별로...



역시 딥러닝이라 찍어봤습니다만 잘 모르는 task라서 자세히 읽어봐야 알 듯 합니다.



[15] Mirex에서 music/speech 구분 1등을 한 논문입니다. 근데 mirex에 낸거라 출판된 논문이 없네요.
일단 1등뿐만 아니라 다른 거의 모든 방법이 다 CNN을 사용하였습니다.




[16] 제 논문입니다. CNN feature를 들어보고 뭔 일이 일어나는지 이해해보자! 라는 내용입니다.
자세한건 여기로.

마지막으로, 왜 사진이 없는지 모르겠습니다. 퀸메리의 Siddharth가 쓴 논문은 RNN을 써서 코드 인식을 하는 내용입니다. 굉장히 똑똑한 친구라 좋은 내용일거라고 생각하고 저도 오늘 읽어보려고 합니다... 논문은 여기.




여기까지 ISMIR 2015 저의 요약본이었습니다.