2019의 게시물 표시

오픈소스 음원 분리 엔진 Spleeter

이미지
지난 11월 초, 프랑스의 온라인 음악 스트리밍 회사인 deezer에서 딥 러닝 기술을 활용한 음원 분리 엔진 spleeter를 개발하여 무료로 배포하였습니다. Spleeter를 이용하면 음악 파일로부터 보컬, 드럼, 베이스 등의 각 파트를 손쉽게 분리해낼 수 있습니다. 기존의 음원 분리 작업 방식은 고가의 소프트웨어를 이용해야 함은 물론이고 많은 시간을 들여야 깔끔하게 분리해낼 수 있었지만, spleeter는 몇 개의 파트로 분리하고 싶은지만 명시하면 자동으로 각 파트를 분리해줍니다. Spleeter는 다음과 같은 세 가지 모드의 음원 분리를 지원합니다. 2 stems: 보컬 / 악기 연주 4 stems: 보컬 / 드럼 / 베이스 / 나머지 악기 5 stems: 보컬 / 드럼 / 베이스 / 피아노 / 나머지 악기 딥 러닝에 기반한 음원 분리 엔진이기에 네트워크를 학습할 때 사용한 분리 모드 세 가지만 지원하는 것으로 보입니다. 기타, 바이올린 등 다른 악기 파트도 분리하고 싶다면 네트워크를 새로 학습시킬 수는 있지만 많은 양의 음악 데이터와 학습 시간이 필요하리라 예상됩니다. Deezer 연구팀에서는 의료 영상 분석에 사용되었던 U-net을 이용하여 spleeter를 개발하였습니다. U-net은 위 그림과 같은 구조를 가지고 있으며, 이미지를 입력받은 후 해당 입력에 대한 분석 정보를 담은 결과 이미지를 출력으로 내보냅니다. 아래와 같이 세포 이미지를 입력받아서 세포가 있는 부분만 나타내는 출력 이미지를 내보내는 식입니다. 원래는 이미지를 대상으로 한 네트워크였지만, spleeter에서는 음악을 입력받고 원하는 파트별로 분리된 음악을 출력함으로써 음원 분리를 수행하게 됩니다. 학습을 위한 데이터셋으로는 MUSBD 데이터셋 및 Bean 데이터셋을 사용하였다고 합니다. MUSBD는 공개된 음원 분리 데이터셋이며, Bean 데이터셋은 deezer의 자체 데이터셋으로 미공개입니다. 학습된 엔진 및 소스코드는 깃허브에 공개되어 ...

이제 인공지능과 함께 코딩하세요!

이미지
마이크로소프트의 연례 기술 컨퍼런스 Ignite 2019에서 인공지능 기반의 코딩 지원 기능인 Visual Studio IntelliCode (이하 IntelliCode)의 확장 버전이 공개되었습니다. 지난 4월에 IntelliCode의 초기 버전이 공개되었던 바 있으며, 해당 버전의 경우 코딩 시에 구문 단위로 자동완성 추천을 하는 기능이었습니다. 아래 그림에서와 같이 코딩을 하는 동안 인공지능이 다음에 쓸 구문을 별표로 추천해주는 방식입니다. 인공지능 기반의 추천이 아니더라도, 개발용 프로그램들에는 사용 가능한 구문 혹은 현재 쓰여진 알파벳이 들어간 구문을 추천하는 기능이 이미 있습니다. IntelliCode가 이러한 기존의 자동완성 기능과 차별화되는 점은, 단순히 이름을 매칭하는 것이 아니라 인공지능을 통해 현재 코딩하는 상황에 따라 쓸 확률이 높은 구문을 추천해준다는 것입니다. 여기에서 한 차원 더 나아가 이번 확장 버전에서는 코드 라인 전체 자동완성  기능 및 코드 리팩토링(refactoring)  기능이 추가되었습니다. 하나씩 차례로 살펴보도록 하겠습니다. 먼저 코드 라인 전체 자동완성 기능은 아래 그림에서와 같이 첫 구문만 입력하면 라인 전체를 자동완성하여 추천해주는 방식으로 작동합니다. 해당 기능은 자동 문장생성 인공지능 모델로 유명한 Open AI의 GPT-2를 기반으로 구현하였다고 합니다. GPT-2는 단어 혹은 문장을 입력하면 그 뒤에 올만한 문장들을 자동으로 생성하는 모델입니다. 학습을 위해서는 많은 양의 글을 모아놓은 데이터셋이 필요하며, 학습에 쓰인 글의 스타일대로 문장을 생성하게 됩니다. 즉, 소설을 학습시키면 소설에서 쓰이는 스타일의 문장을 생성하게 되며 기사를 학습시키면 기사에서 쓰이는 스타일의 문장을 생성합니다. IntelliCode 연구개발팀에서는 이러한 특성에 착안하여 오픈소스 공유 플랫폼인 GitHub의 코드를 이용하여 GPT-2 기반의 모델을 학습시켰습니다. 코드를 입력받은...

딥마인드, 알파스타를 통해 스타크래프트2까지 정복하다.

이미지
지난 10월 30일, 저명 국제 학술지 <네이처>에서는 구글 딥마인드의 스타크래프트2 인공지능 '알파스타(AlphaStar)'가 상위 0.2%의 실력에 해당하는 그랜드 마스터 등급을 달성하였다는 내용의 논문을 발표하였습니다. 알파스타는 지난 1월에도 스타크래프트2 프로 선수 2명과의 경기에서 10승 1패의 성적을 거둔 바 있으나, 이 때는 사람이 따라할 수 없는 빠른 분당 행동수(Actions Per Minute, APM)로 경기를 진행하였을 뿐 아니라 인공지능이 입력받는 정보도 사람이 보는 화면과 다르게 더 상세하였습니다. 이번에 발표된 버전의 알파스타는 사람이 보는 화면과 같은 정보를 입력받고 사람도 충분히 가능한 분당 행동수로 게임을 진행하여 그랜드 마스터 등급을 달성하였습니다. 알파스타는 다음 두 가지의 주요 특징을 통해 그랜드 마스터 등급의 성능을 달성할 수 있었습니다. 모방 학습(Imitation Learning) 및 자가 대전(Self-play) 리그 플레이 우선 모방 학습 및 자가 대전에 대한 내용입니다. 딥마인드에서는 실제 사람들의 대전 기록을 이용하여 지도 학습으로 알파스타를 학습시켜서 어느 정도의 실력을 갖추게 한 뒤, 알파스타 에이전트의 자가 대전을 통해 성능을 더욱 향상시켜 나갔습니다. 매 시간 단위마다 알파스타가 취할 수 있는 행동의 수는 10 26 가지에 달한다고 합니다. 이렇게 방대한 경우의 수를 가진 게임에서 효율적으로 알파스타의 성능을 향상시키기 위해 우선 기존의 대전 기록을 통해 빠르게 성능을 높인 다음에 자가 대전을 적용한 것입니다. 위의 그림은 스타크래프트2의 각 리그별 MMR (Match Making Rating) 분포를 나타낸 그림입니다. 우측에 AlphaStar supervised라고 표시되어 있는 부분을 살펴보면 대전 기록을 이용한 지도 학습만으로도 이미 다이아몬드 리그 이상의 성능을 확보하였으며 그 후 자가 대전을 통해 성능을 더욱 높여갔음을 알 수 ...