---
title: 【生成Deap Learning 第2版】11.3~11.4
tags:  #musegan  
author: [京都大学人工知能研究会KaiRA](https://www.docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LJL2KKWQER.jpg?width=480
description: 【生成Deap Learning 第2版】11.3~11.4 by 京都大学人工知能研究会KaiRA
published: June 19, 25
canonical: https://www.docswell.com/s/kyoto-kaira/ZQRV63-2025-06-19-205917
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LJL2KKWQER.jpg)

2025年度前期輪読会 #9 (2025/06/17)【生成Deep Learning】
第11章 音楽生成
(11.3～11.4)
京都大学 大学院工学研究科 M1
河田 賢斗


# Page. 2

![Page Image](https://bcdn.docswell.com/page/47M822YK7W.jpg)

アジェンダ
■ 11.3 MuseGAN
•
•
•
•
11.3.1 バッハ合唱曲データセット
11.3.2 MuseGAN 生成器
11.3.3 MuseGAN 評価器
11.3.4 MuseGAN の分析
■ 11.4 まとめ


# Page. 3

![Page Image](https://bcdn.docswell.com/page/P7R5MM96J9.jpg)

11.3 MuseGAN
ｎ
 画像生成問題として音楽生成を考える
 GAN の適用が可能では？
 「MuseGAN」と命名
 2017年に
論文「MuseGAN: Multi-Track Sequential
Generative Adversarial Network for Symbolic
Music Generation and Accompaniment」
で紹介される
 複数小節の音楽を生成可能となる
 高レベルな音楽的な特徴をきめ細かく制御すること
図1. ピアノロール
が可能となる
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/PJXKVVQD7X.jpg)

11.3.1 バッハ合唱曲データセット
 MuseGAN の訓練のために必要なMIDIファイルをダウンロードする
 バッハの4声合唱229曲のデータセットを活用
 下図2のコードによりデータセットをダウンロードする
• 時間ステップごとの4声各々の音程のMIDIノート番号(4つの数字)からなる配列
• 4分音符4拍分(1小節) が16時間ステップ⇒1時間ステップは4分音符1/4拍分
• train, valid, testのセットに分割されている⇒trainのデータセットを使用する
図2. データセットのダウンロード
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/3JK5QQ9D7D.jpg)

11.3.1 バッハ合唱曲データセット
 GANに適した形状に修正する
 各曲の出だし2小節を抽出→2小節の音楽を生成
 1小節=4分音符4拍分=16時間ステップ・4声を通して84段階の音程がある
 データの形状は以下の通り
[BATCH_SIZE, N_BARS, N_STEPS_PER_BAR, N_PITCHES, N_TRACKS]
ここで、
• BATCH_SIZE = 64 (64曲一括処理)
• N_BARS = 2 (2小節分)
• N_STEPS_PER_BAR = 16 (1小節=16時間ステップ⇒16分音符ベース)
• N_PITCHES = 84 (音高はMIDIノート番号で84種類)
 音程の番号をone-hot エンコーディングして⾧さ84のベクトルにする
•
N_TRACKS = 4 (4声部)
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LE3KPPWPE5.jpg)

11.3.1 バッハ合唱曲データセット(参考)
←図3. 2小節分の生データを処理し、GAN
を訓練するピアノロールデータに変換する
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/8ED3LLK37G.jpg)

11.3.2 MuseGAN 生成器
 MuseGANの構成
 生成器と評価器から成る
• 生成器の入力 : 単一のノイズベクトル(従来のGAN) , 4つの異なる入力(MuseGAN)
4つの入力
① 和音
② スタイル
③ 旋律
④ グルーブ
 4つの入力を独立に扱うことで生成
される音楽の属性の変更が可能
 和音と旋律はテンポラルネット
ワークに渡される
 全トラックの各小節が連結され、
楽譜が生成される
↑図4. 生成器の高レベルの図
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/V7P422KPE8.jpg)

11.3.2 MuseGAN 生成器
 テンポラルネットワーク
 入力は2小節のため、32時間ステップに相当する⇒入力の⾧さは32(=Z_DIM) (図5.①)
 2次元転置畳み込み演算の適用のため、32チャネルの 1×1 テンソルに変形(図5.②)
 Conv2DTranspose層(畳み込み層)を通じて、テンソルのサイズを1つの軸(時間軸)に拡
張し、⾧さをN_BARS とする(図5.③)
 Reshape 層で不要な次元を削除する(図5.④)
畳み込み演算を用いる理由
① 小節の一貫性をネットワークに学
習させるため
② 音楽が小節をまたいでどのように
流れるのかを学習する機会を持たせ
るため
→
図5. テンポラルネットワークのコード
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/2JVXDDVV7Q.jpg)

