音楽情報処理技術コンテストMIREX(Music Information Retrieval EXchange)の、今年のコード進行認識タスクの結果が発表されました。筆者が提出したアルゴリズムを含め、計5個のアルゴリズムが自動コード認識の精度を競いました。それぞれの結果と手法を簡単にまとめます。
去年の結果については筆者のブログにまとめられています。今年はここに書くことにしました。
CM1
Chordinoというソフトウェア(厳密にはプラグイン)で実装されているコード認識プログラムです。同じアルゴリズムで毎年参戦していて、ベースライン的な存在です。関連の論文は:
Mauch, Matthias and Dixon, Simon: Approximate Note Transcription for the Improved Identification of Difficult Chords, Proceedings of the 11th International Society for Music Information Retrieval Conference (ISMIR 2010), 2010.
この成績が、一つの基準になります。今年の提出物の中だと完全に引き立て役に徹してしまっていますね。
JLW1、JLW2
研究室の有能な後輩の提出物です。特徴量はChordinoで使われているNNLS-Chromaを使い、巨大なランダムフォレストを訓練してパターン認識を行いました。筆者のアルゴリズム(後述)と違い、複雑なコードタイプも一緒に分類しちゃうアプローチをとりました。JLW1は普通のHMMでポストフィルタリングを行いましたが、JLW2はBeat tracking用のCRFを参考に、コード分類と分割を同時にモデル化して最尤系列を探索するアルゴリズムを開発。精度も全体的にJLW1を上回っています。Seventhの精度は筆者のアルゴリズムに迫り、Bassは普通に良く、結果両方考慮するSeventhBass基準の精度で、筆者を抑え過去最高を達成しました。
KBK1, KBK2
去年とんでもない数字をたたき出したアルゴリズムが今年も参戦してきました。KBK1がDeep Chromaで、KBK2がCNN-CRFモデルのやつ。やたらMajminの数字が高いと思ったら、IsophonicsとかRobbieWilliamsとかRWCとか全て訓練データに使っているんですね。でもTrain SetにないBillboardセットやUSPOPセットでも普通に数字がいいのでやっぱり性能自体は良いという事なんでしょう。
CNN-CRFの方が突出して精度が高く、やっぱりさすCNNという事なんでしょう。ただトライアドにしか対応していないのでMajmin以降の成績は良くないです。
WL1
筆者の提出物です(自分、Wu Yimingと申します)。深層学習ベースのシステムですが、ざっくり説明すると、大量のMIDIデータを使い、音声から各時間に鳴っている音高(&ベース)を推定するニューラルネットワークを訓練し、その推定結果を特徴量としてさらにパターン認識を行おうというアプローチです。おおまかなNote transcriptionを行ったという感じでしょうか。
BLSTM-CRFで作った分類器はMajminレベルの認識に留まりますが、超簡素な後処理でセブンスと転置に対応しています。
Majminの精度にある程度自信はあったのですが、そこそこという感じ。DeepChromaよりは良かったようですね。意外にSeventhのスコアが過去最高の数字だったりします(そもそもSeventh以降を扱ったアルゴリズムは少なかったのですが)。Bassの分類がイマイチなのは第一、第二転置しか考慮していなかったからかもしれません(迂闊)。
別記事でもうちょっと詳しく説明したいと思います。
まとめ
今年は計4つのグループ(うち二つは我々復旦大学)のみの参戦に留まりました。ちょっと少なかったので過去年の成績を掘り出して比較してました。
MIREXの評価セットを避けて、自分のモデルはRWCとUSPOPデータセットを使って学習したのですが、MIREXがRWCとUSPOPをしれっと評価セットに追加しててちょっと焦りました。タスクの責任者に(後輩が)問い合わせてみたら、「使った訓練セットをちゃんと明記すれば良いのよ」とのこと。まあKBKらもそうだしね・・・
とりあえず自分の提出物の成績が悪くなくてホッとしています。Bassはちょっとした改造で更に良くなれただけに結構悔いが残りますが、研究室からISMIR参加費を勝ち取れた事だし、収穫が大きいMIREX参戦でした。
ISMIRの最終日にポスターを貼る予定です。パッシブスキル人見知りが発動しそうで心配ですががんばります。