目录
论文基本信息
- 2021 | ICLR | Categorical Normalizing Flows via Continuous Transformations | Phillip Lippe and Efstratios Gavves
背景
提出的方法
实验
- 实验中使用的标准化流由一系列逻辑混合耦合层logistic mixture coupling layers[1](将逻辑分布的混合映射回单个模式single mode)组成
- 对于本文提出的编码策略特别有意义,因为它最简单的实现是基于逻辑混合模型的
- 在每个耦合层之前还包括一个激活标准化activation normalization层和可逆1x1卷积[2]
- 所有实验都至少使用3个不同的随机种子来重复
- 语言建模
- 两个流行的字符水平character-level数据集Penn Treebank和text8,词大小分别是K = 51和K = 27;也测试一个词水平word-level数据集Wikitext103,K=10000,由于梯度近似,离散标准化流[3]无法处理
- Penn Treebank使用Mikolov的预处理,大致包含5M字符,词汇大小K = 51
- Text8包含100M字符,词汇大小K = 27,同样使用Mikolov的预处理,将数据集分成90M来训练,5M字符分别用于验证和测试。以序列长度256来训练和测试模型
- Wikitext103:创建词汇,并限制最常见的10000个词(训练语料库)。使用预训练Glove[5]嵌入来表示基线LSTM中的词和来确定类标准化流的编码分布中逻辑混合参数。由于混合参数的计算,使用一个小的线性网络作为解码器。这个线性网络由三个大小为512且带有GELU激活的线性层组成,且输出大小为10000。与text8一样,以输入序列长度256训练和测试模型
- 遵循[4]对Penn Treebank的执行(最长序列长度288),且对另两个数据集在256tokens的序列上进行训练
- 不使用句尾标记end-of-sentence token,而是将长度传递给模型并由外部离散先验编码,该先验编码是基于训练数据集中的句子长度创建的
- 每个流应用单个混合耦合层,在隐含和时间维度上是自回归的
- 对所有流和基线都使用隐含大小为1024的相同LSTM
- 如下表所示:具有单层的类标准化流和自回归基线性能相当;和[4]中的流相比,当只使用1而不是5个流时,我们看到了显著的改进,这表明使用分解后验factorized posterior的重要性;对于词水平语言建模,单个混合耦合层不够灵活去学习所有可能的序列,或许需要使用更深的流来提升
- 下表是超参数。对于字符水平,最佳隐含维数是3,而对于词水平,则增加隐含维数到10。因为Penn Treebank有个小的训练集,在LSTM上容易过拟合,所以在模型中使用dropout为0.3,在输入token使用dropout为0.1。其他数据集则稍微受益于小的输入dropout,以防止在训练后期的过拟合
参考文献
- [1] 2019 | ICML | Flow++: Improving Flow-Based Generative Models with Variational Dequantization and Architecture Design | Jonathan Ho et al.
- [2] 2018 | NIPS | Glow: Generative Flow with Invertible 1x1 Convolutions | Diederik P. Kingma et al.
- [3] 2019 | NIPS | Discrete Flows: Invertible Generative Models of Discrete Data | Dustin Tran et al.
- [4] 2019 | ICML | Latent Normalizing Flows for Discrete Sequences | Zachary M. Ziegler and Alexander M. Rush
- [5] 2014 | EMNLP | Glove: Global Vectors for Word Representation | Jeffrey Pennington et al.