论文《A Recurrent Latent Variable Model for Sequential Data》翻译
以下是您提供的论文《A Recurrent Latent Variable Model for Sequential Data》的中文翻译,并附上其使用的数据集信息。
一种用于序列数据的循环潜在变量模型
摘要
在本文中,我们通过结合变分自编码器的元素,探索将潜在随机变量引入循环神经网络(RNN)的隐藏状态。我们认为,通过使用高层级的潜在随机变量,变分RNN(VRNN)可以对自然语音等高度结构化序列数据中观察到的可变性进行建模。我们在四个语音数据集和一个手写数据集上,将所提出的模型与其他相关的序列模型进行了实证评估。我们的结果表明了潜在随机变量在RNN动态中所能发挥的重要作用。
代码可在 nips2015_vrnn 获取
1 引言
学习序列的生成模型是机器学习领域一个长期存在的挑战,历史上是动态贝叶斯网络(DBN)的领域,例如隐马尔可夫模型(HMMs)和卡尔曼滤波器。最近,人们对基于循环神经网络(RNN)的方法重新产生了兴趣,从而颠覆了基于DBN方法的主导地位。RNN是一种特殊类型的神经网络,能够处理变长的输入和输出。通过训练一个RNN来预测序列中的下一个输出(给定所有先前的输出),它可以用来对序列上的联合概率分布进行建模。
RNN和DBN都包含两个部分:
(1) 决定内部隐藏状态演化的转移函数,以及
(2) 从状态到输出的映射。然而,RNN和DBN之间存在一些重要差异。
DBN通常要么受限于相对简单的状态转移结构(例如,卡尔曼滤波器中的线性模型),要么受限于相对简单的内部状态结构(例如,HMM的状态空间由一组互斥的状态组成)。而RNN通常同时具有丰富的分布式内部状态表示和灵活的非线性转移函数。这些差异使得RNN相比DBN具有更强的表达能力。这种表达能力以及通过误差反向传播进行训练的能力,是RNN作为高度结构化序列数据生成模型而流行起来的关键原因。
在本文中,我们关注RNN和DBN之间的另一个重要差异。虽然DBN中的隐藏状态是用随机变量来表示的,但标准RNN的内部转移结构完全是确定性的。RNN中唯一随机性或可变性的来源在于条件输出概率模型。我们认为,这对于建模自然语音等高度结构化数据中观察到的可变性来说,可能是一种不恰当的方式,这类数据的特点是不同时间步的输出变量之间存在强烈而复杂的依赖关系。正如其他研究者 [4, 2] 所指出的,这些复杂的依赖关系无法被标准RNN中使用的输出概率模型(包括简单的单峰分布或单峰分布的混合)有效建模。
我们建议使用高层级的潜在随机变量来对数据中观察到的可变性进行建模。在非序列数据的标准神经网络模型中,变分自编码器(VAE) [11, 17] 提供了一种有趣的组合:在潜在随机状态和观测输出之间具有高度灵活的非线性映射,以及有效的近似推断。在本文中,我们提议将VAE扩展为一个循环框架,以对高维序列进行建模。VAE可以对复杂的多峰分布进行建模,这在底层真实数据分布由多峰条件分布组成时会很有帮助。我们将此模型称为变分RNN(VRNN)。
一个很自然的问题是:我们如何通过潜在随机变量来编码观测到的可变性?这个问题的答案取决于数据本身的性质。在本工作中,我们主要关注AI应用中常见的高度结构化数据。所谓高度结构化,我们指的是数据具有两个特性。首先,信噪比较高,这意味着观察到的大部分可变性都是由信号本身引起的,不能合理地视为噪声。其次,潜在的变化因素与观测数据之间存在复杂的关系。例如,在语音中,说话人的声音特质对音频波形有强烈但复杂的影响,以一种跨帧的一致方式影响波形。
考虑到这些因素,我们认为模型的可变性应该在时间步之间诱导出时间依赖性。因此,像HMMs和卡尔曼滤波器等DBN模型一样,我们对跨时间步的潜在随机变量之间的依赖关系进行建模。虽然我们不是第一个提出将随机变量整合到RNN隐藏状态 [4, 2, 6, 8] 的人,但我们相信我们是第一个整合相邻时间步潜在随机变量之间依赖关系的人。
我们在两种具有挑战性的序列数据类型上评估了所提出的VRNN模型:自然语音和手写。我们证明了对于语音建模任务,基于VRNN的模型显著优于基于RNN的模型,以及没有整合潜在随机变量之间时间依赖性的VRNN模型。
2 背景
2.1 使用循环神经网络进行序列建模
RNN可以通过递归处理每个符号同时保持其内部隐藏状态hhh,来接收变长序列 x=(x1,x2,...,xT)x=(x_1, x_2,..., x_T)x=(x1,x2,...,xT) 作为输入。在每个时间步ttt,RNN读取符号 xt∈Rdx_t ∈ R^dxt∈Rd 并更新其隐藏状态ht∈Rph_t ∈ R^pht∈Rp:
ht=fθ(xt,ht−1)(1)\mathbf{h}_{t} = f_{\theta} \left( \mathbf{x}_{t}, \mathbf{h}_{t - 1} \right) \tag{1} ht=fθ(xt,ht−1)(1)
其中fff是一个确定性的非线性转移函数,θθθ是fff的参数集。转移函数fff可以用门控激活函数实现,例如长短期记忆 [LSTM, 9] 或门控循环单元 [GRU, 5] 。RNN通过将联合序列概率分布的分解参数化为条件概率的乘积来对序列进行建模:
p(x1,x2,…,xT)=∏t=1Tp(xt∣x<t)p(\mathbf{x}_{1}, \mathbf{x}_{2}, \ldots, \mathbf{x}_{T}) = \prod_{t=1}^{T} p(\mathbf{x}_{t} \mid \mathbf{x}_{<t}) p(x1,x2,…,xT)=t=1∏Tp(xt∣x<t)
p(xt∣x<t)=gτ(ht−1)(2)p(\mathbf{x}_{t} \mid \mathbf{x}_{<t}) = g_{\tau}(\mathbf{h}_{t-1}) \tag{2} p(xt∣x<t)=gτ(ht−1)(2)
其中ggg是一个将RNN隐藏状态 ht−1\mathbf{h}_{t-1}ht−1 映射到可能输出上的概率分布的函数,τ\tauτ是ggg的参数集。
决定RNN表示能力的一个主要因素是公式(2)中的输出函数ggg。在转移函数fff是确定性的情况下,ggg的选择实际上定义了RNN能够表达的联合概率分布 p(x1,x2,…,xT)p(\mathbf{x}_{1}, \mathbf{x}_{2}, \ldots, \mathbf{x}_{T})p(x1,x2,…,xT) 族。
我们可以将公式(2)中的输出函数ggg表示为由两部分组成。第一部分φτ\varphi_{\tau}φτ是一个函数,它根据隐藏状态 ht−1\mathbf{h}_{t-1}ht−1 返回参数集 ϕt\phi_{t}ϕt,即ϕt=φτ(ht−1)\phi_{t} = \varphi_{\tau}(\mathbf{h}_{t-1})ϕt=φτ(ht−1),而ggg的第二部分返回xtx_txt的密度,即pϕt(xt∣x<t)p_{\phi_{t}}\left(\mathbf{x}_{t} \mid \mathbf{x}_{<t}\right)pϕt(xt∣x<t)。
在对高维和实值序列进行建模时,一个合理的观测模型选择是高斯混合模型(GMM),如[7]中所用。对于GMM,φτ\varphi_{\tau}φτ返回相应混合成分的混合系数αt\boldsymbol{\alpha}_{t}αt、均值μ⋅,t\boldsymbol{\mu}_{\cdot,t}μ⋅,t和协方差Σ⋅,t\boldsymbol{\Sigma}_{\cdot,t}Σ⋅,t。混合分布下xt\mathbf{x}_{t}xt的概率为:
pαt,μ⋅,t,Σ⋅,t(xt∣x<t)=∑jαj,tN(xt;μj,t,Σj,t)p_{\boldsymbol{\alpha}_{t},\boldsymbol{\mu}_{\cdot,t},\boldsymbol{\Sigma}_{\cdot,t}}(\mathbf{x}_{t} \mid \mathbf{x}_{<t}) = \sum_{j} \alpha_{j,t} \mathcal{N}(\mathbf{x}_{t}; \boldsymbol{\mu}_{j,t}, \boldsymbol{\Sigma}_{j,t}) pαt,μ⋅,t,Σ⋅,t(xt∣x<t)=j∑αj,tN(xt;μj,t,Σj,t)
除了[7]之外,很少有工作研究用于实值序列的RNN的结构化输出密度模型。
RNN对输出可变性建模的方式可能存在一个显著问题。给定一个确定性的转移函数,可变性的唯一来源在于条件输出概率密度。当对同时具有高度可变性和高度结构化(即信噪比较高)的序列进行建模时,这可能会带来问题。为了有效建模这类序列,RNN必须能够将xt\mathbf{x}_{t}xt中的微小变化(即唯一的随机性来源)映射到隐藏状态ht\mathbf{h}_{t}ht的潜在巨大变化上。为了防止过拟合而必须限制网络的容量,这将迫使在生成与训练数据一致的清晰信号和编码足够的输入可变性以捕获单个观测序列内和跨数据样本的高层级可变性之间做出妥协。
之前已经注意到RNN需要高度结构化的输出函数。Boulanger-lewandowski等人 [4] 广泛测试了NADE和基于RBM的输出密度,用于对音乐的二进制向量表示序列进行建模。Bayer和Osendorfer[2]引入了对应于RNN状态的一系列独立潜在变量。他们的模型,称为STORN,首先从一系列独立的潜在随机变量中生成一个样本序列z=(z1,...,zT)\mathbf{z}=(\mathbf{z}_{1},..., \mathbf{z}_{T})z=(z1,...,zT)。在每个时间步,公式(1)中的转移函数f根据先前的状态ht−1\mathbf{h}_{t−1}ht−1、先前的输出xt−1\mathbf{x}_{t−1}xt−1和采样的潜在随机变量zt\mathbf{z}_{t}zt计算下一个隐藏状态ht\mathbf{h}_{t}ht。他们提议基于VAE原理(见第2.2节)来训练此模型。
类似地,Pachitariu和Sahani[16]更早地提出了RNN的一系列独立潜在随机变量和一个随机隐藏状态。
这些方法与本文提出的方法密切相关。然而,在如何对潜在随机变量的先验分布进行建模方面存在一个主要差异。与上述方法不同,我们的方法使得时间ttt的潜在随机变量的先验分布通过RNN隐藏状态ht−1\mathbf{h}_{t-1}ht−1依赖于所有先前的输入(见公式(5))。
将时间结构引入先验分布预计会提高模型的表示能力,我们在实验中经验性地观察到了这一点(见表1)。
然而,重要的是要注意,任何基于具有随机潜在状态的方法与具有结构化输出函数的方法都是正交的,这两种方法可以结合使用形成一个单一模型。
2.2 变分自编码器
对于非序列数据,VAE[11, 17]最近被证明是一种有效的建模范式,可以从数据空间中恢复复杂的多峰分布。VAE引入了一组潜在随机变量z\mathbf{z}z,旨在捕捉观测变量x\mathbf{x}x中的变化。作为一个有向图模型的例子,联合分布被定义为:
p(x,z)=p(x∣z)p(z)(3)p(\mathbf{x}, \mathbf{z}) = p(\mathbf{x} \mid \mathbf{z}) p(\mathbf{z}) \tag{3}p(x,z)=p(x∣z)p(z)(3)
潜在随机变量的先验 p(z)p(\mathbf{z})p(z) 通常被选择为一个简单的高斯分布,而条件p(x∣z)p(\mathbf{x} \mid \mathbf{z})p(x∣z)是一个任意的观测模型,其参数由z\mathbf{z}z的参数函数计算得出。重要的是,VAE通常用一个高度灵活的函数逼近器(如神经网络)来参数化p(x∣z)p(\mathbf{x} \mid \mathbf{z})p(x∣z)。虽然像公式(3)给出的这种形式的潜在随机变量模型并不罕见,但将条件p(x∣z)p(\mathbf{x} \mid \mathbf{z})p(x∣z)赋予从z\mathbf{z}z到x\mathbf{x}x的潜在高度非线性映射,是VAE的一个相当独特的特征。
然而,从z\mathbf{z}z到x\mathbf{x}x引入高度非线性映射会导致后验p(z∣x)p(\mathbf{z} \mid \mathbf{x})p(z∣x)的推断变得棘手。相反,VAE使用后验的变分近似q(z∣x)q(\mathbf{z} \mid \mathbf{x})q(z∣x),这使得可以使用下界:
logp(x)≥−KL(q(z∣x)∥p(z))+Eq(z∣x)[logp(x∣z)](4)\log p(\mathbf{x}) \geq -\mathrm{KL}(q(\mathbf{z} \mid \mathbf{x}) \| p(\mathbf{z})) + \mathbb{E}_{q(\mathbf{z} \mid \mathbf{x})} \left[ \log p(\mathbf{x} \mid \mathbf{z}) \right] \quad (4) logp(x)≥−KL(q(z∣x)∥p(z))+Eq(z∣x)[logp(x∣z)](4)
其中KL(Q∥P)\mathrm{KL}(Q \| P)KL(Q∥P)是两个分布Q和P之间的Kullback-Leibler散度。
在[11]中,近似后验q(z∣x)q(\mathbf{z} \mid \mathbf{x})q(z∣x)是一个高斯分布N(μ,diag(σ2))\mathcal{N}(\boldsymbol{\mu}, \mathrm{diag}(\boldsymbol{\sigma}^{2}))N(μ,diag(σ2)),其均值μ\boldsymbol{\mu}μ和方差σ2\boldsymbol{\sigma}^{2}σ2是x\mathbf{x}x的高度非线性函数的输出,通常再次是神经网络。然后,生成模型p(x∣z)p(\mathbf{x} \mid \mathbf{z})p(x∣z)和推断模型q(z∣x)q(\mathbf{z} \mid \mathbf{x})q(z∣x)通过关于其参数最大化变分下界来联合训练,其中关于q(z∣x)q(\mathbf{z} \mid \mathbf{x})q(z∣x)的积分是随机近似的。通过重新参数化 z=μ+σ⊙ϵ\mathbf{z} = \boldsymbol{\mu} + \boldsymbol{\sigma} \odot \boldsymbol{\epsilon}z=μ+σ⊙ϵ 并重写:
Eq(z∣x)[logp(x∣z)]=Ep(ϵ)[logp(x∣z=μ+σ⊙ϵ)]\mathbb{E}_{q(\mathbf{z} \mid \mathbf{x})} \left[ \log p(\mathbf{x} \mid \mathbf{z}) \right] = \mathbb{E}_{p(\boldsymbol{\epsilon})} \left[ \log p(\mathbf{x} \mid \mathbf{z} = \boldsymbol{\mu} + \boldsymbol{\sigma} \odot \boldsymbol{\epsilon}) \right] Eq(z∣x)[logp(x∣z)]=Ep(ϵ)[logp(x∣z=μ+σ⊙ϵ)]
其中ϵ\boldsymbol{\epsilon}ϵ是标准高斯变量的向量。然后,推断模型可以通过标准的反向传播技术进行随机梯度下降训练。
3 变分循环神经网络
在本节中,我们介绍了一种用于序列建模的VAE的循环版本。
借鉴HMMs和卡尔曼滤波器等更简单的动态贝叶斯网络(DBNs),所提出的变分循环神经网络(VRNN)明确地对后续时间步之间的潜在随机变量的依赖关系进行建模。然而,与这些更简单的DBN模型不同,VRNN保留了对高度非线性动态进行建模的灵活性。
生成过程
VRNN在每个时间步都包含一个VAE。然而,这些VAE以RNN的状态变量ht−1\mathbf{h}_{t−1}ht−1为条件。这一添加将帮助VAE考虑序列数据的时间结构。与标准VAE不同,潜在随机变量的先验不再是标准高斯分布,而是遵循以下分布:
zt∼N(μ0,t,diag(σ0,t2)),where [μ0,t,σ0,t]=φτprior(ht−1)(5)\mathbf{z}_{t} \sim \mathcal{N}(\boldsymbol{\mu}_{0,t}, \operatorname{diag}(\boldsymbol{\sigma}_{0,t}^{2})), \quad \text{where } [\boldsymbol{\mu}_{0,t}, \boldsymbol{\sigma}_{0,t}] = \varphi_{\tau}^{\text{prior}}(\mathbf{h}_{t-1}) \tag{5}zt∼N(μ0,t,diag(σ0,t2)),where [μ0,t,σ0,t]=φτprior(ht−1)(5)
其中μ0,t\boldsymbol{\mu}_{0,t}μ0,t和σ0,t\boldsymbol{\sigma}_{0,t}σ0,t表示条件先验分布的参数。此外,生成分布不仅以zt\mathbf{z}_{t}zt为条件,也以ht−1\mathbf{h}_{t−1}ht−1为条件,使得:
xt∣zt∼N(μx,t,diag(σx,t2)),where [μx,t,σx,t]=φτdec(φτz(zt),ht−1)(6)\mathbf{x}_{t} \mid \mathbf{z}_{t} \sim \mathcal{N}(\boldsymbol{\mu}_{x,t}, \operatorname{diag}(\boldsymbol{\sigma}_{x,t}^{2})), \quad \text{where } [\boldsymbol{\mu}_{x,t}, \boldsymbol{\sigma}_{x,t}] = \varphi_{\tau}^{\text{dec}}(\varphi_{\tau}^{\mathbf{z}}(\mathbf{z}_{t}), \mathbf{h}_{t-1}) \tag{6}xt∣zt∼N(μx,t,diag(σx,t2)),where [μx,t,σx,t]=φτdec(φτz(zt),ht−1)(6)
其中μx,t\boldsymbol{\mu}_{x,t}μx,t和σx,t\boldsymbol{\sigma}_{x,t}σx,t表示生成分布的参数,φτprior\varphi_{\tau}^{\text{prior}}φτprior和φτdec\varphi_{\tau}^{\text{dec}}φτdec可以是任何高度灵活的函数,如神经网络。φτx\varphi_{\tau}^{\mathbf{x}}φτx和φτz\varphi_{\tau}^{\mathbf{z}}φτz也可以是神经网络,分别从xt\mathbf{x}_{t}xt和zt\mathbf{z}_{t}zt中提取特征。我们发现这些特征提取器对于学习复杂序列至关重要。RNN使用递归方程更新其隐藏状态:
ht=fθ(φτx(xt),φτz(zt),ht−1)(7)\mathbf{h}_{t} = f_{\theta}\left( \varphi_{\tau}^{\mathbf{x}}(\mathbf{x}_{t}), \varphi_{\tau}^{\mathbf{z}}(\mathbf{z}_{t}), \mathbf{h}_{t-1} \right) \tag{7}ht=fθ(φτx(xt),φτz(zt),ht−1)(7)
其中fff最初是公式(1)中的转移函数。从公式(7)中,我们发现ht\mathbf{h}_{t}ht是x<t\mathbf{x}_{<t}x<t和z<t\mathbf{z}_{<t}z<t的函数。因此,公式(5)和公式(6)分别定义了分布p(zt∣x<t,z<t)p(\mathbf{z}_{t} \mid \mathbf{x}_{<t}, \mathbf{z}_{<t})p(zt∣x<t,z<t)和p(xt∣z≤t,x<t)p(\mathbf{x}_{t} \mid \mathbf{z}_{\leq t}, \mathbf{x}_{<t})p(xt∣z≤t,x<t)。生成模型的参数化导致并由以下分解驱动:
p(x≤T,z≤T)=∏t=1Tp(xt∣z≤t,x<t)p(zt∣x<t,z<t)(8)p(\mathbf{x}_{\leq T}, \mathbf{z}_{\leq T}) = \prod_{t=1}^{T} p(\mathbf{x}_{t} \mid \mathbf{z}_{\leq t}, \mathbf{x}_{<t}) \, p(\mathbf{z}_{t} \mid \mathbf{x}_{<t}, \mathbf{z}_{<t}) \tag{8}p(x≤T,z≤T)=t=1∏Tp(xt∣z≤t,x<t)p(zt∣x<t,z<t)(8)
推断过程
类似地,近似后验不仅将是xt\mathbf{x}_{t}xt的函数,也将是ht−1\mathbf{h}_{t-1}ht−1的函数,遵循以下方程:
zt∣xt∼N(μz,t,diag(σz,t2)),where [μz,t,σz,t]=φτenc(φτx(xt),ht−1)(9)\mathbf{z}_{t} \mid \mathbf{x}_{t} \sim \mathcal{N}(\boldsymbol{\mu}_{z,t}, \operatorname{diag}(\boldsymbol{\sigma}_{z,t}^{2})), \quad \text{where } [\boldsymbol{\mu}_{z,t}, \boldsymbol{\sigma}_{z,t}] = \varphi_{\tau}^{\text{enc}}(\varphi_{\tau}^{\mathbf{x}}(\mathbf{x}_{t}), \mathbf{h}_{t-1}) \tag{9}zt∣xt∼N(μz,t,diag(σz,t2)),where [μz,t,σz,t]=φτenc(φτx(xt),ht−1)(9)
同样,μz,t\boldsymbol{\mu}_{z,t}μz,t和σz,t\boldsymbol{\sigma}_{z,t}σz,t表示近似后验的参数。我们注意到,近似后验的编码和生成的解码通过RNN隐藏状态ht−1\mathbf{h}_{t-1}ht−1联系在一起。我们还观察到,这种对ht−1\mathbf{h}_{t-1}ht−1的条件作用导致了以下分解:
q(z≤T∣x≤T)=∏t=1Tq(zt∣x≤t,z<t)(10)q(\mathbf{z}_{\leq T} \mid \mathbf{x}_{\leq T}) = \prod_{t=1}^{T} q(\mathbf{z}_{t} \mid \mathbf{x}_{\leq t}, \mathbf{z}_{<t}) \tag{10}q(z≤T∣x≤T)=t=1∏Tq(zt∣x≤t,z<t)(10)
图1:VRNN每个操作的图形说明:(a) 使用公式(5)计算条件先验;(b) 使用公式(6)的生成函数;( c) 使用公式(7)更新RNN隐藏状态;(d) 使用公式(9)推断近似后验;(e) VRNN的整体计算路径。
学习过程
目标函数变成了使用公式(8)和公式(10)的逐时间步变分下界:
Eq(z≤T∣x≤T)[∑t=1T(−KL(q(zt∣x≤t,z<t)∥p(zt∣x<t,z<t))+logp(xt∣z≤t,x<t))](11)\mathbb{E}_{q\left(\mathbf{z}_{\leq T} \mid \mathbf{x}_{\leq T}\right)} \left[ \sum_{t=1}^{T} \left( -\mathrm{KL} \left( q\left( \mathbf{z}_{t} \mid \mathbf{x}_{\leq t}, \mathbf{z}_{<t} \right) \| p\left( \mathbf{z}_{t} \mid \mathbf{x}_{<t}, \mathbf{z}_{<t} \right) \right) + \log p\left( \mathbf{x}_{t} \mid \mathbf{z}_{\leq t}, \mathbf{x}_{<t} \right) \right) \right] \tag{11} Eq(z≤T∣x≤T)[t=1∑T(−KL(q(zt∣x≤t,z<t)∥p(zt∣x<t,z<t))+logp(xt∣z≤t,x<t))](11)
与标准VAE一样,我们通过关于其参数最大化变分下界来联合学习生成模型和推断模型。VRNN的示意图如图1所示,操作(a)–(d)分别对应于公式(5)–(7),(9)。当计算条件先验(见公式(5))时,VRNN应用操作(a)。如果VRNN的变体(VRNN-I)不应用操作(a),则先验在时间步上变得独立。
STORN[2]可以被认为是VRNN-I模型族的一个实例。事实上,STORN对近似推断模型的依赖结构施加了进一步的限制。我们在实验评估中包含了此版本的模型(VRNN-I),以直接研究在潜在随机变量的先验(即条件先验)中包含时间依赖结构的影响。
4 实验设置
我们在两个任务上评估了所提出的VRNN模型:
(1) 直接从原始音频波形对自然语音进行建模;
(2) 对手写生成进行建模。
语音建模
我们训练模型直接对原始音频信号进行建模,这些信号被表示为200维帧的序列。每一帧对应于200个连续原始声学样本的实值幅度。请注意,这与语音合成中通常使用的建模语音的方法不同,后者通常在频谱特征等表示上进行建模[例如,参见 [18, 3, 13]。
我们在以下四个语音数据集上评估模型:
- Blizzard: 这个由Blizzard Challenge 2013提供的文本到语音数据集包含300小时的英语,由一位女性说话人说出[10]。
- TIMIT: 这个广泛用于基准测试语音识别系统的数据集包含6300个英语句子,由630位说话人朗读。
- Onomatopoeia: 这是一组6738个非语言的人造声音,如咳嗽、尖叫、大笑和喊叫,由51位配音演员录制。
- Accent: 这个数据集包含2046位不同母语和非母语英语说话人朗读的英语段落 [19]。
对于Blizzard和Accent数据集,我们处理数据,使每个样本的持续时间为0.5秒(使用的采样频率为16kHz)。除了TIMIT数据集外,其余数据集没有预定义的训练/测试分割。我们使用0.9/0.05/0.05的比例对数据进行打乱并划分为训练/验证/测试集。
手写生成
我们让每个模型使用IAM-OnDB数据集学习(x, y)坐标序列以及笔尖抬起/落下的二元指示符,该数据集由500位作者书写的13040行手写文本组成[14]。我们按照[7]中的方法对数据集进行预处理和分割。
预处理和训练
我们实验中使用的唯一预处理是使用整个训练集计算出的全局均值和标准差对每个序列进行归一化。我们使用Adam优化器[12],在负对数似然上使用随机梯度下降来训练每个模型,TIMIT和Accent的学习率为0.001,其余为0.0003。Blizzard和Accent的minibatch大小为128,其余为64。最终模型是根据验证集性能通过早停法选择的。
模型
我们将VRNN模型与使用两种不同输出函数的标准RNN模型进行比较:一个简单的高斯分布(Gauss)和一个高斯混合模型(GMM)。对于每个数据集,我们还进行了一组额外的实验,针对一个没有条件先验的VRNN模型(VRNN-I)。
我们固定每个模型具有一个循环隐藏层,包含2000个LSTM单元(对于Blizzard为4000,对于IAM-OnDB为1200)。公式(5)–(7),(9)中显示的所有φτ\varphi_{\tau}φτ都有四个使用修正线性单元[15]的隐藏层(对于IAM-OnDB,我们使用一个隐藏层)。标准RNN模型只有φτx\varphi_{\tau}^{\text{x}}φτx和φτdec\varphi_{\tau}^{\text{dec}}φτdec,而VRNN模型还有φτz\varphi_{\tau}^{\text{z}}φτz, φτenc\varphi_{\tau}^{\text{enc}}φτenc和φτprior\varphi_{\tau}^{\text{prior}}φτprior。对于标准RNN模型,φτx\varphi_{\tau}^{\text{x}}φτx是特征提取器,φτdec\varphi_{\tau}^{\text{dec}}φτdec是生成函数。对于RNN-GMM和VRNN模型,我们将深度神经网络(DNN)的总参数数φτx,z,enc,dec,prior\varphi_{\tau}^{\text{x,z,enc,dec,prior}}φτx,z,enc,dec,prior与RNN-Gauss模型的总参数数尽可能匹配,RNN-Gauss模型在属于φτx\varphi_{\tau}^{\text{x}}φτx或φτdec\varphi_{\tau}^{\text{dec}}φτdec的每一层有600个隐藏单元(在Blizzard的情况下考虑800个隐藏单元)。请注意,对于使用GMM作为输出函数的模型,我们使用20个混合成分。
对于语音生成的定性分析,我们训练了更大的模型来生成音频序列。我们堆叠了三个循环隐藏层,每层包含3000个LSTM单元。同样,对于RNN-GMM和VRNN模型,我们将DNN的总参数数与RNN-Gauss模型的总参数数匹配,RNN-Gauss模型在属于φτx\varphi_{\tau}^{\text{x}}φτx或φτdec\varphi_{\tau}^{\text{dec}}φτdec的每一层有3200个隐藏单元。
5 结果与分析
我们在表1中报告了每个模型分配给测试样本的平均对数似然。对于RNN-Gauss和RNN-GMM,我们报告确切的对数似然,而对于VRNN,我们报告变分下界(用≥符号表示,见公式(4))和基于重要性采样(使用40个样本,如[17]中)的近似边缘对数似然(用≈符号表示)。
通常,数值越高越好。我们的结果表明,VRNN模型具有更高的对数似然,这支持了我们的观点,即潜在随机变量在对复杂序列进行建模时是有帮助的。即使使用单峰输出函数(VRNN-Gauss),VRNN模型也表现良好,而标准RNN模型则不然。
潜在空间分析
在图2中,我们展示了对潜在随机变量的分析。我们让一个VRNN模型读取一些未见过的例子,并观察潜在空间中的转换。我们在每个时间步计算δt=∑j(μz,tj−μz,t−1j)2\delta_{t} = \sum_{j} \left( \boldsymbol{\mu}_{z,t}^{j} - \boldsymbol{\mu}_{z,t-1}^{j} \right)^{2}δt=∑j(μz,tj−μz,t−1j)2,并将结果绘制在图2的顶行。中间行显示了按时间顺序排列的主导KL散度值。当波形发生转换时,KL散度往往会增大(白色为高),我们可以清楚地观察到δt\delta_{t}δt的峰值,这会影响RNN动态以改变模态。
图3:来自训练集的样本以及RNN-GMM和VRNN-Gauss生成的样本。(a) 真实样本 (b) RNN-GMM ( c)VRNN-Gauss。前三行显示全局波形,后三行显示更放大的波形。来自(b) RNN-GMM的样本包含高频噪声,而来自© VRNN-Gauss的样本噪声较少。我们排除了RNN-Gauss,因为其样本几乎接近纯噪声。
语音生成
我们从在Blizzard上训练的模型生成了2.0秒持续时间的波形。从图3中,我们可以清楚地看到,来自VRNN-Gauss的波形比来自RNN-GMM的波形要少得多的噪声和更少的虚假峰值。我们认为,RNN-GMM模型波形中明显的大量噪声是这些模型在表示与训练数据一致的清晰信号和编码足够的输入可变性以捕获跨数据样本的变化之间必须做出妥协的结果。潜在随机变量模型可以通过在潜在空间中添加可变性来避免这种妥协,这总是可以映射到一个相对干净样本附近的点。
手写生成
对从训练模型生成的手写体(如图4所示)的视觉检查表明,VRNN模型能够在生成过程中保持一致性的同时生成更多样化的书写风格。
图4:手写样本:(a) 训练样本和无条件生成的手写体来自(b) RNN-Gauss, (c) RNN-GMM和(d) VRNN-GMM。VRNN-GMM从头到尾保持书写风格,而RNN-Gauss和RNN-GMM在生成过程中倾向于改变书写风格。这可能是因为顺序的潜在随机变量可以引导模型以一致的书写风格生成每个样本。
6 结论
我们提出了一种新颖的模型,通过将潜在随机变量整合到循环神经网络(RNN)中来解决序列建模问题。我们的实验重点是无条件的自然语音生成以及手写生成。我们表明,引入潜在随机变量可以显著改善对自然语音序列等高度结构化序列的建模。我们通过实验证明,在高层级潜在空间中引入随机性可以使VRNN使用简单的高斯分布作为输出函数来对自然语音序列进行建模。然而,使用相同输出函数的标准RNN模型无法生成合理的样本。使用更强大输出函数(如GMM)的基于RNN的模型可以生成好得多的样本,但与基于VRNN的模型生成的样本相比,它们包含大量高频噪声。
我们还通过报告在对自然语音序列建模时更高的对数似然数值,展示了潜在随机变量时间条件化的重要性。在手写生成中,VRNN模型能够对跨样本的多样性进行建模,同时在生成过程中保持一致的书写风格。
致谢
作者感谢Theano[1]的开发者。同时,作者感谢Kyunghyun Cho, Kelvin Xu和Sungjin Ahn提供的深刻评论和讨论。我们感谢以下机构为研究资金和计算支持提供的支持:Ubisoft, Nuance Foundation, NSERC, Calcul Québec, Compute Canada, 加拿大研究主席和CIFAR。
参考文献
[1] F. Bastien, P. Lamblin, R. Pascanu, J. Bergstra, I. J. Goodfellow, A. Bergeron, N. Bouchard, and Y. Bengio. Theano: new features and speed improvements. Deep Learning and Unsupervised Feature Learning NIPS 2012 Workshop, 2012.
[2] J. Bayer and C. Osendorfer. Learning stochastic recurrent networks. arXiv preprint arXiv:1411.7610, 2014.
… (其余参考文献略)