1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

音楽データでのSpecAugmentの最適なパラメーターは?

Posted at

はじめに

SpecAugmentは、音声認識分野の分野で広く採用されてきたデータ拡張の手法です。この手法は、音声データに周波数方向や時間方向へのマスキングを適用することで、モデルがより汎用的で堅牢な学習を行えるようにするものです。
一方で、音楽データへのSpecAugmentの適用は、まだあまり探究されていません。音楽は、リズム、メロディ、ハーモニーなど、一般的な音声データとは異なる特徴を持っています。
この記事では、音楽データでのSpecAugmentの最適なパラメーターを検証していきます。

セットアップ

音楽データと言っても予測するタスクによって性質は変わってきます。
キーやセクションなどは時間における長期的な依存関係があります。コードやリズムなどはそれよりかは短い依存関係があるでしょう。
今回予測するタスクとしては、ノート(構成音)、コード、コード(ルートノート)、コード(ベースノート)、キーの5つです。

モデルはwav2vec2.0を改造して音楽の特徴量を作成するという記事で作成したwav2vec2.0のフレームワークを利用したものです。特徴エンコーダーはフリーズし、Transformerのみをファインチューニングします。
特徴エンコーダー前にSpecAugmentを挿入して検証します。

マスキング方法はSpecAugment++で提案されたMini-batch based mixture maskingを利用します。ゼロマスクの代わりにミニバッチ内の別のサンプルとミックスするというものです。

今回検証するパラメーターは、マスクスパンマスク率です。時間方向のみを検証していきます。

検証

特徴エンコーダー前にSpecAugmentを挿入した場合を検証していきます。
特徴エンコーダー前にレイヤーは存在しないので入力のスペクトログラムに直接SpecAugmentを適用するということになります。

マスクスパン: 20ms

d5587ab4-98ed-4614-b632-4bfeb9f6ebcd.jpg
マスクスパン20msの時のマスク率ごとの各タスクのロスです。ばらつきはありますが、全体的にマスク率40%くらいがよいようです。ただコードやノートは改善が少なく、あまり効果が見られませんでした。

マスクスパン: 80ms

9fc56869-e78b-4a5f-ab7c-62539dd5f718.jpg

マスクスパン: 200ms

d4fd224b-60e7-49a4-a3fa-b488135a134b.jpg
80ms、200msでは、マスクスパン20msの時と比較すると全体的に改善幅が少なくなっています。マスクスパンが長くなると予測が難しくなり、周囲のコンテキストから補完するようにモデルが学習してくれると期待していたのですが、あまりよくない結果となりました。

マスクスパン: 2080ms

f840bf84-b090-4448-ab50-b675f6e46a73.jpg

これはマスクスパン2080msのものです。80msや200msの時よりも改善幅が大きくなり、20msの時のものに近いです。2秒という長い期間をマスクしているのに正しく学習できていることに驚いてます。

結果

短いマスクスパン(20ms)か長いマスクスパン(2080ms)が有効で、中途半端な長さのマスクスパンはあまり精度を改善できないことがわかりました。マスク率はだいたい40%くらいが有効なようです。
周波数方向のマスクも試しましたがコードの精度が急激に悪化したため検証はスキップしました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?