您的位置:首页 > 产品设计 > UI/UE

Generating Sequences With Recurrent Neural Networks(1)

2017-09-25 13:24 369 查看
摘要

本文展示了LSTM循环神经网络如何能通过预测数据点来生成复杂序列。 该方法针对文本(其中数据是离散的)和在线手写(数据是实值的)进行了演示。 然后通过允许网络对文本序列进行预测来扩展到手写合成。 所产生的系统能够以各种各样的风格产生高度逼真的草书手写。

introduction

循环神经网络(RNN)是一类丰富的动态模型,已被用于在音乐,文本和运动数据的捕获。可以通过一次处理实际数据序列来一步一步地对RNN进行序列生成的训练,并预测接下来的内容。假设预测是概率性的,可以从训练网络通过从网络的输出分布迭代地采样来生成新的序列,然后在下一步中将样本作为输入。换句话说,让网络将其发明看作是真实的,就像一个人在做梦。 虽然网络本身是确定性的,但采摘样本注入的随机性会导致序列分布。 这种分配是有条件的,因为网络的内部状态,因此其预测分布取决于先前的输入。

在这个意义上,RNN是“模糊的”,他们不使用训练数据中的精确模板进行预测,而是像其他神经网络一样,使用他们的内部表示在训练示例之间执行高维插值。这将它们与n-gram模型和压缩算法(如部分匹配预测)区分开来,其预测分布是通过计算最近历史和训练集之间的精确匹配来确定的。本文样本中立即显现的结果是RNN(与基于模板的算法不同)以复杂的方式合成和重构训练数据,并且很少生成相同的事情两次。 此外,模糊预测不会受到维度的诅咒的影响,因此,与真实匹配相比,建模实值或多变量数据更好。

原则上,足够大的RNN应该足以产生任意复杂的序列。然而,在实践中,标准RNN无法存储关于过去输入的信息很长时间。除了能够模拟远距离结构的能力之外,这种“遗忘”使得它们在产生序列时容易出现不稳定。问题(所有条件生成模型都是共同的),如果网络的预测只是基于最后几个输入,而这些输入本身是由网络预测的,那么几乎没有机会从过去的错误中恢复过来。拥有更长的记忆力具有稳定的效果,因为即使网络无法理解其最近的历史,也可以进一步回顾过去的预测。不确定性的问题对于真实数据来说尤其严重,因为这些预测很容易偏离训练数据所在的多样性。为条件模型提出的一种补救方法是将噪声注入到预测中,然后再将其送回模型,从而将模型的鲁棒性提高到惊人的投入。不过,我们认为更好的记忆是一个更加深刻和
4000
有效的解决方案。

长时间短期存储器(LSTM)是一种RNN架构,旨在比标准RNN更好地存储和访问信息。LSTM最近在各种序列处理任务中提供了最先进的结果,包括语音和手写识别。本文的主要目的是证明LSTM可以利用其内存生成包含远程结构的复杂,逼真的序列。

第2节定义了由堆叠的LSTM层组成的“深”RNN,并解释了如何对下一步预测进行训练,从而对其进行序列生成。 第3节将预测网络应用于Penn Treebank和Hutter Prize Wikipedia数据集的文本。该网络的性能与最先进的语言模型具有竞争力,并且在一次预测一个字符时一样可以同时预测一个字。该部分的亮点是维基百科文本的生成示例,其中显示了网络建立远程依赖关系的能力。第4节演示了如何通过使用混合密度输出层将预测网络应用于实值数据,并在IAM在线手写数据库中提供实验结果。它还提供生成的手写样本,证明网络能够直接从笔迹学习字母和短语,并模拟手写风格的全球特征。第5节介绍了对预测网络的扩展,允许其在短的注释序列上对其输出进行调整,其与预测的对准是未知的。这使得它适用于手写合成,其中人类用户输入文本,并且算法生成其手写版本。

2 预测工作

      输入向量序列x =(x1;:::xT)通过加权连接传递到N个循环连接的隐藏层的堆栈,首先计算隐藏向量序列hn =(hn 1;::; hn T)然后计算输出向量序列y =(y1;::; yT)。 每个输入序列的第一个元素x1总是一个零向量,其条目全部为零; 因此,网络产生x2(第一实际输入,没有先前的信息)的预测。

跳过连接(dropout)可以解决梯度消失问题。在N = 1的特殊情况下,架构减少到普通的单步预测RNN。

特别是,为高维度,实值数据(通常称为密度建模)找到良好的预测分布可能是非常具有挑战性的。相对于网络权重的损失的偏导数可以通过应用于图1所示的计算图的时间[33]通过反向传播而被有效地计算,然后网络可以用梯度下降训练。

2.1 LSTM

LSTm在发现长时间依赖关系方面表现很好

具体的网络函数

原始LSTM算法使用自定义设计的近似梯度计算,允许在每个时间步长之后更新权重。 然而,完整的梯度可以通过时间的反向传播来计算。

?自定义设计的近似梯度

当我们在训练LSTM时,全梯度有可能导数会非常大,导致数值问题。

为了防止这种情况,本文中的所有实验都将相对于LSTM层的网络输入(在施加S形和tanh函数之前)的损耗的导数限制在预定义的范围内。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