- 2019년 1월 31일 오후 3:28
- 조회수: 2310
REFERENCES
INFORMATION
- 2019년 2월 8일
- 오후 1시 30분 ~
- 고려대학교 신공학관 218호
TOPIC
OVERVIEW
발표자 후기
Audio generative model인 NSynth에 대하여 세미나를 진행했다. 구글 magenta 팀에서 발표한 'Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders'라는 제목의 논문에 대한 내용을 주로 다루었으며, 해당 논문을 이해하는데 필요한 WaveNet에 대한 기본적인 내용도 간단하게 리마인드 했다. WaveNet은 파형(waveform)을 생성하는 autoregressive generative model이다. 신호 데이터의 시간적, 순차적인 특성을 반영하기 위해 causal convolution을 사용했으며, long sequence를 반영하기 위해 dilated convolution을 여러 개 반복하여 모델을 구축했다. 하지만, WaveNet은 external conditioning 없이는 긴 오디오 신호를 학습하기 어렵다는 단점이 있다 (Text-to-Speech에서는 사전에 추출된 음성학적 요소를 condition으로 부여하여 이 단점을 극복했다). NSynth의 목적은 오디오에 내재되어 있는 패턴을 오토인코더 구조로 학습하고, 이를 기반으로한 conditioning을 통해 외부에서 추가적인 정보의 사용 없이도 새로운 오디오를 생성하는 것이다. 모델 학습에 필요한 양질의 다양한 데이터셋을 다양한 악기로부터 직접 생성해서 공개하기도 했다. NSynth는 WaveNet과 오토인코더 2개 모델의 특징을 결합한 구조를 띄고 있다. Encoder에서는 데이터의 시간 속성을 반영한 temporal embedding을 학습하고, decoder의 각 레이어에서는 학습된 embedding으로부터 conditioning을 받는다. 저자가 공개한 코드를 살펴보면서 개인적으로 가장 난해했던 부분은 1x1 convolution을 통해 매 단계마다 차원을 맞춰주는 것이었다. 실험 결과로 나온 오디오 파일을 직접 들어보고, 개발된 모델이 실제 하드웨어로 만들어진 NSynth Super가 어떤 역할을 하는지에 대한 것도 같이 공유하는 시간을 가졌다. 추가적으로 음악 도메인에서 진행된 최근 연구인 'Enabling Factorized Piano Music Modeling and Generation with the MAESTRO Dataset'과 'A Universal Music Translation Network'에 대한 간단한 소개도 하였다. 논문을 읽으면서 해당 도메인에서 생소하고 흥미로운 부분이 많아 세미나 시간에 전반적으로 소개를 했지만, 개인적으로는 시간 속성을 가지고 있는 시그널 데이터 연구에 초점을 맞추고 있는 만큼, 다양한 관련 아키텍쳐의 특징에 대해서 살펴볼 예정이다.
청취자 후기
오늘 전체세미나는 ‘Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders’라는 논문을 소개하는 자리로 민구형이 진행하였다. 음악 데이터 분포를 학습하여 새로운 음악을 생성하는 데 적합한 Autoencoder 구조를 디자인한 것이 WaveNet이다. 본질적으로 비지도학습 기반 생성모델은 데이터 내 핵심적인 특징 분포를 잘 학습하여 그와 유사한 데이터를 생성할 때, 그 응용이 어떻게 이루어 질 수 있는지 궁금했다. 발표자는 WaveNet을 시그널 데이터 분석에 적용할 계획이라고 말했다. 오디오를 특정짓는 변수는 음 높이, 음색, 파형 등 다양한데 이 부분을 시그널 종류로 모델링하고, 특징적인 분포를 학습하는 WaveNet구조를 사용한다면 재구축 기반 예측문제에도 효과적으로 적용할 수 있을 것으로 생각한다.
본 세미나에서는 Sound generation을 위한 WaveNet-style autoencoder 모델에 대해 다뤘다. 하나의 음은 여러 개의 주파수를 가지고 있기 때문에 Sound generation을 위해서는 음 (또는 악기)의 특징을 추출하는 것이 중요하다. 또한, 시간적인 특징을 가지고 있다는 것을 동시에 고려해야한다. 개인적으로 AutoEncoder와 같은 형태의 모델에서 무엇보다 가장 중요한 것은 데이터에서 중요한 특징을 “잘” 추출하는 것이라 생각한다. 잘 추출만 할 수 있다면 다시 만드는 것은 상대적으로 쉽기 때문이다. 따라서 본 세미나에서 다룬 모델에서 가장 중요한 부분은 길이가 길고, 주파수 대역이 다른 하나의 음에서 주요한 특징을 어떻게 추출할 수 했는지 생각한다. Convolution AutoEncoder의 형태를 차용하였지만 각 Time step에서 1X1 embedding layer를 사용하여 RNN 모델의 Attention과 유사한 효과를 냄과 동시에 주요한 특징을 추출할 수 있다는 것이 중요한 contribution이라 생각된다. 위 부분은 이미지 압축 및 사운드 압축과 같이 다양한 분야에서 차용하여 사용할 수 있을 것이라 생각한다.
금일 세미나는 구글 마젠타팀에서 발표한 Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders 논문에 관한 내용이었다. 나에게 신시사이저는 가수 조용필이 한국에서 처음 쓰기 시작한 악기로 한국 대중음악의 판을 뒤집어 놓았다고 할 수 있는 악기로만 알고 있었다. 그렇게만 인식하고 있었는데, 해당 악기가 연구의 결과물로 나오는 것이 매우 인상적이었다. 신시사이저는 악기의 소리를 섞어서, 감각적인 소리를 만들어낼 때 사용하는 악기이다. 구글 마젠타팀에서 만든 신시사이저는 각각의 악기 별 특징을 잘 반영하여, 원하는 악기의 조합의 소리를 Generative해준다고 할 수 있다. 우리가 듣는 음파(소리)는 일종의 Sequence라 할 수 있다. 해당 음파는 앞의 음이 어떤 것인지에 따라 현 시점의 음을 만들어 낸다고 할 수 있다. 즉 종속성이 존재한다고 할 수 있다. 종속성을 반영할 때, 해당 논문 이전 시점에서는 WaveNet을 이용하였지만 해당 논문에서는 WaveNet의 Decoder만 이용하고 Encoder부분은 과거와 다르게 셋팅을 하였다. WaveNet에서 사용하는 Dilated Conv를 사용하지 않고, 오로지 Conv와 Avg Pooling만을 사용해서 Input Sequence를 Embedding한다. NLP분야에서 쓰이는 Attention과 유사한 느낌이었다. 실험의 결과를 그래프를 통해서도 보았지만, 실질적으로 합성된 소리를 들었을 때, 플루트와 오르간의 특징이 잘 섞인 느낌이었다.
해당 세미나에서 인상적이었던 부분은 발표자가 준비해준 그림이었다. 그림들에서 이해가 하기 쉬웠고, 소리를 통해 해당 알고리즘의 성능을 직접 느낄 수 있어서 좋았다. 요즘 종속성을 반영하는 모델에 많은 관심을 가지고 있는데, Encoder부분에 집중해서 반영을 해 보아야 겠다는 생각을 했다. 연구실에서 진행하지 않는 오디오에 대한 논문을 분석해주는 민구형에게 감사를 표한다. 자주 접할 수 없는 또 다른 분야에 대해 알 수 있는 유익한 시간이었다.
오늘의 세미나 주제는 WaveNet Autoencoders를 사용한 Neural Audio Synthesis of Musical Notes에 대한 발표가 이뤄졌다. WaveNet은 Audio의 autoregressive한 특징을 Convolution layer의 변형을 통해 학습하여 audio를 생성하는 모델이다. 이를 구현하기위해 Dilated Causal Convolution이 사용되며 audio를 regression이 아닌 quantization을 통해 256개의 classification문제로 변환하여 사용되었다. Quantization 아이디어는 프로젝트로 진행되는 regression관련 문제에 적용되면 좋을 것이라 생각된다. 센서데이터로 생각해보면 어떤 센서의 값이 엔지니어는 어떤 값 내에 존재하길 바란다. 그 범위를 quantization하고 그 외의 바라지 않은 이상 값은 나머지 한 class로 보내서 classification으로 변경하여 문제를 푸는 이 아이디어를 추후 프로젝트에서 적합한 상황에 적용해보면 좋겠다고 생각했다. NSynth는 WaveNet을 사용한 autoencoder구조이다. Encoder는 WaveNet을 그대로 사용하지 않고 변경하였다. Causal로 과거 시점의 데이터만 학습하는 구조를 띌 필요없이 전체를 다 보는 점이 변경되었는대 이후 결과에 보면 CAE를 baseline으로 정량적 평가를 냈다. 내 생각에는 WaveNet로 encoder, decoder를 만든 것도 함께 비교해야 맞지 않을까 생각이 들긴했지만 이미 publish된 논문이기에 이렇게 baseline을 기본으로 두어도 다른 contribution이 충분하다면 괜찮은거구나 싶었다. 유익한 시간을 위해 설연휴인대 고생했을 민구오빠에게 감사를 표한다.
오늘 세미나에서는 NSynth라고 하는 음향 생성 딥러닝 모델에 대한 소개를 들을 수 있었다. 최근 전자음향장비를 사용한 음악 작업이 대중화됨에 따라서 새로운 음향을 만들어내고자 하는 니즈들이 많이 생기고 있다. 가장 쉽게 생각할 수 있는 방법이 둘 이상의 악기 소리를 합쳐서 새로운 소리를 만드는 것이다. 예를 들면 플루트 소리와 오르간 소리를 합쳐서 기존에는 없던 새로운 음향을 만들 수 있다. 이러한 새로운 음향은 사람들에게 새로운 소리 경험을 제시하는 음악들을 제작하는 기초 재료가 된다. 그런데 단순하게 악기 소리를 합쳐서 듣기 좋은 소리를 만들기는 쉽지 않다. 우리가 들었을 때는 새로운 소리라기 보다는 두 개의 악기 소리가 중첩된 것이 뚜렷하게 구분되버리기 때문이다. 이 문제를 해결하기 위해서 구글의 연구자들은 소리 데이터를 이용해 Autoencoder를 학습하고 Embedded Feature들을 추출한 다음에 이 Embedding Space에서 두 악기 소리를 융합하는 연구를 진행했다. 이렇게 하면 단순히 두 개의 악기가 동시에 연주하는 소리가 아니라 두 악기 소리의 특징들이 절묘하게 조합된 새로운 소리가 나게 된다. 이 방법은 사람의 말소리를 생성하는 WaveNet과 비슷한데 기존과 달리 Embedding Feature를 찾아야 하기 때문에 Autoencoder 구조를 사용했다. 흥미로운 점은 Embedding Space에서 융합된 소리가 좀 더 잘 섞인 새로운 소리라는 느낌을 주는 것이었다. 발표자가 이야기했듯이 소리와 같이 시그널 형태를 가진 다양한 데이터 문제 해결에 접목해보면 좋을 것 같다.
오토인코더 형태의 알고리즘을 활용하여 악기소리를 생성하는 최근 방법론에 대한 발표였다. 음향과 관련된 주제를 접한 것은 이번이 처음이었는데 아날로그의 음향데이터를 디지털화하여 분류문제로 변형한 것이 흥미로웠고, 음향데이터 또한 저차원으로 임베딩하는것이 가능하다는 것을 확인할 수 있었다.
소리는 음파의 형태로 시간에 따라 일정하게 변화하는 양상을 띄고 이전 시점까지의 파형에 다음 시점의 파형이 영향을 받는 순차적 특성이 있다. NSynth 알고리즘은 그러한 특성을 반영하는 WaveNet을 디코더로 사용하고 임베딩한 인풋을 그것에 지속적으로 반영함으로써 악기소리를 생성한다. 재밌는 점은 두개의 다른 악기의 임베딩 결과를 이용하여 두 악기를 동시에 연주하는 음을 생성하는 것이 가능하다는 점이었다. 기존의 악기소리를 조합하여 새로운 소리를 생성해 낸다는 점에서 기존의 음악에 사용되는 음성합성 방법에 비해 신선한 느낌의 소리를 만들어 낼 수 있을 것 같다. 추가로 설명하신 논문에서 다양한 악기소리를 이용한 공용 인코더와 개별 디코더를 활용하여 한 악기의 소리를 다른 악기의 소리로 변화시키는 부분 또한 신선했다. 인코더에서는 다양한 소리를 같은 방식으로 임베딩하고, 악기에 따라 다르게 훈련된 디코더를 통해 소리를 생성하면 디코더를 훈련시킨 악기에 따라 생성된 소리의 종류가 달라진다고 한다. 이 아이디어를 통해 인코더와 디코더가 수행하는 역할에 대해 다시 한 번 깊게 생각해 보게 되었다. 이러한 오토인코더의 특성을 응용하여 예측모델에서 사용할 수 있을 지 생각해보려 한다. 테이블과 이미지 형태의 데이터를 주로 공부하였던 나의 시야를 넓히고, 이전에 공부한 툴들의 역할과 원리를 다시 생각해 보며 새로운 자극을 얻을 수 있는 시간이었다.
금일 민구오빠가 'Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders' 주제로 세미나를 진행해주셨다. 구글 magenta팀에서 제안한 Nsynth 알고리즘은 WaveNet기반으로 하고있다. 해당 알고리즘을 통해 synthesizer까지 제작하였는데, 해당 연구에 적절한 데이터를 활용하여 아주 흥미로운 결과를 보여준 연구라고 생각이 들었다. 먼저 지난 오빠의 세미나이자 Nsynth의 기반이 되는 WaveNet은 자기 자신을 condition으로 활용하는 autoregressive model로써 dilated casual convolution을 활용한 residual block를 사용하는 것이 핵심이다. 특히 dilated casual convolution접근을 통해 CNN에 시계열성 특징을 반영했다는 점이 기여점이라고 생각했다. Nsynth 또한 WaveNet과 같이 autoregressive model에서 영감을 받아 연구가 시작되었으며, WaveNet과 달리 인코더, 디코더 구조를 사용해 임베딩 값을 통해 external condition을 사용하지 않아도 long term dependency를 해소할 수 있다. 여기서 인코더 부분은 모든 음성에 대해 구성되어있지만 디코더 부분에는 condition을 주어 각 음성군에 따라 구분될 수 있도록 설계되었다.Image data synthesis에 대한 연구는 쉽게 주변에서 접해볼 수 있었던 반면, 음성데이터를 synthesis하고자 하는 연구에 대해서는 접해볼 기회가 흔치 않았는데, 금일 세미나를 통해 음성 데이터 도메인에서 활용되는 용어와 visualization에 대해 알아볼 수 있어 유익했고, 음성데이터를 우리 연구실에서 다양하게 다루어지는 시그널 데이터로 이해해보면 새롭게 접목켜볼 수 있는 주제라고 생각했다. 아직까지는 음성데이터의 연산량과 크기로 인해 연구하는데에는 어려움이 있지만, 이런 핸들링 과정에서 발생하는 문제들이 점차 발전하게되면 인공지능 분야에서 음성데이터에 대한 연구가 더욱 활발히 진행될 것이라 기대한다. 다시 한 번 새로운 연구주제를 소개해준 민구오빠에게 감사하다.
세미나는 ‘Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders’을 주제로 진행되었다. Neural Synthesizer(이하 Nsynth)의 구조를 이해하기 위해서는 먼저 WaveNet model에 대한 이해가 필요하다. 사운드를 generate 하기 위해서는 이전 데이터의 영향을 항상 고려해야 한다. WaveNet Model은 T 시점에 어떤 사운드가 발생할 확률은 T 이전 시점의 조건부 확률로 계산하며 이를 Convolution layer으로 쌓아 구축한 Autoregressive model이다. WaveNet에서 이미지나 텍스트 데이터를 분석하기 위한 convolution layer 구조와 다른 점은 Dilated Causal Convolution을 사용하는 점이였는데, 인접한 데이터가 아니라 한 칸씩 떨어진 데이터들을 Pooling함으로써 적은 계산량으로도 큰 receptive field를 얻기 위함이였다. 그리고 Wavenet에서는 Multi class output을 얻기 위해 softmax를 사용하는데, continuous한 output을 얻는 것보다 좋은 성능을 보인다는 점이 흥미로웠다.
Nsynth의 아키텍쳐는 사운드 데이터를 input으로 받아 Convolution layer들로 이루어진 Encoder을 통해 학습을 시켜 Latent Matrix Z를 계산하고, 이를 Decoder을 통해 Next Step의 사운드를 예측할 수 있도록 구성한다. 이 때 Encoder와 Decoder의 구성은 WaveNet과 유사한 형태로 구성한다. Google에서 제공하고 있는 Original data와 Generated data의 사운드를 비교해봤을 때 Nsynth model은 low note에서는 유사성이 떨어지지만 플룻 같은 high note 사운드에 대해서는 매우 유사한 사운드를 생성해냈다. 그리고 데이터를 interpolate embedding하여 두 악기의 소리를 합친 사운드를 생성해낼 수 있다는 점과 pitch와 quality 측면에서 분류 정확도가 baseline model보다 높다는 점에서 연구가치가 있는 모델이였다. 이 연구 뿐만 아니라 Google과 Facebook에서 연구 중인 다른 연구들에 대해서도 간략한 설명을 들었는데, Deepfake와 유사하게 특정 악기의 연주를 다른 악기의 소리를 입혀 사운드를 생성해내는 페이스북의 연구가 흥미로웠다.
모델이 원 데이터와 어느 정도 유사한 사운드를 생성해내는 것을 보면서 놀라움을 느꼈다. 그리고 이런 분야를 연구하기 위해 많은 투자를 하고 있는 google과 facebook이 대단한 기업이라는 것 또한 새삼 다시 한번 느꼈다. 하지만 output의 한계 역시 명확해보였는데, 아직 이미지나 텍스트 분야만큼 연구가 진전되어 있지 않기도 하고 그만큼 사운드 데이터가 사이즈도 크고 분석하기 얼마나 어려운지 알 수 있었다. 실제로 작곡을 하는 AI가 나오고 정말 사람과 유사한 챗봇이 등장하기 까지는 많은 연구가 필요할 것이라는 생각이 들었다. 사운드 데이터관련 연구는 이미지나 텍스트 데이터처럼 주변에서 연구하고 있는 사람이 많지 않아 접할 기회가 많지 않았는데 이번 세미나를 통해 사운드 관련 연구가 어떤 식으로 진행되고 있는지 알 수 있어서 좋았다. 좋은 세미나를 해준 민구형께 감사드린다.
이번주 세미나는 민구가 “Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders”이라는 주제에 대해서 진행하였다. 이번 세미나는 작년 10월 8일 민구가 진행하였던 “WaveNet: A Generative Model for Raw Audio”라는 주제의 연장선에 있었다. 세미나 진행에 앞서 Google Creative Lab.에서 개발한 NSynth Super를 동영상으로 소개해주어 뒤에 나오는 알고리즘에 대한 이해를 도왔다. Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders이라는 논문에서는 알고리즘적인 접근법도 제시를 하였지만, Dataset을 직접 만든 것도 논문의 기여점이라고 할 수 있다. 실제로 어떤 악기에 대해서 정확하고 맑은 소리를 얻기 힘들다. 따라서 논문의 저자들은 좋은 아웃풋을 내기 위해 Bass, Brass, Flute, Guitar, Keyboard, Mallet, Organ 등에 대해 직접 녹음하여 Dataset를 구축하였다. 이러한 data로 WaveNet Autoencoder를 학습한 결과 악기와 굉장히 비슷한 소리를 구현하는 것을 확인할 수 있었다. 오늘 흥미로운 주제로 열심히 세미나를 준비해준 민구에게 고맙다는 말을 전하고 싶다.
금일 세미나에서는 Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders를 주제로 진행되었다. 음악 음표를 가장 그럴 듯 하게 생성하는 것을 목표로 하는데 이를 위해 오디오 신호 데이터의 순차적 특성을 반영한다. 이를 위해 causal convolution과 dilated convolution을 사용하여 모델을 구축했고 핵심적으로 상대적으로 긴 시그널 데이터 패턴을 학습시키려고 시도했다. 한 음표마다 가지고 있는 특성을 반영하기 위해서인지 일반적인 모델과 다르게 매 단계마다 차원을 맞춰줘야 한다는 점이 특징적이었다. 차원을 맞추는 것에 대한 정보가 모델에 보다 더 가미되어 있다면 보다 AI에 걸맞는 모델이 될 것이라는 생각이 들었다.
금일 세미나는 Neural audio synthesis of musical notes with Wavenet Autoencoder 를 주제로 진행되었다. 소개된 논문은 2017 ICML 에 게재된 것으로 google brain & deepmind 에서 발표하였다. 본 논문은 결론적으로 Nsynth super 라는 신디사이져 같은 기계에 다양한 악기의 소리를 학습시켜 새로운 소리를 만들수 있다는 것을 보여주는데 목표가 있다고 할 수 있다. 소리를 이용하는 기존의 연구들에서 보면 그럴싸한 소리를 만들어 내는 것이 상당히 어렵다고 알려져 있다. 시그널이 조금만 틀어져도 노이즈로 인하여 정상적인 소리를 만들수가 없기 때문이다. 소리를 이용한 기존 연구 방법인 wavenet 을 변형하여 이 논문에서는 의미있는 결과를 얻을 수 있었다고 한다. Temporal encoder 를 이용하여 고차원의 데이터를 embedding layer 로 변환하고 이와 pitch 를 합하여 wavenet decoder 에 넣어 소리를 복원하게 되는데 pitch 의 정보에 따라 소리의 특성이 달라지므로 사용자가 의도한 형태의 소리를 얻을 수 있게 된다. 그동안 이미지쪽에서는 이러한 형태의 연구들을 많이 보았었다. 상대적으로 표현하기도 쉽고 성능 확인을 하는 부분에 있어서도 직관적으로 판단할 수가 있기 때문인 것 같다. 소리이기 때문에 논문에 결과를 표현하기에 상당히 어렵고 결국 시그널형태로 보여주어야 하는 한계가 있어 보인다. TTS 등 최근 많은 application 에서 음성분야 연구가 활발히 이루어지는 만큼 관심이 있었던 분야였는데 세미나를 통하여 최신의 좋은 연구 내용을 들을 수 있어 좋았다.
금일 세미나는 Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders를 주제로 민구형이 발표하였다. WaveNet은 지난번 민구형이 세미나 준비를 했을 때 배웠던 개념이다. Autoregressive model로 audio 스스로의 분포를 학습하는 unsupervised learning이며 1시점부터 t-1시점까지의 데이터를 조건부 확률로 표현할 수 있다. WaveNet은 convolutional layer를 쌓는 구조로 되어 있으며 기존의 convolution 방식과 달리 3*3 filter를 통해 5*5 convolution을 사이의 한 칸을 띄어서 시간을 적게 하고 많은 정보를 유지한다. 이것을 Dilated Causal convolution이라고 한다. NSynth는 data를 image화 시켜서 다양한 정보를 제공하는 방식으로 dataset을 만들었다. NSynth는 WaveNet과 SampleRNN과 같은 autoregressive model의 영감을 받으며 Autoencoder 구조를 사용해서 external condition에 영향을 받지 않도록 한다. 여기에서는 Temporal Encoder 부분과 WaveNet Decoder로 나뉜다. Temporal Encoder에서는 latent variable 학습을 위해 casual convolution을 사용하지 않는다. WaveNet Decoder 부분은 block과 같은 구조로 띄고 있고 이를 매 시점마다 반복한다. 실험의 결과를 보았을 때 매우 흥미있는 작업이었다. 다른 악기의 소기를 동시에 낼 수 있도록 학습이 되지만 아직은 미흡한 부분이 있었다. 음악 소리 또한 시그널 데이터 형태로 띄고 있으며 최근 음악 분야에 AI접목이 증가하고 있다. 매우 흥미있는 주제였고 기회가 된다면 연구해보고 싶은 분야 중 하나이다. 오늘 좋은 발표를 해준 민구형에게 고마움을 전한다.
오늘 세미나 주제는 'Neural Audio Synthesis of Musical Notes'이라는 주제로 진행되었다. 이 주제는 Wavenet & SampleRnn과 같은 autoregressive models에서 영감을 받아 개발 되었다고 한다. 나에게는 Wavenet이라는 단어도 생소하였기 때문에 Wavenet부터 찾아보게 되었다. Wavenet은 Google Assistant의 중요한 기술 알고리즘이다. Wavenet은 음성 데이터 분포를 학습할 수 있는 네트워크 구조이다. 그리고 Output값이 Input값으로 다시 들어가서 학습을 한다는 것이 나에게는 생소하였다. 아직 알고리즘에 대해 완벽히 이해하기는 힘들었다. 다음 세미나때는 조금 더 이해할수 있도록 공부를 해야겠다.
오늘 세미나에서는 ‘Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders’ 이라는 논문을 다루었다. 이 논문에서 소개되는 NSynth는 단순히 음악을 생성하는 모델이 아닌, 악기 소리를 학습하여 기존의 악기와 매우 유사한 소리를 낼 수 있음과 동시에 그 소리들을 혼합하여 존재하지 않는 완전히 새로운 악기 소리까지 학습할 수 있는 모델이다. 2016년도에 소개된 WaveNet 모델 구조를 발전시켜 input으로 주어지는 소리의 latent embedding을 학습하고, 다시 input을 재구축하는 autoregressive encoder-decoder 형태를 갖고 있다. 모델의 디자인과 학습과정에서 많은 테크닉들이 가미된 것을 확인할 수 있는데, 기존에 알지 못했던 것들이 많아 개인 연구 시 모델 디자인에 활용해볼 계획이다. 한 가지 아쉬운 점은 WaveNet 모델 구조에 대한 설명이 다소 부족하여 모르는 사람들에겐 조금 어렵게 느껴질 수 있었을 것 같다. 물론 논문 세미나에 참석하는 입장에서는 당연히 발표자가 사전에 공지해준 논문을 가볍게라도 읽어보고, 논문이 어렵다면 관련 자료를 찾아보는 정도의 성의는 보여야 한다고 생각한다. 그렇지만 연구실의 특성상 서로 상이한 연구를 하는 사람들이 많다보니, 동일한 수준의 이해를 하기엔 쉽지 않은 것도 사실이다. 발표자도 청취자의 수준을 고려하여 조금 더 자세한 설명을 제공해도 좋을 것 같다.
금일 세미나는 neural audio synthesis of musical notes with wavenet autoencoders 논문을 중심으로 진행되었다. 소개된 논문의 contribution은 크게 두 가지로 NSynth라는 악기의 소리를 학습하여 기존 악기와 유사한 소리를 생성해 낼 수 있는 generative model을 제안한 것과, 악기 소리 데이터에 대한 benchmark dataset을 제안했다는 데 있다고 한다. 대부분의 neural network를 검증하기 위한 benchmark dataset으로는 MNIST, CIFAR10을 비롯한 이미지 데이터셋인데, 소리/음악에 대한 적당한 benchmark dataset이 없었기 때문이라고 한다. 기계학습을 음성/음악 생성 자체가 중요한 분야인 것은 맞으나, 개인적으로 크게 흥미가 있는 분야는 아니었기 때문에, 결과보다는 WaveNet, NSynth 모델에 사용된 여러 테크닉에 더 관심이 갔다. 특히 causal convolution 연산과 universal encoder-domain specific decoder는 잘 알아두면 도움이 될 것 같다.
금일 세미나는 Neural Synthesize을 주제로 진행되었다. Neural Synthesize(=NSynth)는 소리의 특징을 학습해 소리를 다시 Generate하는 Model이다. 해당 세미나는 먼저 WaveNet과 NSynth Dataset에 대한 설명이 진행된 이후 NSynth Model에 대한 설명이 이어졌고, 마지막으로 해당 알고리즘을 활용해 최근에 발표 된 다른 Research에 대한 소개가 있었다. WaveNet에서는 Autoregressive Model과 Dilated Causal Convolution에 대한 설명을 들을 수 있었다. Autoregressive Model은 해당 시점 직전까지의 data로 해당 시점을 표현하는 Model이고, Dilated Causal Convolution은 미래의 시점을 알 수 없으므로 t 시점 이후 값은 사용 못하는 Causal Convolution과 Stride를 크게 둬서 적은 계산량으로도 큰 receptive field를 얻을 수 있는 Dilated가 결합된 것이다. NSynth는 Temporal Encoder와 WaveNet Decoder를 인코더-디코더 구조로 활용한 알고리즘으로, Temporal Encoder에서는 casual convolution을 활용하지 않고 1x1 Conv와 Avg Pooling을 통해 Decoder의 Input(Z)을 생성한다. 이 후 WaveNet Decoder는 생성된 Input을 받아 매 시점마다 Decoder block을 통해 Output을 생성하고 이를 Relu 함수와 Softmax를 활용하여 최종 결과물을 산출하게 된다. 마지막으로 1)Reconstruction 측면과 2)Embedding 측면에서 타 알고리즘보다 성능이 좋아짐을 볼 수 있었다. 음성 시그널에 관련해 최근 알고리즘을 소개해 준 민구에게 감사함을 표한다.
금일 세미나는 음악을 생성하는 Generative Model에 대한 소개였다. 지난 번 세미나는 음성을 생성하는WaveNet에 대한 설명이었다면 이를 확장하여 음악에 초점을 둔 연구 소개였다. 먼저 발표에 이해를 돕기 위해 WaveNet에 대한 리뷰가 먼저 진행되고, 음악을 생성하는 NSynth모델에 대한 추가적인 요소들 설명이 이뤄졌다. NSynth모델의 큰 구조는 Temporal Encoder와 WaveNet Decode로 구성되어 있다. 모델에 대한 자세한 이해는 어려웠지만, Embedding Space에서 여러 악기의 소리를 융합해 낼 수 있는 특성을 나타내었다. 최근 들어 연구들이 전문화 되어가고 있어, 연구들의 핵심들을 이해하는 것 들이 전에 비해 쉽지 않은 것 같다. 계속적으로 최신 동향을 따라가기 위해 좀 더 분발 할 필요가 있다고 느꼈다.
금일 세미나에서는 Neural Audio Synthesis of Musical Notes with WaveNet Autoencoders를 주제로 소리의 특징을 학습하고 이로부터 새로운 소리를 생성할 수 있는 generative model을 다뤘다. 소리는 시간적 요소가 포함된 시그널 데이터 이다. 기존의 연구에서는 데이터의 시간적 요소를 모델링 하기 위해 RNN을 사용하는 반면 오늘 소개한 Nsynth는 dilated convolutional 레이어를 사용한 WaveNet을 기본 구조로 사용한다. 모델은 입력된 소리로부터 특징을 추출하는 encoder와, 소리를 생성할 수 있도록 decoder 레이어를 구조로 구성되어 있다. 이때 decoder는 한 시점 마다 순차적으로 소리를 생성할 수 있도록 현재시점까지의 소리 시그널로부터 한 시점 후의 소리를 예측하는 구조로 되어있다. 이러한 encoder-decoder 구조는 sequence to sequence 모델과 상당히 유사하다. 또한 WaveNet 구조 역시 RNN을 이용하지 않는 sequence learning 모델로 요즘의 연구 트렌드를 반영하고 있다. 전체적인 모델의 구조와 각 레이어가 적용된 나름의 이유가 있었을 것 같은데 이 부분에 대해서 보다 깊게 다뤘으면 더 흥미로운 세미나가 되었을 것 같다.
금일세미나는 NSynth 라는 음악시그널 생성모델에 대해 소개했다. 기존의 WaveNet의 한계점을 극복하고자 Autoencoder 구조를 차용했다. 우선 Temporal encoder를 통해서 시간 순서에 따른 음향의 패턴을 학습하여 임베딩 값을 추출하였고, decoder에서는 기존의 WaveNet과 유사한 방식으로 임베딩 값을 복원하며 conditioning을 주는 구조를 취하였다. 그러한 구조를 갖게된 구체적인 사유를 듣기는 힘들겠지만 음악시그널 데이터에 최적화된 방식의 학습, 생성모델이라 추정한다. 유튜브 동영상을 통해 보여준 NSynth 시연 영상은 두 개 이상의 악기 소리의 특징을 추출하여 임베딩된 차원에서 합성하는 것이 그냥 소리를 합성하는 것과 상당히 차이가 있음을 보여주었다. 곽민구 연구원이 이러한 연구로부터 기법적 측면이나 활용 측면에서의 연구 아이디어를 살려볼 수 있기를 바란다.
이번 주제는 Neural Audio Synthesis와 WaveNet으로 인공신경망을 소리에 적용시킨 연구이다. Computer Vision 처럼 소리에 인공신경망을 적용시켜 소리를 인코더로 압축한 다음 다른 소리와 섞거나, 다른 악기별 디코더를 통해 그 악기의 소리를 만들어 낼 수 있다. 구조에서 특이한 점은 Dilated Causal Convolution 이었다. 특히 Dilated convolution은 모든 픽셀을 계산하지 않고 일부만 계산하여 넓은 부분을 적은 계산량으로 큰 receptive field를 얻을 수 있다. 소리 데이터를 픽셀로 만들었을 때 대부분이 빈 공간이기 때문에 이러한 방법을 사용한 것 같다. 또한 소리에 대한 연구 활성화를 위해 정형화된 데이터셋(NSynth Dataset)을 만들었다. 다른 분야에 비해 아직은 많은 연구가 진행되고 있지 않지만 CIFAR-10 처럼 연구에 대한 검증할 수 있는 데이터를 만든 것이다. 다만 뒤에 나온 결과를 보면 많은 컴퓨팅 파워가 필요한 것 같다. 소리에 관한 연구는 흔하지 않아서 새로웠고, 정말 뭐든 데이터만 있다면 새로운 가치를 만들어 낼 수 있어서 놀라웠다. 발표자분이 시그널 데이터에 대한 부분을 연구하다가 이러한 것들을 찾아보게 되었다고 하셨는데 아마 이런 쪽의 지식이 더 있었다면 결과로 나온 시청각 자료에 더 깊은 인상을 받았을 것 같다. 결과만 들어보았을 때는 비슷한 것들도 있었고 조금 어색한 소리도 있었다. 아직은 완벽하지 않은 결과들이지만, 점점 더 발전한다면 더 자유롭게 다양한 소리를 이용할 수 있을 것 같다.