修士学生向けに音・音楽の深層学習の勉強会をやった話

本記事は日本音響学会 学生・若手フォーラム Advent Calendar 2023の12日目の記事です.(日付を勘違いしてしまいました.)素敵な企画をご考案してくださりありがとうございます.
音という軸で集まった人たちのアツい話が集まっていて楽しいです.

さて,私の話は研究そのものというよりは研究教育関連のもので,
筑波大学人と音の情報学研究室で2022年度に行った深層学習を用いた音楽情報処理に関する勉強会を主宰し回した体験談でも話そうと思います.(*0)
なお,この時の資料はgithub上に公開していますので,気になった方はぜひリポジトリにお立ち寄りください.

お前は誰?

〜〜自分語りゾーン〜〜
筑波大学大学院・D3の山本 雄也と申します.
大学院では歌唱テクニック分析の計算機的基盤の確立というテーマで研究しています.
歌手が歌唱中に散りばめる"歌唱テクニック"と呼ばれる技法たちをコンピュータによって大規模かつ柔軟な自動分析可能にし,それを通して歌手の個性の謎の一側面に迫ったり,創作・音楽検索・歌唱技能向上に役立てようというモチベーションで研究をしており,その難しさに毎日挫折しています.
分野としては歌唱テクニックとは何か,何を分析可能にできるか,また実際の歌ではどのような出現傾向が見られるかを探求する計算音楽学; デジタルヒューマニティーズ的な側面と,歌声という外乱も多くデータも集めにくい難しいメディアデータからいかに目的の情報である歌唱テクニックを識別/検出するかという音楽情報処理; メディア情報工学的な側面両方に取り組んでいます.
歌声の研究は一筋縄ではいかないですが,楽しいです.研究がうまくいかなくても歌聴くの楽しいからまいっかとなります.
特に歌唱表現分析関係は研究者が圧倒的に足りていない+研究としてブルーオーシャンなので,ぜひみなさんもやってみましょう.いや,やってくださいおねがいします.
過去のworkはこちらにまとめています.先述の歌唱テクニック識別/検出は深層学習に基づいていて,その基礎はそれなりにはわかるという具合です.深層学習を触り始めたのはM1夏に参加した産総研でのインターンからです.
今はまさに博論審査真っ最中で,その息抜きとして記事を執筆しています.
ちなみにASJは2020秋に共著として高齢者の音楽認知について発表,2023年秋には主著で変形可能畳み込みNNのテクニック識別を発表するはずが親知らずが割れ治療でNo showとしてしまいました...

何をやったか

この勉強会は2022年度に春学期を通して,深層学習を活用した音楽情報処理について週1ペースで講義と演習を行うというものでした.
カリキュラムとしては以下の通りです.

リポジトリのreadmeより.


モチベーション

これをやろうと思ったきっかけは後輩学生を見ていて,「研究でやりたいことがあるのに,知見不足が理由で手法がなあなあになってしまうのがもったいない」と思ったことでした.

この頃は音楽情報処理においても深層学習系アプローチがなだれ込み,有用性も確認されてきた時期でもありました.したがって,研究テーマとして機械学習・深層学習を用いたテーマを提案してくる後輩学生も数多く配属されたのを見てきました.

しかしうちの研究室はどちらかといえば,音の性質そのものの分析(音響分析および計測)や音に対する人の知覚の研究に専門が寄っていて,その専門のミスマッチから,機械学習系の研究は面倒を見きれない部分が出たケースが多く発生してしまいました.(断じて先生方や学生の皆を批判している意図はありません.)

うちは「学生のやりたいことを尊重し,好きな研究を自由に行える」ことは魅力だとは思うのですが,昨今の深層学習の潮流はとても速く,独力で適切な手法を選択し学びのロードマップを立てることは容易ではありません.
私もゼミでコメントはしますが,なかなかそれだけだと難しかったです.
どこかでがっつり基礎を習得する必要があるのではないかと.

しかし,深層学習x音楽情報処理においては初学者が追いやすく,手っ取り早く研究に着手するのに良い資料を当時なかなか見つけることができなかったがために,なかなか踏み出せずにいました.
また,そのような基礎を解説した大学院講義も弊学にはありませんでした.
ちなみに今はこの書籍この書籍等がありますね.いい時代になりました.