11.3.2 MuseGAN 生成器
 和音、スタイル、旋律、グルーブ
 和音
• 入力 : ⾧さはZ_DIM
• 目的 : トラック全体で共有される、時間とともに変化する音楽の一般的な進行を制
御すること
• 特徴 : TemporalNetworkを用いて単一のベクトルを、小節ごとに異なった潜在ベク
トルに変換する
 スタイル
• 入力 : ⾧さはZ_DIM
• 目的 : 曲の全体的なスタイルを制御する
• 特徴 : すべての小節とトラックを通して同じであり、変換されることはない
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/5EGVYYL1EL.jpg)

11.3.2 MuseGAN 生成器
 旋律
• 入力 : [N_TRACKS, Z_DIM] の形状の配列であり、各トラック用の⾧さZ_DIMのラ
•
ンダムなノイズベクトルが渡される
出力 : 各トラックに特化したTemporalNetwork に入力ベクトルが渡され、小節ご
とに⾧さZ_DIMのベクトルとなる
 グルーブ
•
•
入力 : [N_TRACKS, Z_DIM] の形状の配列であり、各トラック用の⾧さZ_DIMのラ
ンダムなノイズベクトルが渡される
特徴 : 入力ベクトルはテンポラルネットワークに渡されず、直接そのまま次に渡さ
れる
表1. MuseGAN生成器の要素
→
小節ごとに
出力が違うか
トラックごとに
出力が違うか
スタイル
×
×
グルーブ
×
〇
和音
〇
×
旋律
〇
〇
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JQ6MMYNJP.jpg)

11.3.2 MuseGAN 生成器
 小節生成器
結合
4つの潜在ベクトル
小節生成器
入力ベクトル
(⾧さ : 4×Z_DIM)
ピアノロール表現
(単一トラック・一小節)
 転置畳み込み層を用いて時間と音程の次元を拡張するニューラルネットワーク
 4つの潜在ベクトル(和音、スタイル、旋律、グルーブ : 入力)
 ピアノロール表現(出力結果)
•
形状 : [1, N_STEPS_PER_BAR, N_PITCHES,1] のテンソル
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/K744VVW371.jpg)

11.3.2 MuseGAN 生成器
 小節生成器を作成するKeras のプログラム
↑→
図6. Kerasのプログラム
① 入力は⾧さZ_DIM×4のベクトル
② Dense層でテンソルに変形
③ 時間ステップを拡張
④ 音高方向に拡張
⑤ Tanh活性化関数を使用
⑥ 小節連結の準備として、サイズ1
の次元を追加
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/LJ1433YZJG.jpg)

11.3.2 MuseGAN 生成器
 MuseGAN生成器を作成する
図7.↑→
MuseGAN生成器を作成するKerasコード
① 生成器への入力を定義
② 和音・旋律の入力をテンポ
ラルネットワークに渡す
③ トラックごとに独立の小節
生成器ネットワークを構築
④ トラックと小節の組み合わ
せで小節を生成しながら
ループ
⑤ 4つのテンソル(入力)から
複数トラック、小節に渡る
楽譜を出力する
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GJWXPPG6E2.jpg)

11.3.3 MuseGAN 評価器
 MuseGAN 評価器
 目的 : 生成器が作成した楽譜を、本物の合唱曲集と見分ける
図8. ↑→
MuseGAN評価器を作成
するKerasプログラム
① 複数トラック・複数小節
の楽譜の配列
② 小節の軸に沿ってテンソ
ルを縮退させる
③ 音程の軸に沿ってテン
ソルを縮退させる
④ 時間ステップの軸に
沿ってテンソルを縮退
させる
④ ノードを1つ持つDense
層
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/4EZ6KKLRE3.jpg)

11.3.4 MuseGAN の分析
 入力パラメータの影響分析
 MuseGANの特徴
• 生成器からの出力にて、84音程の全ての中で最大値を持つ音符を選択
• 閾値0と設定するのではなく、単純な最大値を取る
 モデルの生成例
 入力パラメータが、生
成された音楽の系列
データの高レベルな特
徴に直接影響を与える
→図9. MuseGANが生成した
楽譜の例
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/Y762QQW1EV.jpg)

11.4 まとめ
 音楽生成
 逐次的なアプローチが必ずしも必要ではない
 楽譜を画像として扱う⇒畳み込み⇒複数トラックの楽譜を生成
•
4つの入力ノイズベクトルを編成し、音楽の高レベルな特徴を完全に制御出来るよう
に
•
完璧な再現は難しいが、幅広い問題に適用可能なGANの力を際立たせるもの
16


