Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
vq-cpc
Search
Zhang Yixiao
August 07, 2020
0
340
vq-cpc
Zhang Yixiao
August 07, 2020
Tweet
Share
More Decks by Zhang Yixiao
See All by Zhang Yixiao
CoCon
ldzhangyx
0
330
MixPoet
ldzhangyx
4
360
diora
ldzhangyx
0
240
drummernet
ldzhangyx
0
190
ON-LSTM
ldzhangyx
0
150
Featured
See All Featured
For a Future-Friendly Web
brad_frost
175
9.4k
Producing Creativity
orderedlist
PRO
341
39k
Embracing the Ebb and Flow
colly
84
4.4k
A Tale of Four Properties
chriscoyier
156
23k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
The Cult of Friendly URLs
andyhume
78
6k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
32
1.8k
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
Building Applications with DynamoDB
mza
90
6.1k
Transcript
VECTOR QUANTIZED CONTRASTIVE PREDICTIVE CODING FOR TEMPLATE- BASED MUSIC GENERATION
Presented by Yixiao Zhang on Aug 7, 2020
CONTRASTIVE LEARNING 对比学习 • 是Self-Supervised Learning的代表 • 自监督学习 • 是监督学习的一个特例,其中训练数据集不是由人手动标记的
• 通过设计学习任务,让模型学习到更好的数据表示 • 自监督学习代表:BERT(通过Mask来学习更好的表示) • 对比学习被认为是 “CV领域的BERT” https://mp.weixin.qq.com/s/SOaA9XNnymLgGgJ5JNSdBg
CONTRASTIVE LEARNING 对比学习 • 尽管我们已经见过很多次钞票长什么样子,但我们很少能一模一样的画 出钞票;虽然我们画不出栩栩如生的钞票,但我们依旧可以轻易地辨别 出钞票。 • 表示学习算法不需要关注每一个细节,只需要使其足以区分其他样本 •
即学习一个映射函数:
CONTRASTIVE LEARNING 对比学习 • 一个典型的score就是向量内积: • 如果对于一个x,有1个负例和(N-1)个负例,那么Loss就是N分类问题。 • 这个score在对比学习中被称为InfoNCE。
CONTRASTIVE LEARNING 对比学习 • 最小化这个loss,就能最大化f(x)和f(x+)的mutual information的下界, • 让两者的表示更接近。 • 对比学习的核心问题:
• 如何定义一个合适的目标函数? • 如何构建正例和负例? • 三类经典模型:MoCo, SimCLR, Contrastive Predictive Coding(CPC)
MOCO(CVPR 2020) • a 将同一个batch的剩余样本作为负例。缺点:负例有batch size的限制 • b 将所有样本表示存起来,每次再随机采样。 缺点:内存、更新滞后
• MoCo 动态更新的queue作为负例缓存+使用momentum update
SIMCLR • MoCo重点:样本数量很重要 • SimCLR重点:构建负例的方式很重要 • 结论: • 对于样本进行变化,即构建正例和负例的 transformation
对于 结果至关重要 • 用 entropy loss 的 Contrastive Learning,可以通过 normalize representation embedding 以及 temperature adjustment 提升 • 在计算 loss 之前,让表示再过一个 non-linear hard 能大幅提升 效果(g()) • 大 batch-size 对于 CL 的增益比 Supervised Learning 更大
CPC • 更重视文本、音频数据;考虑了数据的时序性 • 用一定窗口内的Xt 和Xt+k作为Positive Pair • 从输入序列中随机采样一个输入Xt*作为负例 •
可以在z上增加自回归模型融入时序关系 • 最后既可以用z也可以用c
None
MAIN CONTRIBUTION OF THIS PAPER • 提出一种方法,给定template sequence,生成新颖的variation • 输出与输入有可感知的相似性,无需依赖任何label
• 原因是:无监督地学习了高级表示 • 为此,提出了一种自监督的编码技术:VQ-CPC • 以了解codebook上unit的有meaningful assignment • 允许控制这些信息 • 使用一个额外的Transformer,从z生成到variation • 实验在J. S. Bach的四声部合唱中完成
None
VQ-CPC
GENERATING VARIATIONS • 通过压缩序列,RNN被迫学习到higher-level的context • z只包含local的信息 • 因此,必须在latent code序列上保持宏观结构
GENERATION VARIATIONS • VQ至关重要。通过设置VQ-bottleneck,Transformer无法完美重建, 而VAE的Decoder可以完美重建。因此,code的数量非常关键。 • 设置为16或者32,比传统VQ少了一个数量级。 • 这样设置的目的是舍弃重构,提取高级表示。
TRANSFORMER DECODER • 给定 生成 • 使用seq2seq Transformer + relative
attention + mask
EXPERIMENTS • VQ-CPC Uniform: sampling subsequences uniformly from the dataset
• VQ-CPC Sameseq: sampling negative subsequences from the same (complete) sequence
None