DeepHear정리2/2

Harmonizing melodies with constrained prior sampling

원문 : http://126kr.com/article/8eonheg4pqd

 

우리는 이 neural net이 실제로 어떤 음악적 구조를 배웠다는 것을 보여주고 싶다. (화성, 리듬, 코드 진행)

이를 위한 한가지 방법은 뉴럴넷으로 하여금 학습되지 않은 새로운 문제를 풀도록 하는 것이다. : 멜로디가 주어졌을 때 harmonize하는 것.

이것이 가능하다면 우리 뉴럴넷이 음악의 실제 패턴을 encode한다는 것을 의미하며, 다른 음악적 용도로 사용될 수 있을 것이다.

 

Harmonization은 ‘completion’ 문제이다. 어떤 음악의 일부분(멜로디)이 주어졌을 때, 전체 음악을 완성하도록 하는 것이다. Autoencoding 뉴럴넷의 관점에서 보면, 우리는 output의 일부분이 주어졌을 때 전체 output을 도출할 수 있어야 하는 것이다. 모든 valid한 output의 영역은 generative net의 input(16개의 레이블 뉴론)에 의해 결정된다. 다시 말하면, 이 16개의 뉴론의 activation으로 인해 만들어진 모든 output은 valid 하다고 볼 수 있는 것이다. 우리는 따라서 주어진 melody와 최대한 일치하는 output을 도출하는 레이블을 찾아내기 원하는 것이다.

 

확률 모델과 익숙하다면, 조건부 확률을 사용하는 추론 문제임을 알 수 있을 것이다.

: given a generative model P(Yout|Xin), you want to estimate the Xin’s that maximize P(Xin|Yout=y).

하지만 뉴럴넷은 확률적 해석을 하기 어렵다. 그러므로 우리는 generative model을 블랙박스라고 여기고, 단순히 좋은 output을 내는 레이블을 search하고자 한다.

우리는 gradient descent를 사용해서 해당 output(음악 snippet)을 도출하는 레이블 L을 찾을 수 있다. 먼저, 우리는 error 양을 정의한다.

27EBD9F7-60A3-4F50-B5E4-D611523F0D88.png

 

우리는 멜로디(하모나이즈 하려는)의 노트가 아웃풋 snippet에 없을 때마다 penalize한다. 또한, 아웃풋 snippet에 멜로디와 1온음 간격 이내의 노트가 있을 경우도 (화성적으로 충돌음) penalize하도록 한다. 이는 멜로디와 아래 위 1온음 이내의 모든 노트들(해당 노트는 제외)의 sum of squares를 구함으로써 얻을 수 있다.

4A5E2910-5523-4A72-8072-45D9224F2977.png

 

에러 텀을 구했으니, 이제 Label L에 대한 gradient descent를 할 수 있다.

이 방식은 L에 관해 로컬 미니멈을 얻게 한다. 그러면 우리는 gen(L)에 오리지널 멜로디를 얹어서 완성한다. 왜냐하면 gen(L)은 멜로디를 완전히 재생하지 못하는 경우가 많기 때문이다.

이런식으로 생성한 음악에 대한 evaluation이 가능하다..!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s