제퍼넷 로고

AWS DeepComposer에서 AR-CNN 알고리즘을 사용하여 Bach 스타일로 컴포지션 생성

시간

AWS 딥컴포저 머신 러닝 (ML) 및 생성 AI 기술을 시작하는 창의적인 방법을 제공합니다. AWS DeepComposer는 최근에 새로운 생성 AI 알고리즘을 시작했습니다. 자기 회귀 컨볼 루션 신경망 (AR-CNN)Bach 스타일로 음악을 생성 할 수 있습니다. 이 블로그 게시물에서는 AR-CNN 알고리즘을 사용하여 Bach 스타일로 흥미로운 컴포지션을 생성하고 알고리즘의 매개 변수가 생성 된 컴포지션의 특성에 미치는 영향을 설명하는 몇 가지 예를 보여줍니다.

AWS DeepComposer 콘솔에서 제공되는 AR-CNN 알고리즘은 다음과 같은 고유 한 구성을 생성하기위한 다양한 파라미터를 제공합니다. 반복 횟수입력 멜로디에 추가하거나 제거 할 최대 음표 수 독특한 구성을 생성합니다. 파라미터 값은 입력 멜로디를 수정하는 범위에 직접 영향을줍니다. 예를 들어 추가 할 최대 메모 수 높은 값으로 설정하면 알고리즘이 바흐 음악 스타일의 작곡에 적합하다고 예측하는 메모를 추가 할 수 있습니다.

AR-CNN 알고리즘을 사용하면 매개 변수를 실험하여 기계 학습 알고리즘과 반복적으로 협업 할 수 있습니다. AR-CNN 알고리즘의 한 반복에서 나온 출력을 다음 반복에 대한 입력으로 사용할 수 있습니다.

알고리즘 개념에 대한 자세한 내용은 자기 회귀 컨볼 루션 신경망 소개 AWS DeepComposer 콘솔에서 사용 가능한 학습 캡슐. 학습 캡슐은 생성 AI 알고리즘의 개념을 배우는 데 도움이되는 사용하기 쉬운 한입 크기의 모듈을 제공합니다.

바흐는 세계에서 가장 위대한 작곡가 중 하나로 널리 알려져 있습니다. 그의 작품은 바로크 시대의 최고를 대표합니다. 그의 Bach 작곡에서 몇 가지 예를 들어 그의 음악에 익숙해 지십시오.

구성 1 :

구성 2 :

구성 3 :

AR-CNN 알고리즘은 입력 멜로디에서 음표를 추가하거나 제거하여 원래 입력 멜로디를 향상시킵니다. 알고리즘이 오프 키 또는 외부 노트를 감지하면 해당 노트를 제거하도록 선택할 수 있습니다. Bach 컴포지션에서 가능성이 높은 특정 노트를 식별하면 해당 노트를 추가하도록 선택할 수 있습니다. AR-CNN 알고리즘을 적용하여 생성 된 향상된 컴포지션의 다음 예를 들어보십시오.

입력:

강화 된 구성 :

AR-CNN 알고리즘 매개 변수의 값을 변경하여 다른 특성을 가진 음악을 생성 할 수 있습니다.

AWS DeepComposer의 AR-CNN 파라미터

이전 섹션에서는 AR-CNN 알고리즘을 사용하여 바흐 음악 스타일로 만든 작곡의 예를 들었습니다. 다음 섹션에서는 AWS DeepComposer 콘솔에서 제공되는 알고리즘 파라미터가 생성 된 컴포지션에 어떤 영향을 미치는지 살펴 봅니다. 콘솔에서 다음 매개 변수를 사용할 수 있습니다. 샘플링 반복, 제거 또는 추가 할 최대 메모 수 및 창의적 위험.

샘플링 반복

이 파라미터는 음을 추가하거나 제거하기 위해 입력 멜로디가 알고리즘을 통과하는 횟수를 제어합니다. 샘플링 반복 파라미터가 증가함에 따라 모델은 입력 멜로디에서 음을 추가하거나 제거하여 컴포지션 사운드를보다 바흐처럼 만들 수 있습니다.

AWS DeepComposer 콘솔에서 Music Studio는 한 번의 실행으로 샘플링 반복 횟수가 100 회로 제한됩니다. 생성 된 음악을 알고리즘의 입력으로 다시 공급하여 샘플링 반복을 100 이상으로 늘리도록 선택할 수 있습니다. 다른 반복에서 다음 입력 멜로디 "Me and my jar"에 대해 생성 된 출력을 듣습니다.

나와 내 항아리 원래 입력 멜로디 :

