[논문 읽기] Large-Vocabulary Chord Recognition
3587 단어 DeepLearning음악 정보 처리
이 기준은 아직 발전할 공간이 있는 것 같지만 코드 식별의 또 다른 과제는 더욱 복잡한 코드다.Triad는 코드 체계의 기본 중의 기본이고 그 외에 7th,dim,sus와aug 같은 유형도 있고 분수 코드(전치 등)도 있다.그것들을 모두 다른 반으로 간주하면 반 수가 수백 개로 팽창하기 때문에 삼중주와 혼동하지 말고 정확한 식별도 이과피의 큰 도전이다.
질문
24종 철인 3종은 수량도 적고 서로 완전히 독립된 반으로 볼 수 있다.하지만 종류가 늘어나면 꼭 그렇지는 않다.예를 들어 C7, Cmaj7, C6 등은 C의 구성음을 포함하고 일정한 등급이 존재한다고 할 수 있다.이러한 클래스를 수백 가지의 여러 클래스 분류 문제로 간단하게 풀면 (예를 들어 NN의 출력층 단원 수를 수백 가지로 설정하는 것) 문제가 발생합니다.
1. 모든 오류에 대한 비용은 동일합니다.예를 들어 C를 Dm로 잘못 기재한 오류와 Cmaj7로 잘못 기재한 오류를 같은 정도의 손실로 계산하기 때문에 학습이 순조롭지 않다.
2. 다른 유형에 비해 철인 3종이 압도적 다수(철인 3종이 80% 이상)를 차지하고 훈련 데이터의 편차가 너무 크다.
DeepLearning이 유행하기 전에 우리는 Chroma+HMM 프레임워크에서 이 문제를 토론한 적이 있다.VAMP 플러그인 Chordino도 마찬가지입니다.그러나 DeepLearning의 틀에서 과제를 인식했지만 해결 방안을 제시하는 연구는 거의 없었다.
그러나 앞서 GitHub에서 갑작스럽게 검색한 결과 음악 정보 처리 라이브러리 librosa에 있는 B.McFee와 J.Bello 선생님이 올해 ISMIR에 코드 식별 논문과 소스 코드공개적인 걸 발견했어요.를 제출한 것으로 나타났다.확실히 DeepLearning의 틀 안에서 이 과제를 처리하여 마침내 성과를 거두었다.어떤 물건인지 보자.
논문 읽기
제목: 대형 Vocabulary Chord 인식
권적 NN을 만들어서 파라미터를 학습시키는 큰 틀은 예전과 같지만, NN의 출구와 같은 주요한 생각의 양식을 생각해 보자.
Encoder-decoder model
이 NN의 구조는 논문에서 Encoder-decoder 모델이라고 불린다.NN은 두 부분으로 구성되어 있으며, Encoder는 스펙트럼을 특징량 공간으로 변환하고, decoder는 특징량을 출력 라벨 공간으로 변환합니다.논문에서 기계 번역에 나오는 Encoder-decoder 모델을 바탕으로 한다고 했는데 좀 다른 것 같아요.
한 마디로 하면 Encoder는 두 겹의 볼륨과 한 겹의 양방향 GRU를 통해 스펙트럼 시퀀스를 특징량 시퀀스로 변환합니다.피쳐의 벡터 치수는 변경되지만 시퀀스의 길이 T는 변경되지 않습니다.
논문에는 두 가지 Decoder 모드가 준비되어 있습니다.하나는 전체 연결을 통해 Softmax를 통해 출력되는 늙은이입니다.다른 하나는 양방향 GRU를 통해 출력으로 변환하는 것입니다.Encoder에서 얻을 수 있는 특징 벡터는 개별 독립 변환 또는 가져오기 앞뒤 문장의 영향 차이입니다.
대상 표시
제목에서 보듯이 이곳은'구조열차'라고 불리는 부분이다.이것은 코드 기호를 (뿌리, 구성음, 기초) 요소로 나누어 NN으로 각자의 방법을 예측하는 것이다.특징량으로 볼 때 코드의 세 가지 요소를'디코딩'하는 거죠.이러한 "구형화"형식을 사용하면 오류의 비용을 더욱 합리적으로 할 수 있다.데이터 편차가 가져온 영향도 어느 정도 해소되겠죠.
음고류를 예측하는 부분(pitches의 부분)은sigmoid 함수를 통해softmax가 아니라 벡터의 여러 값이 1이기 때문이다.
학습할 때 교사 데이터의 코드 라벨을 그림의 세 개의 희소 표시로 변환하여 NN의 출력과 대조한다.레이블에서 드문드문 표시로 변환mir_eval이라는 라이브러리에서 간단하게 진행할 수 있습니다.
코드 유형 확인
실제 식별 코드의 단계에서 학습이 끝난 모델에서 세 가지 요소를 예측한 후 이를 코드 기호로 전환한다.변환할 수 없을 때 알 수 없는 코드이기 때문에 "X"를 출력합니다.원본 코드에서 pumpp, 이것은 또 bmcfee 씨가 만든 라이브러리입니다.
훈련 데이터
전통적인 훈련 데이터를 사용하다.1217곡이 있는 것 같습니다.훈련 데이터의 편향을 극복했지만 7성의 데이터량이 적기 때문에 위아래로 각각 6반음의 음조 편이를 진행하여 12배(dataaugmentation)를 증가시켰다.
결론
실험에서'Encoder의 출구가 전체 연결층인지 양방향 GRU'인지'Decoder가 전통적인 형식인지 구조적인 형식인지'에 따라 4가지 모델의 모델을 만들어 평가 실험을 실시했다.성능이 전통 모델(논문 Table1)보다 전면적으로 우수하지만 4가지 모델을 비교하면 Structured의 구조에서 복잡한 코드의 식별이 특별히 좋지 않다.
예고하다
모두가 스스로 고려한 코드 식별 시스템은 올가을MIREX2017에 발표될 예정이다.상술한 수법 같을 수도 있어요.논문을 잘못 보내서 비행 발표처럼 느껴지니 기대해 주세요.논문이 일찍 통과되지 않으면 큰일난다.
Reference
이 문제에 관하여([논문 읽기] Large-Vocabulary Chord Recognition), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/xiao_ming/items/25a0fec55ab6f71325a8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
제목: 대형 Vocabulary Chord 인식
권적 NN을 만들어서 파라미터를 학습시키는 큰 틀은 예전과 같지만, NN의 출구와 같은 주요한 생각의 양식을 생각해 보자.
Encoder-decoder model
이 NN의 구조는 논문에서 Encoder-decoder 모델이라고 불린다.NN은 두 부분으로 구성되어 있으며, Encoder는 스펙트럼을 특징량 공간으로 변환하고, decoder는 특징량을 출력 라벨 공간으로 변환합니다.논문에서 기계 번역에 나오는 Encoder-decoder 모델을 바탕으로 한다고 했는데 좀 다른 것 같아요.
한 마디로 하면 Encoder는 두 겹의 볼륨과 한 겹의 양방향 GRU를 통해 스펙트럼 시퀀스를 특징량 시퀀스로 변환합니다.피쳐의 벡터 치수는 변경되지만 시퀀스의 길이 T는 변경되지 않습니다.
논문에는 두 가지 Decoder 모드가 준비되어 있습니다.하나는 전체 연결을 통해 Softmax를 통해 출력되는 늙은이입니다.다른 하나는 양방향 GRU를 통해 출력으로 변환하는 것입니다.Encoder에서 얻을 수 있는 특징 벡터는 개별 독립 변환 또는 가져오기 앞뒤 문장의 영향 차이입니다.
대상 표시
제목에서 보듯이 이곳은'구조열차'라고 불리는 부분이다.이것은 코드 기호를 (뿌리, 구성음, 기초) 요소로 나누어 NN으로 각자의 방법을 예측하는 것이다.특징량으로 볼 때 코드의 세 가지 요소를'디코딩'하는 거죠.이러한 "구형화"형식을 사용하면 오류의 비용을 더욱 합리적으로 할 수 있다.데이터 편차가 가져온 영향도 어느 정도 해소되겠죠.
음고류를 예측하는 부분(pitches의 부분)은sigmoid 함수를 통해softmax가 아니라 벡터의 여러 값이 1이기 때문이다.
학습할 때 교사 데이터의 코드 라벨을 그림의 세 개의 희소 표시로 변환하여 NN의 출력과 대조한다.레이블에서 드문드문 표시로 변환mir_eval이라는 라이브러리에서 간단하게 진행할 수 있습니다.
코드 유형 확인
실제 식별 코드의 단계에서 학습이 끝난 모델에서 세 가지 요소를 예측한 후 이를 코드 기호로 전환한다.변환할 수 없을 때 알 수 없는 코드이기 때문에 "X"를 출력합니다.원본 코드에서 pumpp, 이것은 또 bmcfee 씨가 만든 라이브러리입니다.
훈련 데이터
전통적인 훈련 데이터를 사용하다.1217곡이 있는 것 같습니다.훈련 데이터의 편향을 극복했지만 7성의 데이터량이 적기 때문에 위아래로 각각 6반음의 음조 편이를 진행하여 12배(dataaugmentation)를 증가시켰다.
결론
실험에서'Encoder의 출구가 전체 연결층인지 양방향 GRU'인지'Decoder가 전통적인 형식인지 구조적인 형식인지'에 따라 4가지 모델의 모델을 만들어 평가 실험을 실시했다.성능이 전통 모델(논문 Table1)보다 전면적으로 우수하지만 4가지 모델을 비교하면 Structured의 구조에서 복잡한 코드의 식별이 특별히 좋지 않다.
예고하다
모두가 스스로 고려한 코드 식별 시스템은 올가을MIREX2017에 발표될 예정이다.상술한 수법 같을 수도 있어요.논문을 잘못 보내서 비행 발표처럼 느껴지니 기대해 주세요.논문이 일찍 통과되지 않으면 큰일난다.
Reference
이 문제에 관하여([논문 읽기] Large-Vocabulary Chord Recognition), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/xiao_ming/items/25a0fec55ab6f71325a8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
모두가 스스로 고려한 코드 식별 시스템은 올가을MIREX2017에 발표될 예정이다.상술한 수법 같을 수도 있어요.논문을 잘못 보내서 비행 발표처럼 느껴지니 기대해 주세요.논문이 일찍 통과되지 않으면 큰일난다.
Reference
이 문제에 관하여([논문 읽기] Large-Vocabulary Chord Recognition), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xiao_ming/items/25a0fec55ab6f71325a8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)