加入奖励的GRU对抗网络文本生成模型

2022-07-29 06:22:30彭鹏菲周琳茹
计算机与现代化 2022年7期
关键词:神经网络分数函数

彭鹏菲,周琳茹

(中国人民解放军海军工程大学电子工程学院指挥信息系统教研室,湖北 武汉 430030)

0 引 言

近几年随着人工智能的飞速发展,得益于神经网络等相关概念的提出以及发展,人工智能在多个领域中取得了巨大的进步,自然语言处理作为人工智能领域中一个重要的研究方向,也标志着人工智能进一步走向成熟[1]。自然语言处理包括自然语言理解和自然语言生成2个主要方向[2]。自然语言生成问题可以细分为机器翻译[3]、对话系统[4]、图像描述[5]、文章生成[6]等内容。2014年,生成对抗网络(GAN, Generative Adversarial Networks)被Fedus等人[7]提出以来便渐渐成为主流的生成模型框架之一,它分为生成器和判别器2个部分。生成器和判别器是2个“独立”的神经网络,并通过优化函数将2个神经网络“链接”在一起。生成器的目的是试图迷惑判别器,让其判断不出文本的真假;判别器的目的则是能够正确地区分真实文本和生成文本,最终达到纳什平衡。将博弈论的思想引入到模型训练中,GAN的本质通常是先验噪声和真实数据样本分布之间的映射,这种特质导致它在图像生成领域具有天然的优势[8],但是由于文本数据的离散型,是不可微的,细微的梯度更新无法回传,因此生成器无法更新。对这一问题,Kusner等人[9]提出GSGAN模型,模型中提出Gumbel-softmax分布,通过让满足Gumbel分布的向量和原本的输出向量相结合,并使用一个逐渐减小的变量来作为除数,这就使得可以直接使用可微的softmax函数来代替原本基于采样且不可微的argmax函数;Che等人[10]提出了极大似然增强离散数据生成对抗网络(MailGAN),设计了一套训练技术直接计算生成数据分布与真实数据分布的差距,同时减少了模型潜在的方差。目前,GAN在文本生成领域应用效果不佳的一个重要原因是来自判别器的二值反馈信息较少。针对GAN存在的梯度消失问题,Lin等人[11]提出了排序生成对抗网络(RankGAN),将原始二值分类判别器替换为以余弦相似度为基础的排序模型,使得判别器的反馈更加连续;Yu等人[12]在AAAI会议上提出了SeqGAN的方法用来解决序列生成问题,该模型将GAN的生成模型看作强化学习过程中的代理,对抗模型则扮演强化学习过程中“人类”的角色,在SeqGAN中仍然选择LSTM做生成网络,CNN[13]做对抗网络,该模型在中国古诗、英文演讲稿和歌词生成过程中取得了较大的进步。GAN模型生成的数据不仅真实度高且具有多样性,因此在图像生成领域[14]GAN发挥了巨大作用。然而由于文本数据的离散型,生成器细微的改变在离散空间中无法产生新的标签,因此针对离散数据,判别器无法正确指导生成器;且针对判别器奖励的稀疏性,生成模型较难训练,通常会产生高方差梯度估计,使得参数优化较难确定方向。

在文本生成中随着时序长度变长,深度不断增加,循环神经网络的梯度消失和梯度爆炸问题随之而来,且由于简单RNN[15]每次更新时是对全体记忆进行擦除和重写,因此导致模型不能捕捉长期关系。为避免上述问题,本文采用门控结构的GRU神经网络避免梯度问题,增加对长期记忆的捕捉能力。

上述模型虽然在文本生成领域有着不错的效果,但是生成的文本较一般,且文本信息单一;由于判别器中的输出loss经反向传播指导生成器部分的参数优化,不断试错,不断尝试进行参数优化,每一层参数的优化都会影响其它层,因此训练时间较长。针对以上问题,本文提出以下解决方案:

1)为生成更真实多样的文本、减少错误累计,加入蒙特卡洛策略[16],使判别器的输出指导信号通过蒙特卡洛策略算法训练生成器,生成器根据指导进行参数优化,受到奖励。蒙特卡洛策略可帮助生成器在无监督学习形式训练的每个时间步选择最合适的离散值字符,加强文本生成的多样性和真实性。

