[AI X Music] 딥러닝과 음악창작. 어디서부터 어디까지
카테고리: medium
딥러닝과 음악창작. 어디서부터 어디까지
딥러닝과 음악창작. 어디서부터 어디까지
알고리즘 음악창작 역사에 대하여…
최근 딥러닝을 좀 더 다양한 분야에 적용하려는 노력들이 많이 보이는 것 같다. 그 중 예술분야, 딥러닝과 음악창작의 역사에 대해 정리해보고자 한다
시작
알고리즘음악
알고리즘 음악이라는 말을 들어보았는가? 딥러닝을 통한 음악창작도 알고리즘음악의 한 형태에 속할 수 있다.
모차르트가 주사위를 던져서 음악을 만들었다는 이야기는 아마 알고리즘 음악의 시초이지 않을까 싶다. Musikalisches Wurfelspiel (Dice Music)으로 알려진 이 방법은, 미리 주사위눈에 따라 어떤 악보를 넣을지 정해두고, 주사위를 계속해서 던져가며 눈에 맞는 악보를 끼워 넣어가는 방식이다. 이렇게 미리 주사위에따른 규칙(알고리즘)을 정해두고, 음악을 창작하는 방식을 알고리즘음악이라고 한다. 이렇게 음악에 무작위성을 가하는 방식은 20세기 이후의 현대음악에서 즉흥성과 창조성을 목적으로 다양한 방식으로 발전하기도 한다.
조심스럽게 추측해보자면, 모차르트도 음악을 좀 더 편히 만들고 싶어서 상상만 하던걸 직접 실현시켜본게 아닐까 싶다(a.k.a 귀차니즘)
딥러닝과 알고리즘 음악
딥러닝을 통한 음악창작도 결국 아주 복잡한 규칙을 만들어내고, 그 규칙을 기반으로 음악을 창작해내는 과정이다. 다만 그 규칙이 주사위와는 비교가 안될정도로 복잡하고, 악보의 흐름을 읽도록 만들기도 하고, 현재 음악의 맥락을 고려하기도 할 뿐이다.
그렇다면 주사위를 굴려서 음악을 만들던 ‘게임’에 가까운 이 알고리즘 음악이, 어떻게 학술적인 가치마저 충분히 있는 music generation이라는 분야까지 오게되었는지 살펴보고자 한다.
컴퓨터음악의 시작
일리아크 모음곡(Illiac Suite)은 확률에 따라 멜로디 조각과 리듬을 조합하여 만든 최초의 컴퓨터음악이라고 한다.
UIUC에 있는 일리아크 컴퓨터로 작곡을 하고, 공연을 올렸다고 하는데 수많은 호평과 혹평을 받았다고 한다. UIUC(일리노이 어바나 샴페인대학교)는 요즘도 컴퓨터 강국(?)중 하나인데, 이때 당시(1956년)에도 컴퓨터로 이런 창의적인 시도를 할정도로 여유가 있는 학교이자, 공학분야에 인적, 물적 자원이 탁월하지 않았나 싶다. 한국인들이 EE, CS 관련 박사학위를 많이따러 가는 top스쿨중 하나이며, 필자의 학교에도 계속 좋은 실적을 내고계시는 UIUC출신 교수님들이 계신다.
진짜 시작
1980년대 이제 좀더 딥러닝스러운 네트워크 형태의 디자인이 생겨난다.
첫번째로 소개할건 Todd아저씨의 Time-windowed 방식이다
window의 뜻은… 좀 야매로 설명하자면, 창문을 보면 똑같은 크기로 다다다다닥 나뉘어있는데, 데이터를 창문처럼 똑같은크기로 다다다닥 나누어두었다고 보면 된다. 여기서는 음악을 한마디처럼 잘라두었다고 보면 된다. (악보의 한 마디마디가 길쭉한 창문처럼 보일수도..?)
무튼 Todd아저씨의 time-windowed방식은, 한마디와 그다음마디의 상관관계를 학습시킨 모델이라고 보면 된다. N번째마디와 N+1마디의 관계를 학습!
그리고, Todd아저씨는 이걸로는 만족이 되지 않으셨는지, 새로운 디자인을 발표한다
새로운 방식에서는, 입력단에 Context와 Plan이 있다. Context는 여태까지의 멜로디고, Plan은 다양한 멜로디들이라고 보면 된다. 여러가지 형태의 멜로디를 Plan에 넣어서 다양하게 학습시킬 수 있고, 최종출력단의 멜로디가 Context와 연결되어 학습된다. 이로써, Plan에 따라서 새로운 멜로디를 창작해 낼 수 있기도 하고, 생성되는 멜로디가 Context(생성되기 이전까지의 멜로디 흐름)를 깨지 않고 적절히 생성되도록 만들어내었다.
Lewis
1988년(Todd, Lewis둘다 80년대)에는 Lewis가 CBR방식을 만들어낸다. Creation by Refinement => 잘 가다듬어서 만들어내기? 방식은 적절하게 잘 붙인 이름같다. 랜덤으로 멜로디를 생성하고, 그걸 네트워크를 통과시켜서 좋은 멜로디로 가다듬어나가는 방식이다. 그냥 음악에 무지한사람이 아무렇게나 연주한 음악을 잘 가다듬어서 최종적으로는 괜찮은 음악이 되도록 만드는 방식이랄까?
직접 결과물을 안들어봐서 모르겠지만, 그렇게 결과가 좋을 것 같지는 않다는 생각이 들었다. 괜찮은 멜로디를 넣어주어서 다듬어도 시원찮을 판에, 랜덤으로 만든 멜로디를 넣어서 다듬는다고 좋은 음악이 나올 것 같지도 않으며, 음악의 맥락(context)을 고려하지 않고 생성된 멜로디이기 때문에, 몇마디 듣다보면 음악이 뚝뚝 끊어지는 느낌이 들지 않을까 조심스럽게 추측한다.
중간정리
알고리즘음악의 시초인 모짜르트(1780s)
일리아크 컴퓨터로 만든 최초의 컴퓨터음악 일리아크모음곡(1950s)
뉴럴네트워크를 사용한 Todd와 Lewis(1980s)
딥러닝
딥러닝이 등장하고 음악창작에 엄청난 변화가 생겼다! 라는 말은 접어두고 싶다. 앞서 1980년대에 Todd와 Lewis아저씨들이 만든 방식들도 neural network방식이고, 컴퓨터가 좋아지면서 network층이 깊어진게 딥러닝이므로 딥러닝이라는 멋있는 단어에 너무 큰 무게를 두기보다는, 각각의 딥러닝의 모델들이 가지는 핵심 아이디어가 음악창작에 어떻게 접근하는지가 더 중요하지 않을까 싶다.
2016년 이세돌과 알파고의 대결 이후 우리나라에는 딥러닝 열풍이 불어닥쳤다. 이미 한창 시끌벅적한 딥러닝의 가능성을 미디어에서 확실히 각인시켜준 시간이 아닌가 싶다.
음악창작모델도 2016년 이후로 주목할만한 딥러닝 모델들이 더더욱이 많이 나왔고
2017년 ‘Attention is all you need’라는 이 재미있는 제목의 유명한 논문이 발표된 이후, 이(Transformer)를 이용한 좋은 성능의 모델들이 2019년이후로 많이 보이는 것 같다. Music Transformer도 이름에서 알 수 있듯이 Attention을 이용하여 만든 트랜스포머 기반 음악 창작 모델이며, 다음 글에서 한번 자세히 다루어보고자 한다.
무튼, 이쪽 분야에 관심이 쏠리고, 돈도(?) 쏠리다 보니 새롭고 다양한 모델들이 쏟아져나왔다. 음악창작도 자세히 나누어보면 여러분야가 있고, 각 분야의 목적에 맞는 모델들이 있다.
멜로디를 창작할수도, 멜로디에 맞는 반주를 창작할수도, 악기별 오케스트라를 창작할 수도 있다. 노래를 부르는 사람의 목소리를 창작(합성)할수도, 기존에 없던 새로운 악기소리(Sound) 자체를 창작해낼수도 있다.
공부하고, 연구하고, 실제로 만들다 보면 구글이 만들어둔게 참 많구나 라는 생각이 든다.
적다보니, 인공지능모델들을 자세히 설명하려면 RNN 기반, 인코더디코더 형태, transformer 등등을 설명하게 될 것 같고, 해당내용은 인공지능을 공부하는 다른 누군가가 잘 정리해두었으리라 믿고 글을 마친다(하핫...)
인공지능 모델들은 악보(미디, 시각적 기호)를 통해 만들어내기도 하고, 우리가 실제귀로 듣는 그 소리 자체를 학습시켜서 만들어내기도 한다.(=도(001), 레(011), 미(100), 파(101)이렇게 기호(숫자)로 바꾸어서 인공지능에 넣기도 하고, 도레미파솔을 연주하는 피아노 소리 자체를 학습시키기도 한다)
목적에 따라, 생성방법에 따라 다양한 인공지능 모델들이 있고, 모두 사용해보지는 않았지만 앞으로 공부해보았고 사용해본 모델들을 하나씩 정리해볼까 한다.
개인적으로, 예술분야인만큼 아직은 타분야처럼 인공지능의 결과물이 사람과의 우열을 가리기 힘든 수준은 아니지만, 인공지능을 통해 이루고싶은 목표가 확실하고, 그 목적에 맞게 잘(골라서) 사용하면 예술창작 분야에 있어서 큰 도움이 될 수 있을 것 같다. 표현방법에 따라서는 그 자체로서도 큰 의미를 가지게 될 것 같다(창작과정을 시각화한다던지).
정리
주사위를 던져서 음악을 만들던게, 여기까지 왔다.
현재는 세부적인 목적과 방법에 따라 수많은 음악창작 인공지능 모델들이 있다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기