そうこうしているうちにD2となった2022年度,機械学習系の研究を行うM1
が特に数多く配属(5人くらい?)されました.
「流石になんとかしないと」と思い,勉強会を開きやり抜くことを決意しました.(あくまで,義務感に駆られた訳ではなく,最強のMusicDeepチームを作り上げてみせるぜ!という前向きな気持ちであったことは強調しておきます.)

幸い自分は色々な理由である程度の品質のスライドを高速で作るのは慣れていたり(*1),M1の時に統計分析の勉強会を回した経験もあったり,さらに一番大きなこととして,この頃にFundamentals in Music Processing Notebookや共同研究を行っているKAISTのJuhan Nam先生がやっている機械学習ベース音楽情報処理の講義アムステルダム大学のDeep learning NotebookISMIRのチュートリアル等,タネとなる資料も見つけていて,なんとかやりきれそうな実感は得ていました.

工夫したこと

工夫したことは大きく3点ありました.

  1. ゴールを設定してそれを満たすようにカリキュラムを組んだ

  2. 元となる資料に準拠+個人的に感じた疑問点・不足点を補足という形で手間を省いた

  3. やる気と知見がある人に一部タスクを振った

1について,これらはもしかしたら大学教員として講義を行っている方にとっては当たり前かもしれませんが,勉強会をやる以上は到達目標を明確にしてそれを元に毎回の講義を設計する必要があります.
本勉強会の目的として設定したのは,「院試で提案した研究計画(*2)のモデルのプロトタイプを作れて,さらに細かい改善をしようと思えばできる状態をノルマとする」ことでした.
2について,すべてを0から作るのは大変な労力を要すため,準拠の資料をほぼほぼ参考に作りました.また,構成としては以下のようなフォーマットで一貫させました.(準拠の資料もこのように組んであったので大変時短になりました.)
1. 前回のおさらい及び概要
2. その手法のモチベーションの説明
3. 手法自体の説明 (+ 音楽情報処理での用いられ方)
4. 具体的な研究事例の紹介
5. まとめ
5. pythonによる演習
その上で,「これってなんでこうなってるんだっけ?」という個人的な疑問をところどころ付け加えました.

本当はこのような資料を0から作れればそれに越したことはないと思いますが,それは学生がやることではなく教員になったらやればいいよね,と甘えました.

3について,研究テーマがはっきりしている人には,その人にとっての今後のサーベイに役立つように,その人のテーマの基礎となる部分を分担してもらうもらうことにしました
ありがたいことに,これには2人ほど手を挙げていただき分担してもらいました.
この時意識したポイントは,いざとなった時のセーフティネットになることでした.例えば質問が飛んでその人が対応できなかった時のために備える,参考とする資料の不足している文脈に対しては補足資料をこちらから提供する,等です.

やった結果起こったこと

自分への効果


各手法の理解が深まり,音楽情報処理の研究分野をより広く深く俯瞰できるようになったと思います.
学習方法と学びの定着率を示す概念であるラーニングピラミッドにも「学んだことの90%は他者に教えることで保持される」とあり教えること自体が自分の学習にメリットをもたらすと言われていますが,それを実感しました.
また,本勉強会を通してさらにスライド作成の能力は上がった感覚があります.

受講してくれた後輩学生への効果


ためになった,何もわからない状態だったので助かった」とのコメントを何人かからいただき,とても嬉しい気持ちになりました.
研究をやっていくうちにテーマ自体が変わっていき深層学習に関係ないテーマに変わっていった方もいらっしゃいますが,彼らのゼミでのしっかりしたコメントを見るに0.00001%でも寄与はできたのかなと思います.無論それは本人の元々の努力によるところが最も大きいです.
また,深層学習を研究にも使う人に関しては,基礎的な実装をこなすことができるようになったことはもちろん,当初の目的を達成し学会発表まで行けるようになった人もいました.
したがって勉強会は一応は成功したと言えるのではないかと思います.ついてきてくれた後輩の皆には感謝しかありません.

難しかったことなど

ここからはやっている中で感じた苦悩たちを雑多に吐露します.他者を批判する意図は全くありませんが,ご不快になられたとしたら申し訳ございません.
また,以下のことのいくつかは,いまだに私の中で答えが出ていません.人生の先輩方に教えて欲しいです...