2)本文使用GRU神经网络作为生成器和判别器。GRU神经网络可有效地解决长距离梯度消失的问题,相对于LSTM神经网络,GRU的参数要少于LSTM,训练速度要快于LSTM的同时传播信息不会发生丢失的情况,同时又使结构更加简单,训练过程更加快速;改进当前时刻的隐含变量的激活函数,使用自定义函数替换原sigmoid函数,使模型的收敛速度更加迅速,采用有下界无上届的函数Swish激活函数增加网络的非线性能力。

1 GRU神经网络的函数改进

GRU提出了更新门和重置门的概念[17],通过各种门函数将重要特征保留下来,保证了在long-term传播时重要信息不会丢失。此外GRU相对于LSTM少了一个门函数,因此在参数的数量上少于LSTM[18],整体上GRU的训练速度快于LSTM。

的双曲正切函数tanh作为饱和激活函数,在神经网络训练过程中会因其饱和性减慢训练过程并导致梯度消失[19],因此本文采用Swish激活函数替代tanh函数,Swish激活函数[20]的计算公式如下:

y=x×sigmoid(x)

(1)

图1 GRU神经网络模型图

Swish激活函数是有下界无上届的函数,可以增加网络的非线性能力,且由于Swish的一阶导数是平滑的,因此激活函数不会出现饱和问题,有效避免了梯度消失问题。具体结构如图1所示。图1中的zt和rt分别表示更新门和重置门。

更新门控制前一时刻的状态信息被带入当前状态中的程度,值越大表明前一时刻的状态信息带入越多;重置门控制忽略前一时刻的状态信息的程度,值越小表明忽略得越多。本文采用GRU作为生成对抗网络中的生成器和判别器。在给定输入值it=(1,2,3,…,n)时,GRU网络的前向传播公式为:

zt=f(Wz·[ht-1,xt])

(2)

rt=f(Wr·[ht-1,xt])

(3)

(4)

(5)

yt=f(Wo·ht)

(6)

其中[ ]代表2个矩阵相连,*代表矩阵的乘积。

采用f函数代替原sigmoid函数,加快收敛速度;将原tanh函数换为Swish函数,改善原函数因其饱和性减慢训练过程并导致梯度消失问题。通过以上2点的改进可综合提高GRU网络的模型训练速度。

2 加入奖励机制的生成对抗网络模型构建

2.1 整体模型设计

本文应用GAN神经网络实现文本生成,生成模型包括生成器和判别器,在判别器中加入蒙特卡洛策略进一步生成更真实的文本。真实的数据输入生成器,判别器产生的结果反馈回生成器指导生成器继续生成文本。由于有监督训练对噪声有着较强的鲁棒性和容错能力,能够充分逼近复杂的非线性关系且其学习能力较强[21],本文在训练过程中同时采用有监督学习形式和无监督学习形式,二者之间的转换公式为:a=1-u×k,其中a为进行有监督训练的概率,k为训练轮数,u为自定义的二者之间的转换开关。生成器和判别器均使用GRU神经网络,其中判别器的输出作为反馈奖励函数评价生成文本的效果,并指导生成器的进一步改进。

蒙特卡洛方法是按抽样调查法求取统计值来推定位置特性量的计算方法,适用于对离散系统进行仿真实验,从起始状态到结束状态称为episode,完成一次episode计算一次状态Si的平均获得值。对蒙特卡洛策略进行评估即在固定的策略π下,从经历过的episodes中学习,通过求取多个episodes的平均获得值来代替状态价值函数,当值函数被估计出来后,对于每个状态s,通过最大化动作值函数来进行策略的改进。

2.2 基于GRU神经网络的生成器

本文的生成器总共包含3层,分别为Embedding层、GRU神经网络层、Softmax层,主体选择GRU神经网络模型。首先对输入数据进行简单的预处理,定义循环次数为l,为保证程序的运行速度,当读取输入数据r大于10000×l时停止读入数据。接下来在Embedding层将给定真实文本的训练集I={i1,i2,…,in}映射为向量x={x1,x2,…,xn},xn代表第n个词的向量,对于嵌入矩阵的初始化采用随机初始化。然后将处理后的数据输入到带GRU的神经网络中,最后一层为输出层。

