Generating Text with Deep Reinforcement Learning学习笔记

有点迷惑,NLP不是我研究的方向,但还是读了读,由于个人水平有限……欢迎指教

Generating Text with Deep Reinforcement Learning

使用深度强化学习生成测试输入

0摘要

我们使用Deep Q-Network(DQN引入了一种新颖的序列到序列学习模式,该序列可迭代解码输出序列。这里的目的是使解码器能够首先处理序列的较容易部分,然后转向处理困难部分具体而言,在每次迭代中,采用编解码器长期短期记忆(LSTM)网络从输入序列中自动创建功能,以表示DQN的内部状态并制定DQN潜在动作的列表。以改写自然句子为例。该列表可以包含排名的潜在单词。接下来,DQN学习决定要从列表中选择哪个动作(例如单词)来修改当前的解码序列。随后将新修改的输出序列用作DQN的输入,以用于下一个解码迭代。在每次迭代中,我们还偏重于增强学习的注意力,以探索先前难以解码的序列部分。为了进行评估,对提出的策略进行了训练以解码一万个自然句子。我们的实验表明,与从左到右的贪婪波束搜索LSTM解码器相比,该方法在从训练集中解码句子时表现出色,但是在获得BLEU分数方面,在解码看不见的句子时性能明显优于基线。

1介绍

许多实际问题可以有效地表示为序列对序列的学习。重要的应用包括语音识别、机器翻译、文本改写、问答。例如,后三个可以表示为将一个单词句子映射到另一个单词序列。建模这些任务的一个主要挑战是序列的可变长度,这通常是先验未知的。为了解决这个问题,编码器-解码器长-短期存储器(LSTM)体系结构最近被证明是非常有效的[8,30]。其思想是使用一个LSTM对输入序列进行编码,从而得到一个固定维的向量表示。随后,部署另一LSTM来解码(生成)输出序列,使用新创建的向量作为LSTM的初始状态。解码过程本质上是一个递归神经网络语言模型[19,29]。

基于递归语言模型的解码模式自然适合于从左到右的解码过程,该过程旨在获得具有最大概率的输出序列或选择序列候选的顶层列表以进行进一步的后处理。在本文中,我们提出了一种用于训练端到端解码器的替代策略。具体来说,我们采用深度Q网络(DQN)来包含迭代解码策略。详细地,首先使用编码器-解码器LSTM网络对输入序列进行编码。此过程会自动生成代表DQN内部状态的信息功能和潜在动作列表。接下来,采用DQN对输出序列进行迭代解码。考虑改写自然句子。该潜在动作列表可以包含排名的候选单词。在这种情况下,DQN将学习决定要从列表中选择哪个单词来修改当前解码序列。随后将新编辑的输出序列用作DQN的输入,以用于下一个解码迭代。受注意力机制[3、13、20、28]最近成功的启发,在这里,我们还在每次迭代中偏向于强化学习的注意力,以探索先前难以解码的序列部分。最后一次迭代的解码序列用作模型的最终输出。这样,与从左到右的解码方案不同,DQN能够学会首先专注于序列的较难部分,然后将所得的新信息用于帮助解决序列的较难部分。例如,我们的测试数据集中的一个句子被编码器-解码器LSTM解码为“单击此处以阅读纽约时报”以外的内容。已被DQN更正为“单击此处以阅读纽约时报”的更多内容。在第二次迭代中。

为了进行评估,对提出的策略进行了编码,然后解码了上万个自然句子。 我们的实验研究表明,与带有LSTM的从左到右贪婪波束搜索解码器相比,该方法在训练集上解码句子方面表现出色,但是在BLEU方面,当解码看不见的句子时,该方法明显优于基线[25] 获得分数。

在强化学习的背景下,解码顺序文本将需要克服由大量潜在状态和动作引起的挑战。 这主要是由于句子的单词顺序灵活以及现代词典中存在大量单词和同义词。 据我们所知,我们的工作是第一个使用DQN解码文本的工作。特别是,我们使用LSTM不仅从文本中概括出信息特征以表示DQN的状态,而且还从DQN的文本中创建潜在动作(例如候选单词)的列表。直观地讲,由于DQN在训练中的探索策略,此处DQN的应用也具有生成用于训练网络的合成顺序文本的效果。

2背景

强化学习和深度Q网络强化学习(Deep Q-Network Reinforcement Learning, RL)是一种常用的学习控制策略的框架,由计算机算法,也就是所谓的代理(agent),通过与它的环境E交互[1,27]。给定一组内部状态S=s1...., sI和一组预定义的动作A = a1,…ak,即agent在状态s上采取行动a,通过遵循一定的政策或规则,将产生一个新的状态s,并从e获得奖励。agent的目标是通过一系列的行动使累积的奖励最大化。每一个这样的动作形成一个Markov决策过程(MDP)的过渡元组(s, a, r, s')。实际上,环境是未知的或部分观察到的,可以使用一系列状态转换元组来表示环境。

Q-Learning[34]是RL的一种流行形式。这种无模型技术用于学习agent的最优行为价值函数Q(s, a),这是对行为预期长期回报的度量。通常,q值函数依赖于所有可能的状态-动作对,而这些状态-动作对往往是不切实际的。解决这一挑战的方法是使用参数化函数Q(s, A; θ)通常是通过对环境状态和行为的广义特征来学习的[4,31]。令人振奋的是,得益于深度学习技术的最新进展,该技术已显示出能够有效地为广泛的难题生成信息特征,Mnih等人[21]引入了深度Q网络(DQN)。DQN用非线性深度卷积网络逼近q值函数,该网络也自动创建有用的特征来表示RL的内部状态。

在DQN中,agent在离散迭代i中与环境相互作用,目标是使其长期回报最大化。agent从一个随机的q函数开始,通过查阅当前的q值函数,通过采取行动和获得奖励,不断更新自己的q值。迭代更新来自Bellman方程,其中期望E通常计算所有涉及agent在状态s中采取行动a的转移元组[31]:

 

其中λ是未来奖励的回报。

DQN需要内部状态的信息表示。对于玩视频游戏,可以使用卷积网络[21]直接从屏幕的原始像素推断状态表示。但是,例如,文本句子不仅包含文本的顺序性质,而且具有可变的长度。LSTM能够学习具有长期时间相关性和可变长度的数据,因此很自然地可以替换DQN中的卷积网络以用于我们的应用。接下来,我们将简要描述LSTM网络。

长-短期记忆递归神经网络通过配置一个递归隐向量,递归神经网络(RNNs)1可以计算任意长度序列的组合向量表示。网络学习复杂的时间动态映射长度T输入序列<x1,x2,……,xT>隐藏状态序列<h1,h2,……,hT>(hT∈RN)。网络通过递归应用转移函数来计算隐藏状态向量:

 

其中,Γ是非线性sigmoid函数(is an element-wise non-linearity sigmoid function,没太懂这个element-wise是啥玩意??);W表示权重矩阵(例如Wxh是输入隐含层的权重矩阵);bh是隐含层残差向量

RNNs的一个流行变体,LSTMs被设计用来克服RNNs中的消失梯度问题,从而更好地建模序列中的长期依赖关系。除了隐藏单元ht之外,LSTM还包括输入门、忘记门、输出门和存储单元单元向量,用于以下目的。具有自连接的存储单元ct能够考虑两条信息。第一个是先前的存储单元ct1,它由遗忘门调制。在这里,遗忘门包含隐藏状态,通过自连接自适应地重置其单元单元。第二条信息是当前输入和先前隐藏状态的函数,由输入门调制。直观地说,LSTM可以学习有选择地忘记以前的记忆或考虑当前的输入。类似地,输出门学习有多少存储单元转移到隐藏状态。这些额外的单元使LSTM能够长时间保持状态[8,12,30,32]。

 

图1:使用DQN和LSTM迭代解码;编码器-解码器LSTM网络在底部以灰色填充矩形表示;左上角是使用双向LSTM的DQN的图形说明;右侧的虚线箭头线表示迭代循环。

3 DQN生成序列

如[30]中所述,我们采用编解码器LSTM网络来自动生成DQN的信息特征,以便DQN能够学习Q值函数来近似其长期回报。学习算法如图1和算法1所示。

3.1 用LSTMs生成状态表示(Generating State Representations with LSTMs

编码器-解码器LSTM网络,在图1中用灰色填充矩形表示。出于描述目的,我们在DQN的上下文中将此状态生成函数(表示为StateGF)命名。详细地,给定具有N个标记的自然句子,<x1,x2,……,xN>(表示为EnSen)。我们首先使用一个LSTM(表示为EnLSTM)对序列进行编码,一次一次地将令牌(例如,单词)读入令牌(例如,图1中的<A,B,C>)。当到达句子的末尾(图1中的<EOS>)时,此编码过程将导致整个句子的固定维矢量表示,即隐藏层矢量henN。接下来,将所得到的henN用作另一LSTM(表示为DeLSTM)的初始状态,以进行解码以生成目标序列<y1,y2,……,yT>。在此过程中,DeLSTM的隐藏向量也取决于其输入(即,图1中的<Ai,Bi,Ci>;对于典型的语言模型,这将是<y1,y2,...,yT>)。

因此,DeLSTM创建一系列隐藏状态<hde1,hde2,……,hde T>(hde t  ∈RN)表示每个时间步。接下来,这些隐藏向量中的每一个被送到Softmax函数中,以在C个可能的类(例如,词汇表或字典中的单词)上产生分布,从而在每个时间步t创建单词概率的列表,即,<Wt pro1,Wt pro2,……,Wt proV>(V是字典的大小)

 

其中wc是从隐藏层到输出层的权重矩阵。这些概率可以通过Argmax函数进一步处理,从而得到一系列输出单词,即句子<yi1,yi2,……,yiT>(表示为DeSeni;i表示DQN的第i次迭代,稍后将详细讨论)。

解码器-编码器LSTMs的参数ϑ,即StateGF函数,使用以下训练目标,在给定源语句X的情况下,被调谐以最大化正确解码语句Y的对数概率

 

其中S是训练集。训练后,可以根据DeLSTM找到最可能的输出序列来实现解码输出序列。

 

如[30]所建议的,这种解码搜索的一种简单有效的方法是部署一个简单的从左到右的定向搜索。即,解码器维护少量的不完整句子。在每个时间步,解码器都会用词汇表中的每个可能单词扩展beam中的每个部分句子。正如[30]所建议的,beam大小为1效果很好。

3.2 Iteratively Decoding Sequence with Deep Q-Network(用深度q网络迭代解码序列)

在每次解码迭代i时,DQN都将句子对,即EnSeni和DeSeni(即,分别在图1中<A,B,C>和<Ai,Bi,Ci>)视为其内部状态。 此外,DLN将DeLSTM每个时间步t的排名词列表2视为潜在动作。 从这些清单中,DQN会学会预测应采取什么措施才能积累更大的长期奖励。

详细地,将DeLSTM中的每个隐藏向量hdet馈入神经网络(在图1中显示为DQN,并在左上子图中以图形方式说明;将在3.3节中进行进一步讨论)。这些神经网络学会在给定DQN的当前状态的情况下近似Q值函数,该函数包含EnSeni和DeSeni以及DeLSTM每个时间步t的单词概率列表。DQN将在输出中使用最大Q值进行操作。考虑,DQN采取行动,即在迭代i中选择第t个时间步长词y(^)it。然后,将相应地修改DQN的当前状态。也就是说,将通过在时间步t替换单词,即用y(^)it替换yit来修改DeSeni。此过程将产生一个新的解码语句,即DeSeni + 1(在图1中显示为<Ai + 1,Bi + 1,Ci + 1>)。接下来,目标句子的相似度<y1,y2,…… ,yT>,当前解码的句子DeSeni + 1由BLEU度量[25]评估,然后将奖励ri分配给选择y(^)it的动作。因此,DQN的过渡元组包含[(EnSeni,DeSeni),y(^)it,ri,([EnSeni,DeSeni + 1])。在DQN的下一个迭代中,新生成的句子DeSeni + 1然后被馈送到DQN中,以生成下一个解码的句子DeSeni + 2。

DQN的训练是在神经网络中找到最佳权重矩阵θ。也就是说,通过最小化每次迭代i时损失函数Li(θi)的序列来训练Q网络

 

其中qi=Es,a[ri+λmaxa,Q(s’,a’,;θi-1)| s,a]是目标Q值或报酬,参数θi-1从上一次迭代中固定。换句话说,DQN被训练来预测它预期的未来回报。参数Li(θi)的更新使用以下梯度执行

 

在学习了Q值函数之后,代理选择具有最高Q(s,a)的动作,以便在解码序列时最大化其预期的未来回报。agent经常在勘探和开发策略之间进行权衡。也就是说,通过遵循“贪婪”策略,代理可以以概率probability [31]执行随机动作。受注意力机制[3、13、20、28]最近成功的启发,我们在这里偏向于强化学习的注意力,以探索难以解码的序列部分。 也就是说,对于从先前的迭代中被错误解码的令牌,随机动作有更多的机会被选择。

3.3 Bidirectional LSTMs for DQN

在解码期间,我们希望DQN具有有关整个输入序列的信息,即图1中的<Ai,Bi,Ci>。为实现此目标,我们部署了双向LSTM [12]。 具体来说,对于给定序列的特定时间步长t,双向LSTM [12]使隐藏状态能够总结该序列中过去和将来的时间步长s。 网络部署两个单独的隐藏层以在两个方向上处理数据:一个从左到右(向前),另一个从右到左(向后)。 在每个时间步,双向LSTM的隐藏状态是向前和向后隐藏状态的串联,然后向前馈送到相同的输出层。 也就是说,DQN的公式2的实现如下(在图1的左上子图中所示)。

 

在这种情况下,hdet等于h(->)t,即前向隐藏向量。关于输入序列<Ai,Bi,Ci>的附加信息由后向隐藏向量h(<-)t进一步总结。

3.4 BLEU Score for DQN Reward(blue Score换取DQN奖励)

奖励是根据目标句子<y1,y2,……,yT>和在DQN采取动作之后解码的输出语句(即DeSen)。我们使用统计翻译中常用的分数度量来计算这个句子对的相似性具体来说,我们得到了这两句话之间的BLEU[25]分数。我们测量当前迭代和上一个迭代之间的得分差。如果差值为正,则分配+1奖励;如果为负,则分配-1奖励;否则为零。请注意,因为我们在这里进行句子级比较,所以我们采用BLEU的平滑版本[17]。与BLEU不同的是,即使句子对中没有任何4-gram匹配,平滑BLEU也避免给零分。

3.5 Empirical Observations on Model Design(模型设计的经验观察)

从DQN中分离状态生成函数。我们的实验表明,从DQN网络中分离状态生成函数是有益的。这里的目的是要有一个从序列对生成状态的确定性网络。也就是说,对于编解码器LSTMs网络的任何给定输入对,即状态生成函数StateGF,我们将始终具有相同的解码输出序列。我们的实证研究表明,这对于成功训练解码文本的DQN是非常重要的。我们的直觉解释如下。

使用DQN来近似q值函数,直观地相当于针对运动目标训练网络因为这里网络的目标依赖于网络本身。假设,对于给定的输入提要,StateGF每次都会为DQN生成不同的输出序列。在这种情况下,DQN网络还必须处理一个运动状态函数,它涉及到非常高的维数文本直观地说,这里DQN agent生活在一个变化的环境e中。因此,对于DQN来说,学习预测q值可能是非常困难的,因为现在所有的状态和奖励都是不稳定的,即使是相同的输入feed也会发生变化

预训练StateGeneration函数。采用两种经验技术来确保我们具有用于生成DQN状态的确定性网络。首先,我们部署一种预训练技术。具体来说,我们使用输入序列X作为EnLSTM的输入和目标序列Y作为DeLSTM的输入来预训练状态生成函数StateGF。 训练收敛之后,当DQN网络的训练开始时,网络权重将固定。其次,在训练DQN时,输入序列被输入到EnLSTM中,但是DeLSTM使用前一次迭代的解码序列作为输入(在图1中用虚线表示)。在此阶段,仅更新图1的红色部分。也就是说,来自DQN网络的奖励错误不会反向传播到状态生成功能。

用重放内存采样更新。我们的研究还表明,使用当前训练句子的转换来更新Q值函数会导致网络对当前输入句子的过度拟合。因此,当输入一个新句子进行训练时,它总是可以预测用于训练的前一个句子。为了避免这种相关性问题,在更新DQN时应用了重放存储器策略。也就是说,DQN由可能不同于当前输入序列的转换元组来更新。

为此,对于DQN采取的每个操作,我们将其过渡元组保存在重播内存池中,包括EnSeni,DeSeni,DeSeni+1,ri和ai。更新DQN时,我们然后从重播内存池中随机抽取一个过渡元组。可以在此处应用更复杂的重放内存更新。我们希望将其留作以后的工作。例如,可以使用重播技术的优先采样[22]。也就是说,奖励丰厚的过渡有更多的机会被选择。在我们的情况下,我们可以将选择偏向具有较高BLEU分数的过渡。

监督Softmax信号的重要性。我们还对网络进行了无监督Softmax误差的实验。也就是说,整个网络,包括LSTMs和DQN,只接收Q值预测的误差信号。我们观察到,没有监督信号,DQN很难学习。直觉如下。首先,如前所述,对于通常涉及大量潜在状态和行为的文本解码,从移动状态生成函数和移动Q值目标函数中学习最优策略对DQN来说是一个很大的挑战。其次,DQN的潜在行为,即DeLSTM的每个输出的单词概率列表是变化的和不可靠的,这将进一步使DQN的学习复杂化

同时更新Softmax和Q值错误。 如果在训练DQN的过程中,我们不仅更新了先前讨论的DQN,还更新了状态生成功能,即编码器-解码器LSTM。 我们发现,由于Softmax误差信号非常强且更可靠(与移动目标Q值函数相比),网络很容易偏向状态生成函数,因此DQN可能无法得到充分调谐。当然,我们可以偏向于学习DQN,但这将引入一个更棘手的参数进行调整。另外,这样做,我们又具有不确定的状态生成功能。

4 实验

4.1 任务和数据集

我们在这里的实验任务是训练网络以重新生成自然句子。即,在给定句子作为输入的情况下,网络首先将其压缩为固定向量,然后将该向量用于解码输入句子。换句话说,算法1中的X和Y相同。在我们的实验中,我们从十亿字语料库中随机选择12000个句子,最大长度为30 [7]。我们用10000个句子训练我们的模型,然后使用包含1000个句子的验证数据选择最佳模型。然后,我们用1000个可见句子和1000个看不见句子测试模型。 从训练集中随机抽取可见的测试集。

4.2 培训和测试细节

出于计算原因,我们在DQN中将一层LSTM用于编码器-解码器LSTM以及向后LSTM,它们均具有100个存储单元和100维字嵌入。 我们在DeLSTM的每个输出(即时间步长t)使用了超过10000个单词的Softmax(这是我们在实验中使用的词汇量的大小)。 我们使用-0.15到+0.15之间的均匀分布(包括单词向量)来初始化所有LSTM参数。 我们使用无动量的自适应随机梯度下降(AdaSGD)[9],起始学习率为0.05。 尽管LSTM往往不会遭受梯度消失的困扰,但它们可能会出现爆炸梯度。 因此,我们采用阈值为15的梯度范数裁剪技术[26]。我们使用L2正则化(权重衰减值为0.00016)和辍学(率0.2)来避免网络的过度拟合。

我们首先以目标句子为输入对编码器-解码器LSTM进行预训练。训练收敛后,我们便开始训练DQN。训练DQN时,我们关闭了编码器-解码器LSTM中的退出,因此我们有了确定性网络来生成状态和DQN的单词概率列表。此外,在2000000次迭代后,我们将epsilon scale缩小为0.1。换句话说,DQN训练开始时的大多数动作都是随机的,然后在训练结束时变得更加贪婪。对于长度为l的每个句子,我们允许DQN使用2l迭代来编辑该句子,即采取2l动作进行解码。每次迭代中解码的句子将保存在500000的重播内存中。折扣系数λ设置为0.95。另外,用于指示解码成功的BLEU得分阈值σ被设置为0.92。对于DQN中双向LSTM的初始状态,我们使用了LSTM编码器生成的固定矢量。

在测试阶段,我们还以2l个步骤为每个句子运行DQN。同样,在我们的实验中,我们仅将每个T列表上具有最大概率的单词用作DQN的潜在动作。由于我们的实验中句子的最大长度为30,因此DQN最多具有31个输出节点。即,DQN可以选择30个最高单词之一,每个单词对应于DeLSTM上的一个时间步长,或者采取表明不需要修改的第31个动作。

我们将我们的策略与[30]中用于机器翻译的编码器-解码器LSTM网络进行了比较。 该基线解码器使用简单的从左到右的波束搜索技术搜索最可能的输出序列。 正如[30]所建议的,beam大小为1效果很好。 我们采用这种方法作为解码基准。 我们所有的实验均在具有12GB内存的NVIDIA GTX TitanX GPU上运行。 我们报告所有测试句子的SmoothedBLEU平均得分。

4.3 实验结果

图2描述了状态生成函数StateGF和DQN的训练演化过程,主要测试结果见表1。

从图2所示的编码器-解码器LSTM和DQN的训练曲线中,我们可以看到两种训练的融合非常好。对于LSTM培训,平均成本在稳步下降,而平均BLEU分数则在逐渐提高。 在经过20次迭代后,两条曲线都趋于稳定。同样,图2中的右子图表明,DQN获得的奖励在训练开始时为负,然后逐渐移至正词区。由于在培训开始时大多数DQN的动作都是随机的,因此这里预期会产生负面奖励。逐渐地,DQN知道如何对句子进行解码以获得积极的回报。如右图所示,DQN的训练收敛了大约6个纪元。这些结果表明状态生成函数和DQN都易于训练。

 

 

在表1中,我们显示了针对所见1000个和未见1000个句子的测试结果,以获得的平均SmoothedBLEU表示。我们可以观察到,尽管DQN在可见数据上获得的结果仅比基准LSTM网络略好,但是对于看不见的数据,DQN明显优于基准。我们的进一步分析建议如下。对于看到的数据,DQN解码器倾向于与LSTM解码器一致。也就是说,在大多数时候,它的决定没有修改。至于看不见的数据,由于DQN的探索策略比LSTM网络更能从嘈杂的数据中学习,因此DQN解码器能够更好地容忍噪声,并能很好地推广到看不见的数据。直观地,由于DQN的探查组件,此处DQN的应用还具有生成合成顺序文本以训练DQN解码器的效果。

 

我们也进行了实验来观察DQN的行为以供探索;这里我们只考虑了看不见的测试数据集。也就是说,我们使DQN遵循一个ǫ-贪婪策略,分别为ǫ=0、0.05、0.1、0.2、0.5。换句话说,我们允许代理根据其Q值函数在100%、95%、90%、80%和50%的时间内选择最佳的操作。根据获得的BLEU分数,实验结果如图3所示。从图3我们可以得出结论,在测试时间的勘探策略没有帮助DQN。结果表明,允许DQN在测试时间内进行探索会降低其BLEU评分的预测性能

5 相关工作

最近,Deep Q-Network(DQN)被证明能够成功地玩Atari游戏[14,21,24]。DQN通过Q学习的一种变体进行训练[34],使用深度神经网络学习控制策略。其主要思想是利用深度学习自动生成信息性特征来表示软件agent所处环境的内部状态,进而逼近一个非线性控制策略函数,供学习agent采取行动。除了玩电子游戏,还研究了利用强化学习从文本中学习控制策略。应用程序包括解释用户手册[6]、导航方向[2、16、18、33]和玩基于文本的游戏[5、10、23]。此外,DQN最近被用于学习内存访问模式和重新排列一组给定的单词[35]。

与上述工作不同的是,本文的研究旨在用DQN对自然文本进行解码。此外,我们使用一个编解码器LSTM网路,不但可以从文字中概括资讯性的特徵来表示DQN的状态,而且可以从文字中产生一个潜在动作的清单。

6 总结和未来工作

我们部署了一个深度Q网络(DQN)来支持序列到序列学习的迭代译码策略。为此,采用一个编解码器LSTM网络来自动逼近DQN的内部状态并制定潜在的动作。此外,我们在强化学习的探索策略中加入了注意机制。直观地说,这种探索使解码网络能够从解码阶段产生的许多合成序列文本中学习。我们用一个句子再生任务来评价所提出的方法。我们的实验证明了我们的方法有很好的性能,特别是当解码看不见的句子时,就BLEU分数而言。本文还提出了一些经验观察,在模型设计方面,为了成功地解码序列文本与DQN。

将来,将进一步研究允许DQN在DeLSTM的每个时间t从列表的前n个单词中选择。 此外,我们想对DQN训练尝试复杂的优先级采样技术。 特别是,我们有兴趣将这种方法应用于统计机器翻译。

总结

本文写的是DQN在文本生成中的应用。

本文目的是:用DQN对自然文本进行解码,使解码器能够首先处理序列较容易的部分,然后转向困难的部分处理。

具体来说:在每次迭代中,使用编解码器LSTM从输入序列中自动创建功能,以表示DQN的内部状态并制定DQN潜在的动作列表。以改写自然句子为例,该列表可以包含排名的潜在单词。接下来,DQN学习决定要从列表中选择哪个动作(例如单词)来修改当前的解码序列。随后将新修改的输出序列用作DQN的输入,以用于下一个解码迭代。在每次迭代中,我们还偏重于增强学习的注意力,以探索先前难以解码的序列部分。

简单介绍一下LSTM,目的:文本通常是可变长度而且是未知的,LSTM就是来解决这个问题的。

LSTM思想:使用一个LSTM对输入序列进行编码,从而得到一个固定维的向量表示。然后用另一个LSTM进行解码(生成)输出序列,使用新建的向量作为LSTM的初试状态。解码过程本质上是递归神经网络语言模型。

DQN是什么?

agent与环境进行交互,给定一组内部状态和预定义动作。agent会在装填s上采取行动a,通过遵守一定的原则,将产生一个新的状态s,并通过从E中获得奖励。agent目标是通过一系列的行动是的奖励最大化。每一个这样的动作形成一个马尔科夫决策过程(MDP)的过度元组。

DQN生成序列如下:

我们采用编解码器LSTM网络来自动生成DQN的信息特征,以便DQN能够学习Q值函数来近似其长期回报。

具有自连接的存储单元ct能够考虑两条信息。第一个是先前的存储单元ct1,它由遗忘门调制。在这里,遗忘门包含隐藏状态,通过自连接自适应地重置其单元单元。第二条信息是当前输入和先前隐藏状态的函数,由输入门调制。直观地说,LSTM可以学习有选择地忘记以前的记忆或考虑当前的输入。类似地,输出门学习有多少存储单元转移到隐藏状态。

可以看到各个门的方式是一样,都是由输入和上一步隐含状态决定,细胞的更新由输入门和遗忘门一起确定,更新后的细胞经过输出门控制生成下一步的隐含状态。

 

使用DQN和LSTM迭代解码;编码器-解码器LSTM网络在底部以灰色填充矩形表示;左上角是使用双向LSTM的DQN的图形说明;右侧的虚线箭头线表示迭代循环。

 

主要分为两个大步骤,首先是训练一个一般意义上的解码器,第二步是训练Q-value Function。

第二步才是重点,第二步首先输出解码器第一个单词。后面的单词或者随机选择或者使用DQN来预测。每次预测完了都要更新D。最后根据计算的BLEU reward,如果分数达到阈值,说明句子预测完毕,否则继续对reward增加。

最后对DQN进行更新。

DQN与LSTM结合的优点:

  1. DQN能学会先专注于较难的部分
  2. 使用LSTM能够从文本中提炼出信息特征用以表示DQN的状态,还能从DQN的文本中创建潜在动作列表(候选单词)

注:DQN在训练中进行探索,所以应用这个能更好的训练网络的合成顺序文本的效果。

本模型的优点:

  1. 每次迭代中偏向于RL的注意力,用于探索难以解码的序列部分
  2. 在解码期间,通过使用双向LSTM序列,让DQN具有有关整个输入序列的信息。
  3. 从DQN中分离状态生成函数。使用DQN来近似Q函数,直观地相当于针对运动目标训练网络。
  4. 预训练StateGeneration函数。
  5. 用重放内存采样更新。使用当前训练句子的转换来更新Q值函数会导致网络对当前输入句子的过度拟合,所以在更新DQN的时候需要重新初始化。
  6.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油当当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值