厳密さととっつきやすさのバランス


これは教育に携わった経験がある人は感じたことがあるかもしれませんが,どの程度厳密さを犠牲にするか,とっつきやすさを保ちつついかに間違った解釈をしないようにするかのバランスは常に頭を悩ます問題でした.
厳密な定義を解説してゴリゴリ進んでいければそれに越したことはないのですが,それでやっていける人は勉強会などなくても最初から独力で進んでいけるのだろうと思います.
一概にこの軸だけではなく,人に合うやり方は千差万別で,大学教員(あるいはもっと広く,教育といった要素を含んだすべてのこと)の難しさの一端を体験しました.
結局とった策としては,厳密な議論はなるべく避け,各々の個人の研究で必要になる部分は詳しく厳密に述べられた書籍や文献などを元に個別に対応したり,勉強会のために作ったslackで補足を書き散らしたりしていました.
ただ,もっといいやり方はあっただろう,という気がしてなりませんでした.

引力のない勉強会は崩壊する


人間誰しも強制力がないとだらけるものです.熱意がなくやらされているものだと考えるものに対しては尚更でしょう.単位として必須でもない勉強会を開いても来なくなる,輪講担当であっても延期に延期を重ねてやがて自然消滅する,という話を聞くことは少なくありません.
我々は自由にソロプレイな研究室であるために,この問題は起きうることでした.
したがって,私がこけたら終わりだ,という意識を持って主導していましたが,正直きつかったです.時に救急搬送レベルのぶっ倒れをした時も「スライドやんなきゃ」と考えていた記憶があります.
私が突っ走るスタイルが正解だったのかは今でも分かりません(流石に体調が悪くなった時は休むべし).もっと他の学生を信じてあげてタスクを任せることをしても良かったかもしれません.
一般的にも負担の一点集中は避けるべきだと思います.

別の話としては,この人だから参加しよう,と思ってもらえるような普段の振る舞いに気をつけることも同様に重要であると思いました.難しいね.各々の熱量,強制力,担当のカリスマ性など引力のない勉強会は崩壊するということは忘れてはいけないです.

トップでバリバリやってる人はどうやって強くなったのだろう


ずっと気になっていたのはこれです.
ノルマの先に目指していたのが修士で査読あり国際会議も狙えるくらいの研究に仕上げるための力を授けるというものでした.
個人的にはそれができている学生の方に尊敬の念を持つと同時に,そこに辿り着くまでの道のりがとても気になっています.
個人の努力は必要条件ではありますが,それだけが全てではなく環境の要因もあるのだろうと思います.
特に学生をコンスタントに輩出できる研究室は,そもそも元から現場即戦力レベルに準ずる地力がある超実力派学生が多く集まっている OR 研究室として教育のリソース(研究員や博士等のメンタリング等人的なものも含む)の充実及びそのノウハウが確立されている,ではないかと推察しますが,実際のところどうなのか,色々教えていただけると幸いです…

少なくとも我々のようなシーズ型(*3)の研究が多い研究室だと,まとまった知見を蓄積し再利用することは容易ではなく,毎年各々が0から探索し,場合によってはテーマ的に指導のハンドリングの難易度が上がるケースが発生してしまいます.
このへんどうしたらいいんでしょうね…他にも同様の問題を抱える研究室ってあるんじゃないかと思います.ベストプラクティスを集めて環境格差を減らしたいです.

音楽情報処理幅広すぎワロタ


音楽情報処理はその名の通り音楽という幅広い対象が存在する領域に対し,音響処理,符号処理,心理測定,言語処理,機械学習,インタラクション etc…といった学際的にアプローチする分野です.
特に音楽情報処理の大きな潮流として,自動採譜や楽音生成等,演奏音のレコーディングを扱う音響処理と,自動作曲等符号化された楽譜を扱う符号処理の2つの異なるドメインの研究がパラレルで走っています.両方を扱う必要があるとなると,幅広い知識を要求されます.
さらにはそれぞれの隣接分野や参考としている分野(音響処理であれば音声・環境音はもちろん同じセンサデータである画像分野も時に,符号処理であれば自然言語処理分野)にも目を向ける必要があります.時にもちろん音楽そのものの知識や経験も求められます.