GRU网络将输入的向量转换为隐藏向量h={h1,h2,…,hn},对于GRU网络,当前时刻隐藏层状态由上一时刻的隐藏层状态和输入决定,即:

(7)

直到最后的输入值xn处理完毕。GRU神经网络将每一时刻输入形成的向量输出到输出层,序列Y={y1,y2,…,yn}在输出层中转换成单词序列Z={z1,z2,…,zn}输出。输出可定义为:

zx=Softmax(We×tanh(Wx+b1))

(8)

其中:We是embedding层输出的嵌入矩阵,W是参数矩阵,b1是一个偏置单元,x是传入的参数。

生成器的loss函数是规范化的反馈奖励函数与生成器输出的乘积,生成器的loss函数如式(9)所示:

M=-log(gen_out(y)×n(y))

(9)

其中,gen_out(y)为生成器的输出,n(y)为规范化的反馈奖励函数,如公式(13)所示。

在刚开始进行训练时,首先随机提供一个阈值r,找到一个最小的大于阈值r的值作为循环的开始点,在循环过程中,将生成器中的loss作为指导输入到GRU神经网络中进行参数更新,共循环k次。

生成器流程图如图2所示。

图2 生成过程流程图

2.3 基于GRU神经网络的判别器

判别器仍使用GRU网络,将生成的数据与输入的真实数据进行对比,判别生成文本的真假,并提供反馈,因此判别器可看为一个二分类模型,将真实的数据标签设置为1,生成器生成的数据标签设置为0。判别器模型由Dense神经层、Embedding层、隐藏层和GRU层组成。参数初始化后,首先将数据经过简单的Dense神经层进行特征提取,随后输入到Embedding层中进行降维,降维后输入到隐藏层,最后在GRU神经网络中进行判别生成数据的真假。

在经过对输入数据进行处理后,首先前向计算单个神经元的输出值,然后反向计算当前的误差项并将误差项传递到上一层,根据误差项本文采用Adam优化器计算权重,最后利用得到的梯度进行权重更新。本文计算当前神经元的输出loss作为指导更新输入的参数,loss的计算是求判别器的输出与0矩阵的交叉熵,判别器的loss公式如下:

L=-EX~data[log(f(x),0)]

(10)

其中f(x)是判别器的输出,EX~data为真实数据X的期望函数。在参数更新后,其指导信号通过蒙特卡洛策略算法训练生成器模块,而生成器根据指导信号的指导方向行动,并受到奖励。奖励公式如下:

dloss=eγk

(11)

reward=g(dloss×sigmoidf(x),k)

(12)

n(x)=reward/g(dloss,k)

(13)

其中,γ是反馈奖励参数,本文选择0.9,k为训练轮数,g函数为计算反向累计和。

判别器网络循环6次,生成器循环一次,即在每一次迭代训练中保证判别器的训练次数远大于生成器。这样的设置可以将弱判别器组合成一个较强的判别器,提高生成数据的准确率。

模型最终示意图如图3所示。

图3 加入奖励的GRU对抗文本生成模型

本模型中加入蒙特卡洛机制,将判别器的输出函数作为生成过程中的参数指导,生成器根据设定的奖励函数进行参数优化,以此达到生成文本的信息更加丰富的效果。

3 仿真实验与分析

为验证本文模型的效果,利用长篇英文小说《神探夏洛克》中的文字内容进行实验。实验环境及配置如表1所示。

表1 实验环境配置

3.1 实验评估方案

在预处理阶段,本文通过对原始数据去掉多余的标点符号、分词,将大写字母转为小写等操作,获得更好的原始训练数据。本实验的相关参数设置:词汇量大约为100万左右,随机初始化所有参数,使用Adam优化器[22],初始学习率为0.01。