반복 100에서 나와 내 jar 출력 :

반복 500에서 나와 내 jar 출력 :

특정 횟수의 샘플링 반복 후에는 더 많은 반복을 수행 한 후에도 생성 된 음악이 크게 변경되지 않음을 알 수 있습니다. 이 단계에서 모델은 입력 멜로디를 최대한 향상 시켰습니다. 추가 반복으로 인해 메모를 추가하고 즉시 제거하거나 그 반대로 할 수 있습니다. 따라서 생성 된 음악은이 단계 후에 더 많은 반복으로 변경되지 않습니다.

제거 할 최대 메모 수

이 매개 변수를 사용하면 알고리즘이 제거 할 수있는 원래 컴포지션의 최대 백분율을 지정할 수 있습니다. 이 숫자를 0 %로 설정하면 입력 멜로디가 완전히 유지됩니다. 이 숫자를 100 %로 설정하면 대부분의 원본 음표가 제거됩니다. 값이 100 % 인 경우에도 알고리즘은 바흐 음악의 품질 및 유사성에 따라 입력 멜로디의 일부를 유지하도록 선택할 수 있습니다. 다음과 같은 경우 "Me and My Jar"에 대해 생성 된 음악의 다음 예를 들어보십시오. 제거 할 최대 메모 매개 변수가 100 %로 설정되었습니다.

나와 내 항아리 원래 입력 멜로디 :

100 % 제거시 나와 저의 병 :

0 % 제거시 나와 저의 병 :

100 % 제거시 생성 된 컴포지션에서 원래 컴포지션을 감지하기가 어렵습니다. 0 %에서 알고리즘은 원래 입력 멜로디를 유지하지만 알고리즘은 음악을 향상시키는 능력이 제한됩니다. 예를 들어, 알고리즘은 입력 멜로디에서 오프 키 음을 제거 할 수 없습니다.

추가 할 최대 메모 수

이 파라미터는 알고리즘이 입력 멜로디에 추가 할 수있는 최대 음표 수를 지정합니다. 낮은 값을 설정하면 누락 된 메모가 채워집니다. 높은 값을 설정하면 입력 멜로디에 더 많은 음표가 추가됩니다. 알고리즘이 추가 할 수있는 노트 수를 제한하지 않으면 모델은 멜로디를 Bach 컴포지션에 최대한 가깝게 만들려고 시도합니다.

나와 내 항아리 원래 입력 멜로디 :

최대 350 노트에 나와 내 항아리 :

최대 50 노트에 나와 내 항아리 :

최대 350 개의 음표를 추가 할 때 더 이상 원본 사운드 트랙을들을 수없는 방법에 주목하십시오. 알고리즘이 추가 할 수있는 음표 수를 제한하여 새 음표를 추가하여 원래 입력 멜로디가 익사되는 것을 방지 할 수 있습니다. 단점은 알고리즘이 음악을 생성하는 능력이 제한되어 바람직하지 않은 결과를 초래할 수 있다는 것입니다. 추가 할 최대 50 개의 음표를 선택했을 때 추가 된 음표 수가 훨씬 적으므로 입력 멜로디를들을 수 있습니다. 그러나 알고리즘이 추가 할 수있는 음표 수가 제한되어 있기 때문에 음악 품질이 높지 않습니다.

최대 음표의 매개 변수를 사용하여 제거하거나 추가하여 원래 음악의 균형을 맞추고 음악을 생성하는 알고리즘의 자유를 허용하는 방법을 선택할 수 있습니다.

창조적 위험

이 매개 변수는 컴포지션의 깜짝 요소 또는 창의성 요소에 영향을줍니다. 이 값을 너무 낮게 설정하면 모델이 안전하고 확률이 높은 음표 만 선택하므로보다 예측 가능한 음악으로 이어집니다. 창의성이 매우 높으면 독창적이고 예측하기 어려운 구성이 될 수 있습니다. 그러나 모델에서 발생하기 어려운 음표를 선택하기 때문에 때때로 멜로디 품질이 떨어질 수 있습니다.

이 알고리즘은 다음에 추가 할 최상의 메모라고 생각되는 확률 분포에서 샘플링하여 메모를 식별합니다. 소재 위험 매개 변수를 사용하면 해당 확률 분포의 모양을 조정할 수 있습니다. 창의적 위험을 높이면 확률 분포가 평평 해집니다. 즉, 가능성이 적은 몇 가지 노트가 선택되어 컴포지션에 추가 될 확률이 이전보다 높아집니다. 창의적 위험을 줄이면 반대의 결과가 발생하므로 알고리즘이 정확한지에주의를 기울여야합니다. 이 매개 변수는 온도 기계 학습에서.

