前回(
https://sakuramml.com/cgi/sakura-bbs2/mbbs.php?m=log&logid=575)と違って具体的な話があるわけではなく本当にふわふわした妄想のお話.
前回はMIDIという形式に注目したのですが,今回は「文字で作曲する」というサクラの一番の特徴に注目します.
現在,自動作曲といえばmidiを何かしらにエンコードしてRNN(とくにLSTM)に食わせるのが一般的な発想です.しかしサクラ(もといmml)はそもそも文字というシンボルの配列です.これを直接RNNで学習・生成させることはできないでしょうか?
自動テキスト生成といえば自然言語処理の一課題として,昨今の人工知能ブームよりずっと昔から取り扱われてきました.「機械は小説を書くことができるか?」といった議論もしばしば見かけますが,近年はRNNの登場によって飛躍的な進歩を遂げています.
中でも興味深いのは,テキストを単語単位で扱うよりも文字単位で扱った方が精度が良いという点です.これは文字列としては無意味なmmlにもRNNでの学習を適用できる有力な理由になります.既存の有力なテキスト生成システムをそっくりそのままmmlファイルに適用してみたら面白い結果になるかもしれませんね.
mmlをプレーンなテキストではなくプログラムのソースコードとして見ると,さらに別の技術が適用できそうです.自動ソースコード生成も近年盛んに取り組まれている課題ですが,その中には仕様やキャプションを入力としてソースコードを出力するシステムの研究がたくさん存在します.サクラに適用する場合,曲掲示板の作者コメントを入力,ソースコードを出力とするデータセットとして学習させれば,コメントを書くだけでその内容に沿った曲を生成してくれるシステムが出来上がるわけです.
いずれの場合も既存の手法を単にmmlに適用するだけなのですが,やはり機械学習において必要なのはデータセットです.あまり時間をかけて調べていないので確証は持てませんが,サクラの掲示板は世界で見ても有数の(もしかしたら唯一の)mml大規模データセットです.これを用いて,text generation や code generation と自動作曲を組み合わせれば新規性のある研究をできそうです.
-----
全体的に「かもしれない」「できそう」といったふんわりとした感じになってしまいましたが,これを題材にすれば大学の卒論くらいは書けるんじゃないでしょうか.
ちなみに僕が数年前書いた卒論の題材は「mmlを用いた対話的遺伝的プログラミングによる自動作曲システムの構築」でした.中学生のときに出会ったサクラを大学の卒論で使うのもなかなか感慨深かったです.つくづくサクラにはお世話になっとります.あとなでしこ.
前回のエントリーと合わせて僕が何を言いたいかというと,サクラ曲掲示板は様々な意味で貴重なデータセットだということです.
感想・提案・議論などお待ちしております.