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
340
MixPoet
ldzhangyx
4
370
diora
ldzhangyx
0
240
drummernet
ldzhangyx
0
190
ON-LSTM
ldzhangyx
0
150
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.5k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
A designer walks into a library…
pauljervisheath
204
24k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
YesSQL, Process and Tooling at Scale
rocio
169
14k
What's in a price? How to price your products and services
michaelherold
243
12k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
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