私はどちらかといえば音響処理が自分の領域であり,符号処理側の知識は不足している自覚があります.
特に,最近流行しているトークンベース自動作曲(今年になってようやくチュートリアルが出たみたいです.これこれ)についてはなんもわからん状態です.
ともかく,どれも教えられている人はすげえよ...超人やん...

PyTorchはまりどころ多すぎん?


今でも思う,PyTorchはハマりどころがめちゃ多い.
さらに言えばPyTorch Lightning(演習で採用)もハマりどころが多い上に破壊的変更が多くてネットに転がるコードが自分の環境で使えないことも多かったです.(他のPyTorchラッパーは資料が無さすぎる.習得コストも高そう等の理由からやめた)
したがって,演習で毎回受講生が触るコードをそれなりの品質で短期間で用意するのは困難でした.
正直申し上げると私にとってもこれが勉強会の最大の難関の一つでした.
そもそも私はそんなにプログラミングが大得意でもなく,さらに上記の問題もあったので一部放り投げた部分もありました.
今だとChatGPTがなんとかしてくれるのかな?

終わりに

ここまで読んでいただきありがとうございました.
繰り返しですが,勉強会を行うなどの後輩学生の教育は,決して博士学生の義務ではないと思います.私が半ばちょっと変わった人間であり,誰から指示されることでもなく,自発的にやったことです.

ちなみに,ここまで教育について語っておいて私自身は来年度からは教育には携わる予定はありません.しかしながら,これからもアイデアを実現するための障壁となるでこぼこ坂道をならしていく活動は,自分の手のおよぶ領域で細々と続けていきたいと思っています.

特に音楽情報処理は対象も幅広く,技術/研究ノウハウを多くの技術者/研究者およびその卵となる人に行き渡らせて裾野を広げることは重要なミッションだと思っています.
今回の例で言えば,今まであまり研究対象とされてこなかった楽器やジャンルに取り組んでいて,それを対象に音楽情報処理の研究を始めようと思ったが技術の習得には苦手意識がある,という人に対して知の高速道路を提供することです.
これに寄与するための活動をこれからもして,その結果生まれた,技術によるアップデートされた音楽のなんらかを未来に見れることを楽しみにしています.

ありがとうございました.


脚注
*0: トピックに迷い,最初は国際会議EUSIPCOの体験談の話でもしようと思ったのですが,すでに過去にEUSIPCOについては紹介されているのと,空港で寝袋を使い野宿する,発表予定だったポスターを紛失する,物乞いに絡まれる,トランジットの空港でパスポートを落とし帰国できなくなりそうになる,飛行機を手荷物のみにしてしまい服を毎日シャワールームで洗うなどの私の愚かさに由来するしょうもない話も多く,ろくな記事にならなそうなのでやめました.私は毎回学会で愉快な出来事が起きているので,気になったら以後の学会でお会いした時に話を聞いてくれると喜びます.

*1: プログラミング教育の講師のインターンで,教材作成をしていたことがあります.納期もミッションもいつもキツキツでした.私の至らなさで当社の社員や同僚にはご迷惑をおかけしながら,資料作成のスキルを磨くことができました.あの時はご迷惑をおかけし申し訳ございませんでした.また,そのご忍耐に大変感謝いたします.
また,博士前期課程で所属していた筑波大学図書館情報メディア研究科はスライド作成研究科か?というほどスライドを作ってプレゼンテーションする課題が多く,毎週1-2回はスライド作成を課せられていました.圧倒的成長できました.

*2 弊学の院試は研究計画のプレゼンが中心となるため,研究の背景・問題点・それに対する提案・提案の詳細及び検証方法を事前にproposeする形になります.

*3 研究テーマの決まり方にはニーズ型とシーズ型があり,ニーズ型は降ってきたテーマに取り組む,シーズ型は自分で研究テーマの種を見つけてディスカッションの上テーマを錬成するという分類です.
詳しくはお茶の水女子大学の伊藤先生のページ


補遺
勉強会の準拠となる資料を手っ取り早く見つけるコツ

  • 英語から逃げるな,もしかしたら今後は中国語からも逃げるな?

  • 大学の講義を探すコツは「大学のドメイン(ac.jp, edu 等) {lecture, course, class}  XX (探すトピック)」でググる,ほか学会のチュートリアル等も幅広く探すと良い

  • レビュー論文,サーベイ論文も参考になる