本文将调整了激活函数的GRU生成对抗网络的算法与未调整的算法进行对比,通过对比判别器、有监督学习形式的生成器和无监督学习形式的生成器的loss,展现调整后网络的优点;采用最通用的BLEU分数评估本GAN网络的生成效果。BLEU算法[23]最初应用于机器翻译任务的译文生成的质量评测中,将生成译文与人工翻译译文进行对比,相似度越高则分数越高,即译文的质量越好。基本公式如下:

(14)

其中,N表示选到的最大的N-gram匹配规则,Pn为对应规则下的匹配程度,wn匹配权重,BP为过短惩罚项,长度越短惩罚项越大。

3.2 实验结果

调整后训练产生的loss结果如图4所示,未调整的训练结果loss结果如图5所示。

图4 加入奖励的调整后GRU对抗模型loss

图5 未调整GRU对抗模型loss

从图4~图5中可以看出,调整后训练的收敛速度变快,生成器和判别器在训练过程中比未改进前可得到更多的信息,且训练时间也要短于原训练时间,最终的准确率与原结果相比也没有发生较大偏差。

为更好地描述文本生成模型的性能,本文采用累加的N-Gram分数进行评估,采用1-gram和2-gram各50%的比例进行计算。改进后的模型在长篇英文小说上BLEU的分数表现如图6所示,未改进的模型的BLEU分数表现如图7表示。

图6 加入奖励的调整后GRU对抗模型BLEU分数

图7 原GRU对抗模型BLEU分数

从图6~图7中可以看出,调整后的模型在有监督训练中表现得更加优越,不仅收敛速度变快且BLEU平均分数也上升了0.03左右,最高分数甚至与无监督学习形式训练的BLEU分数不相上下。

为验证本模型的效果,对seqGAN模型进行仿真并与本文提出的模型进行对比。其中seqGAN模型中的BLEU分数只显示最终结果,同样采用1-gram和2-gram各50%的比例进行计算,最终得到BLEU的分数为0.05021。seqGAN的BLEU分数低主要是数据没有逻辑性,生成的文本多是单词,因此分数相对来说偏低。

图8中的loss变化是seqGAN模型第1000轮最后的loss分数,从图中变化可看到最后单个小轮loss基本在0.5以下,采用平均值来估计整体的话loss整体偏大。

图8 seqGAN模型的loss变化

从文本生成的结果来看,无监督学习形式生成的文本要比有监督生成的文本丰富性要好,有监督生成的文本虽然从BLEU分数来看分数差不太多,但是从生成结果来看,在训练轮数较少的时候全是重复字母或者标点符号,没有意义,训练轮数增加后,文本生成中多样性增加,但是没有正确的英文单词生成;无监督学习形式生成的文本在训练轮数较少的时候,多样性要比有监督的训练好,但是还没有生成正确的单词,训练轮数增加,正确的单词数也随即增加。经过增加训练轮数发现模型在300轮次左右达到稳定状态,但在训练轮次达到500、1000轮时模型效果没有较大的改善,且训练时间增加。

总体上来说,相比于原模型,改进后的模型不管是在收敛速度还是在训练结果上都要更加优越,有着不错的提升。

4 结束语

针对文本生成问题,本文提出了一种基于改进的GRU神经网络的GAN网络模型,详细展示了改进的GRU神经网络的GAN网络是如何应用在文本生成领域。本文模型改进GRU神经网络的激活函数,并加入强化反馈增加文本生成内容的真实性。实验结果表明,本文模型拓展了GAN神经网络生成器和判别器选择的多样性,改进的模型比原来的生成模型收敛效果更好,运算时间更短,验证了模型的有效性。

下一步工作将探索如何改进模型将文本生成的效果进一步提升,增强模型的灵活性,进一步提高文本生成效果。

猜你喜欢
神经网络分数函数
二次函数
第3讲 “函数”复习精讲
分数的由来
二次函数
无限循环小数化为分数的反思
函数备考精讲
神经网络抑制无线通信干扰探究
电子制作(2019年19期)2019-11-23 08:42:00
可怕的分数
趣味(数学)(2019年12期)2019-04-13 00:29:08
算分数
基于神经网络的拉矫机控制模型建立
重型机械(2016年1期)2016-03-01 03:42:04