>100 Views
October 26, 18
スライド概要
2018/10/26
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] “A Hierarchical Latent Vector Model for Learning Long-Term Structure in Music (ICML2018)” Naoki Nonaka http://deeplearning.jp/ 1
書誌情報 • 会議:ICML 2018 • 著者:Adam Robertsら(Google Brain) • 引⽤:13件(2018/10/24時点) • 著者実装: https://github.com/tensorflow/magenta/tree/master/magenta/models/music_vae (図表は紹介する論⽂中のものを使⽤) 2018/10/24 2
背景 深層⽣成モデルの創作活動への応⽤を考える 求められること 1.潜在空間での補間ができること 2.ベクトルによる算術ができること 2018/10/25 3
背景 https://www.youtube.com/watch?v=G5JT16flZwM 2018/10/25 4
背景 深層⽣成モデルの創作活動への応⽤を考える ⼀つの潜在変数zからサンプリングできるVAEに注⽬ 時系列データに対する適⽤を考える 2018/10/25 5
背景 問題点:短い時系列ではできたが⻑い系列ではうまくいかなかった 解決策:階層的なDecoderを⽤いる (⾳楽データによる検証) モデルに求められること 1.系列のモデル化ができること 2.潜在空間での補間ができること 3.ベクトルによる算術ができること 2018/10/25 6
関連研究 • Encoder-DecoderモデルによるVAE Bowman, Samuel R., et al. "Generating sentences from a continuous space." arXiv preprint arXiv:1511.06349 (2015). • その他 • DecoderにRNNを使うモデル • Wavenet • 確率的な遷移を扱うモデル 2018/10/25 7
Model • Bidirectional Encoder • Hierarchical Decoder 2018/10/24 8
Model • Bidirectional Encoder Bidirectional LSTMを⽤いて, 潜在変数zを得る 2018/10/25 9
Model • Hierarchical Decoder 2018/10/25 10
Model • Hierarchical Decoder ⼊⼒系列xがU個の重複のない 部分配列に分割できると考える (各部分配列は同⼀の数からなる) 潜在変数zからU個のembedding vector cを得る 2018/10/25 11
Model • Hierarchical Decoder 1. cをDecoder(RNN)の 初期状態として与える 2. cと⼀つ前の出⼒を⼊⼒ として,RNNに与え, 出⼒を得る 3. 部分配列の⻑さ分の出⼒ を得る 2018/10/25 12
Model • Hierarchical Decoder 系列全体の⽣成が終了するまで, cから部分配列を⽣成することを 繰り返す 2018/10/25 13
Model • Hierarchical Decoder 系列全体の⽣成が終了するまで, cから部分配列を⽣成することを 繰り返す 2018/10/25 14
Model • Bidirectional Encoder • Hierarchical Decoder 2018/10/25 15
Data Web上から150万件のMIDIファイルを収集し,条件に合致するデータを抽出 • 2-bar melody • 16-bar melody • 2-bar drum • 16-bar drum • 16-bar Trio (Melody, Bass, Drum) 2018/10/25 16
検証 • (短い系列での確認) • 再構成誤差の⽐較 • 補間実験 • 属性ベクトルの評価 • ⼈間によるテスト 2018/10/24 17
Flat model (Encoder-Decoder VAE)で⾳楽の系列データを モデリングできるか確認 -> ⾼い精度で再構成できている 2018/10/24 18
Teacher-Forcing (Next step prediction), Samplingで再構成誤差を評価 -> Teacher-ForcingとSamplingの差が⼤きければ,Posterior Collapse 2018/10/26 19
c Flat decoder 2-bar: 差は⼩さい (3 – 6%) 16-bar: 差が⼤きい (27 – 32%) -> Flat decoderで,Posterior Collapseが起きている 2018/10/26 20
Hierarchical decoder Teacher-ForcingとSamplingの差が改善(5 – 11%) 2018/10/26 21
Trioにおいても,同様の傾向(FlatよりHierarchicalで差が⼩さくなる) 提案⼿法でPosterior Collapseが軽減されている 2018/10/26 22
• 滑らかに遷移するか • Semanticに意味があるか を補間により検証 2018/10/24 23
• 滑らかに遷移するか • Semanticに意味があるか を補間により検証 Hamming距離の推移 ⾔語モデルでの損失の相対値 の2つで検証 2018/10/26 24
• 滑らかに遷移するか • Semanticに意味があるか を補間により検証 Hamming距離の推移 ⾔語モデルでの損失の相対値 の2つで検証 HierarchicalはFlatと⽐較してDataに近い推移 -> より滑らかに推移している 2018/10/26 25
• 滑らかに遷移するか • Semanticに意味があるか を補間により検証 Hamming距離の推移 ⾔語モデルでの損失の相対値 の2つで検証 Hierarchicalでは,⾔語モデルでの損失が⼩ -> ⾳楽らしいものができている 2018/10/26 26
⾃動で計算できる5つの属性に着⽬し,ベクトル演算が可能か検証 - C Diatonic - ⾳符の密度 - Intervalの平均 - 16分⾳符シンコペーション - 8分⾳符シンコペーション ⾜し算(左),引き算(右)のベクトル 2018/10/26 27
C Diatonic • 中央:元データ • 上:⾜し算 • 下:引き算 2018/10/26 16分⾳符シンコペーション • 中央:元データ • 上:⾜し算 • 下:引き算 28
⼈間によるテスト Flat/Hierarchical(提案⼿法)/Realの中から最も良いものを選択 選択された回数を⽐較(全部で192回) 2018/10/24 29
結論 • Decoderを階層化したことにより, – ⻑い系列をモデル化できるようになった – Posterior collapseを防げるようになった • 階層化したモデルで,定量的・定性的に質の⾼い⾳楽を ⽣成できるようになった 2018/10/24 30
2018/10/24 31