CategoricalNF

目录

论文基本信息

  • 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的重要性;对于词水平语言建模,单个混合耦合层不够灵活去学习所有可能的序列,或许需要使用更深的流来提升
      CategoricalNF
    • 下表是超参数。对于字符水平,最佳隐含维数是3,而对于词水平,则增加隐含维数到10。因为Penn Treebank有个小的训练集,在LSTM上容易过拟合,所以在模型中使用dropout为0.3,在输入token使用dropout为0.1。其他数据集则稍微受益于小的输入dropout,以防止在训练后期的过拟合
      CategoricalNF

参考文献

  • [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.
上一篇:Python 创建XML 的三种方式


下一篇:android 实现TextView多样式