창의적 위험이 1000 인 1 회 반복 후 출력 :

창의적 위험이 1000 인 2 회 반복 후 출력 :

온도가 1000 인 6 회 반복 후 출력

창의적 위험 1은 일반적으로 기준입니다. 창의적 위험이 증가함에 따라 점점 더 많은 음이 흩어집니다. 이것들은 음악에 화려 함을 더할 수 있습니다. 그러나, 완전히 평평한 확률 분포가 무작위 선택과 다르지 않기 때문에 흩어진 음표는 결국 잡음으로 변합니다.

실험을 위해 몇 번의 반복으로 창의성 위험을 높이고 흩어진 음표를 생성 한 다음 새 음악을 생성 할 때 알고리즘에서 해당 음표를 사용하도록 창의성 위험을 낮출 수 있습니다.

결론

축하합니다! 이제 각 매개 변수가 컴포지션의 특성에 어떻게 영향을 미치는지 배웠습니다. 하이퍼 파라미터를 변경하는 것 외에도 다음 단계를 시도해보십시오.

  • 입력 멜로디를 변경하십시오. 가상 또는 물리적 AWS DeepComposer 키보드를 사용하여 자신의 입력 멜로디를 연주하십시오. 음악 전문가가 아닌 경우 걱정하지 마십시오. AR-CNN 알고리즘은 실수를 자동으로 수정합니다.
  • 입력 멜로디를 자르고 알고리즘이 누락 된 섹션을 채우는 방법을 확인하십시오.
  • 자동 회귀 컴포지션을 GAN에 공급하여 반주를 만듭니다.

창의적인 음악 작품을 만들기 위해 다양한 조합을 시도해 주셔서 감사합니다. 지금 작곡을 시작하십시오!


저자에 관하여

Jyothi Nookula는 AWS AI 디바이스의 주요 제품 관리자입니다. 그녀는 고객을 기쁘게하는 제품을 만드는 것을 좋아합니다. 여가 시간에는 미술 전시회를 위해 자선 기금 모금 행사를 페인트하고 주최하는 것을 좋아합니다.

Rahul Suresh는 AWS AI 조직의 엔지니어링 관리자로서 모든 개발자가 머신 러닝에 액세스 할 수 있도록 AI 기반 제품을 개발하고 있습니다. AWS에 합류하기 전에 Rahul은 Amazon Devices의 선임 소프트웨어 개발자였으며 ​​성공적인 스마트 홈 제품 출시를 도왔습니다. Rahul은 기계 학습 시스템을 대규모로 구축하는 데 열정을 가지고 있으며 항상 고객에게 고급 기술을 제공하고자합니다. 그의 전문 경력 외에도 Rahul은 열렬한 독자이자 역사 애호가입니다.

Prachi Kumar는 AWS의 ML 엔지니어이자 AI 연구원으로 AI 기반 제품을 개발하여 사용자에게 기계 학습에 대한 정보를 제공하고 있습니다. Prachi는 AWS에 합류하기 전에 UCLA의 컴퓨터 과학 대학원생이었으며 석사 및 학부 과정에서 ML 프로젝트 및 과정에 중점을 두었습니다. 여가 시간에는 독서와 영화 감상을 즐깁니다.

Wayne Chi는 AWS의 ML 엔지니어 및 AI 연구원입니다. 그는 흥미로운 기계 학습 문제를 연구하여 새로운 개발자를 가르치고 그 아이디어를 생산에 적용합니다. AWS에 합류하기 전에 NASA의 JPL에서 소프트웨어 엔지니어이자 AI 연구원으로 일하면서 Mars 2020 Rover (Perseverance)의 AI 계획 및 예약 시스템에서 일했습니다. 여가 시간에는 테니스, 영화 감상, AI에 대해 더 많이 배우는 것을 즐깁니다.

Enoch Chen은 AWS AI Devices의 선임 기술 프로그램 관리자입니다. 그는 기계 학습의 열렬한 팬이며 혁신적인 AI 응용 프로그램을 탐색하는 것을 좋아합니다. 최근 그는 수천 명의 개발자에게 DeepComposer를 제공하는 데 도움을주었습니다. 작업 외의 Enoch는 피아노 연주와 클래식 음악 감상을 즐깁니다.

출처 : https://aws.amazon.com/blogs/machine-learning/generating-compositions-in-the-style-of-bach-using-the-ar-cnn-algorithm-in-aws-deepcomposer/

spot_img

최신 인텔리전스

spot_img