Amazon Web Services 한국 블로그
AWS DeepComposer – 누구나 음악 작곡이 가능한 기계 학습 서비스
인공 지능의 주요 분야인 기계 학습 (Machine Learning)에는 수학, 컴퓨터 과학, 프로그램 코드 및 대용량 컴퓨팅 인프라가 필요합니다. 인공 지능을 통한 스마트 서비스를 개발하려는 개발자에게 어렵고 압도적일 수 있습니다.
AWS는 그동안 모든 개발자들이 실용적인 기계 학습 기술에 대해 배우고 즐겁게 할 수 있도록 인공 지능 기반 학습 디바이스를 몇 가지 소개했습니다. AWS re : Invent 2017에서는 개발자가 컴퓨터 비전을 위한 ML에 대해 배울 수 있도록 세계 최초의 딥 러닝 지원 카메라 인 AWS DeepLens를 소개했습니다. 작년에 우리는 강화 학습에 의해 구동되는 완전 자율 1/18 스케일 경주 용 자동차 인 AWS DeepRacer를 시작했습니다. AWS DeepComposer 출시
AWS DeepComposer는 개발자가 사전에 훈련 된 인공 지능 모델 또는 자신의 모델로 일반적인 기계 학습을 통해 음악을 작곡할 수 있도록 도와주는 32개 키가 있는 2 옥타브 음악 건반입니다. 이 건반은 현재 아마존에서 99달러에 선주문을 받고 있으며, AWS 콘솔에서 가상 음악 키보드를 사용할 수도 있습니다.
활용 방법은 다음과 같이 간단합니다.
- DeepComposer 콘솔에 로그인합니다.
- 짧은 음악 곡을 녹음하거나 미리 녹음 된 곡을 사용합니다.
- 선호하는 장르에 대해 미리 훈련되거나 자신 만의 고유한 기계 학습 모델을 선택하십시오.
- 각 모델을 사용하여 새로운 악기 구성을 생성하십시오.
- 콘솔에서 작곡한 곡을 직접 실행해 보십시오.
- 컴포지션을 내보내거나 SoundCloud에서 공유합니다.
이 글에서 미리 훈련 된 모델로 첫 번째 작곡 결과물을 빠르게 생성하는 방법을 보여 드리겠습니다. 여러분의 모델 훈련 방법, Generative Adversarial Networks (GAN)를 지원하는 기본 기술 활용 방법을 안내하겠습니다.
사전 훈련 된 모델 사용하기
콘솔을 열면 Music Studio로 이동하여 미리 녹음 된 곡을 선택하거나 직접 녹음 할 수 있습니다. 베토벤의“Ode to Joy”를 선택합니다.
<MP3 플레이어로 재생할 수 있습니다.>
클래식, 재즈, 록 또는 팝과 같이 사용하려는 사전 훈련 된 모델을 선택합니다. 이 모델들은 각각의 장르에 대한 대규모 음악 데이터 세트에 대해 훈련을 받았으며 직접 사용할 수 있습니다. ‘메탈’이 없으면 ‘락’ 장르를 선택하고 작곡 결과물을 생성합니다.
몇 초 후, 모델에 의해 생성 된 추가 반주를 볼 수 있습니다. 드럼, 오버 드라이브 기타, 일렉트릭 기타 (클린) 및 일렉트릭베이스 (핑거)와 같은 다른 악기를 지정합니다.
여기 결과물을 한번 들어보세요.
<MP3 플레이어로 재생할 수 있습니다.>
마지막으로 컴포지션을 MIDI 또는 MP3 파일로 내 보내서 SoundCloud 계정에서 공유 할 수 있습니다. 명성이 기다리고 있습니다!
자신의 모델 훈련하기
여러분이 좋아하는 장르의 데이터 세트에서 내 모델을 학습시킬 수도 있습니다. 선택 사항은 다음과 같습니다.
- Generator 및 Discriminator의 아키텍처 매개 변수 (다음 섹션의 내용 참조)
- 알고리즘 출력과 예상 값의 차이를 측정하기 위해 훈련 중에 사용되는 손실 함수
- 하이퍼 파라미터 값
- 모델을 훈련하는 동안 들을 수 있는 검증 샘플 갯수
훈련 과정에서 품질 측정 항목을 볼 수 있으며 위에서 선택한 유효성 검사 샘플을 들을 수 있습니다. 모델이 완전히 훈련되면 사전 훈련 된 모델과 마찬가지로 음악 결과물 생성하는 데 사용할 수 있습니다.
Generative Adversarial Networks(GAN) 모델 사용
GAN은 2014년 발간된 Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville 및 Yoshua Bengio의“Generative Adversarial Networks”를 논문을 기반하고 있습니다.
간단히 요약하면:
GAN 모델은 높은 품질을 만들어 내려는 두 가지 즉, 가짜를 만들어내는 Generator와, 이를 평가하는 Discriminator이 있어서 서로 대립(Adversarial)하며 서로의 성능을 점차 개선해 나가자는 것이 주요 개념입니다. 예를 들면, 지폐위조범(Generator)은 경찰을 최대한 열심히 속이려고 하고 다른 한편에서는 경찰(Discriminator)이 이렇게 위조된 지폐를 진짜와 감별하려고(Classify) 노력합니다. 이런 경쟁 속에서 두 그룹 모두 속이고 구별하는 서로의 능력이 발전하게 되고 결과적으로는 진짜 지폐와 위조 지폐를 구별할 수 없을 정도(구별할 확률 pd=0.5)에 이른다는 것입니다.
기계 학습 기법으로 좀 더 설명을 하면:
- 생성기(Generator)는 데이터 세트에 액세스 할 수 없습니다. 랜덤 데이터를 사용하여, 기 모델을 통해 전달되는 샘플을 작성합니다.
- 판별기(Discriminator )는 이진 분류 모델로, 생성기가 만든 가짜 샘플에서 실제 데이터 샘플 (훈련 세트에 포함)을 인식하는 방법을 학습합니다. 훈련 과정은 경사 하강, 역 전파 등과 같은 전통적인 기술을 사용합니다.
- 판별기가 학습함에 따라 가중치가 업데이트됩니다.
- 생성기에 동일한 업데이트가 적용됩니다. 이것이 GAN을 이해하는 열쇠입니다. 이러한 업데이트를 적용하여 생성기는 판별자가 정품으로 간주하는 샘플에 더 가깝고 더 가까운 샘플을 생성하는 방법을 점진적으로 배웁니다.
이를 통해 좀 더 훌륭한 음악을 만들어 낼 수 있는 모델을 개발할 수 있습니다. 자세한 내용이 궁금하다면, Apache MXNet GAN을 사용하여 MNIST 샘플을 생성하는 방법을 설명하는 게시물을 참조하십시오.
앞으로 아이들도 작곡을 손쉽게 하여, 음악과 친밀해 질 수 있게 있고 즐길 수 있다면 좋겠습니다.
미리보기 출시
AWS DeepComposer는 미리보기로 사용 가능합니다. 등록 후, 음악 키보드가 출시되면 알려드립니다.