一种基于生成对抗网络的文本隐写方法与流程

文档序号:16128197发布日期:2018-12-01 00:00阅读:337来源:国知局
本发明涉及互联网
技术领域
,尤其涉及一种基于生成对抗网络的文本隐写方法。
背景技术
隐写术是将秘密信息隐藏在公开载体中,以实现隐蔽通信的一种技术。根据载体数据类型的不同,隐写术可分为文本隐写、图像隐写、音频隐写和视频隐写等。文本隐写要求在文本数据中载入隐藏信息,并保持良好的可读性,同时不容易被察觉到,与存在大量冗余信息的图像、音频和视频等多媒体载体相比,文本隐写实现起来更加困难。实现文本隐写有多种途径,如改变文本的现有格式,文本同义词替换,生成随机字符序列和以特定语法生成可读文本]等。传统的文本隐写方法主要基于修改已存在的载体文本,包括同义词替换、短语替换和文本排版格式变换等,已取得了很多成果。利用文本的排版结构冗余信息,现有技术提出通过增删字间和段间空格实现文本隐写的算法;或利用统计信息,在不改变原文本前提下,结合词的上下文语境选用适当的同义词替换原文本词语,以嵌入隐藏信息;或基于短语替换规则修改原文本,将隐藏信息嵌入文本载体的同时还保证了语法准确性和语句流畅度;或引入失真函数来衡量同义词替换后文本统计特征的改变程度,选择失真度最小的同义词组,用以嵌入隐蔽信息,提高了文本隐写的稳定性和安全性;或设计了一种中文繁简体替换的文本隐写算法,对隐写信息进行分段,通过“解释”的方式嵌入分段信息;或提出了一种基于中文标点的文本信息隐写算法,利用标点全角和半角互换来达到信息隐藏的目的。尽管传统的文本隐写算法成果不少,但都是基于对文本载体的有限修改,如果较大规模同义词替换、标点互换、排版结构的替换和修改等方法,都会影响文本语法准确性和流畅度,因此,解决这一类的问题显得尤为重要。技术实现要素:针对现有技术的不足,本发明提供了一种基于生成对抗网络的文本隐写方法,通过训练一个文本生成模型,实现隐藏信息的文本隐写,可以生成高质量的文本,同时将较多的隐写信息有效地嵌入输出文本信息中,已解决现有技术的不足。为了解决现有技术的不足,本发明提供了一种基于生成对抗网络的文本隐写方法,其特征在于,包括:基于生成对抗网络的文本生成模型:生成对抗网络由两部分组成,第一部分是生网络,第二部分是判别网络,让生网络和判别网络相互竞争,通过生成网络来生成假的数据,对抗网络通过判别器判别真伪,最后以生成网络生成的数据来以假乱真骗过判别器;优化生成对抗网络:生成对抗网络的优化用生成器g和判别器d的零和博弈游戏来表示,其优化目标函数公式为在生成对抗网络的优化过程中,需要训练生成器g来最大化判别数据来源真实数据还是生成数据,同时还需要训练生成模型来最小化使得生成的数据更加能够骗过判别器d,采用交替优化的方法,先固定生成器g,优化判别器d,使得判别器d达到最优,然后固定判别器d,优化生成器g,使得判别器d的判别准确率下降,当且仅当pdata=pg,即判别器d对真实采样样本和生成样本,输出概率都是0.5时达到全局最优解;训练文本生成模型:生成器g生成每一个词看做一个强化学习中代理决策过程,同时借用策略梯度算法来优化生成器g,并在训练过程中用正样本辅助训练技巧,提升算法收敛速度和算法稳定性,生成器gθ用两层单向的lstm神经网络实现,θ是网络的参数,判别器d用多层卷积网络实现;生成器g生成的文本数据标记为负样本,采样得到的真实文本数据标记位正样本,将生成器g生成负样本和采样得到的正样本同时输入判别器进行迭代优化,是判别网络参数,判别器损失函数采用交叉熵损失函数,如下公式(2)所示,y(i)是输入数据的标签生成器生成数据定义为0,真实语料库采样数据标记为1;当训练生成器g时,把判别器d参数固定,对于生成器gθ,其训练目标是最终生成合理的文本序列,而对于文本合理性的评价用判别器d来实现,当生成器g生成完成一个完整的序列,将其输入判别器即可得到判别结果作为reward,生成器g优化的目标就是最大化reward值,生成器的损失函数如公式(3)所示,rt是一个完整序列y1:t的reward值,由判别器d给出,gθ(yt|s0:t-1)代表生成器gθ根据历史状态s0:t-1产生决策行为,即产生当前词yt的概率值;文本隐写算法:首先根据ascii码将待加密的密文映射为二进制串s,然后将二进制串s切分为长度为|b|的片段,最后文本生成模型根据上述片段序列生成隐写文本。进一步改进在于:在整个文本生成算法的训练过程,采用交叉迭代替换,分别训练判别器d和生成器g,直到最终判别器d分不清输入数据来源,即输出概率值为0.5,达到纳什均衡。进一步改进在于:正样本辅助训练策略为每一次训练生成器时,都从真实语料库中采样出一部分正样本,然后输入判别器得到较好的reward值。进一步改进在于:在文本隐写算法中,密钥是一个特定的将片段序列转化为词语集合的映射表,将语料库中所有词汇随机采样分成2|b|个分块,每个块是不相交的词汇集合。进一步改进在于:在语料库中每个词恰好出现在一个分块中,并且每个分块的包含词语的大小是|v|/2|b|个,其中|v|表示语料库单词表的个数,如表1所示。进一步改进在于:文本生成模型把现有生成序列作为输入/输出必须从二进制片段对应的词汇集合中选出一个词,由于限制每一步输出必须从一个分块编码词汇集合中映射一个词,使得每个词汇集合的词语数量必须足够多,让生成的文本更加自然,最后解码器以确定的方式直接恢复原始加密数据,根据密钥映射表,将隐写文本词直接对应所属的分块编码,即可恢复了原始的二进制串。本发明的有益效果是:本发明的一种基于生成对抗网络的文本隐写模型,该模型将文本隐写看作是一个文本序列生成过程,通过密钥映射表将秘密文本有效地隐写于生成文本中,同时保证了生成文本有较高的质量(文本流畅度和合理性),在对抗训练中使用策略梯度优化生成器,最后使得生成模型可以生成高质量隐写文本,相比于传统的训练方法,对抗学习过程可以让模型更好地拟合整个语料库的分布,生成更为合理的短语搭配和长文本。附图说明图1是本发明的生成对抗网络的结构图。图2是本发明的判别器训练过程示意图。图3是本发明的生成器训练过程示意图。图4是本发明的文本隐写算法框架。图5是本发明的tweets数据集实验结果。图6是本发明的emails数据集实验结果。图7是本发明的news数据集实验结果。具体实施方式为了加深对本发明的理解,下面将结合实施例对本发明做进一步详述,本实施例仅用于解释本发明,并不构成对本发明保护范围的限定。本实施例公开了一种基于生成对抗网络的文本隐写方法,其特征在于,包括:基于生成对抗网络(以下简称gan)的文本生成模型:生成对抗网络由两部分组成,第一部分是生网络,第二部分是判别网络,让生网络和判别网络相互竞争,通过生成网络来生成假的数据,对抗网络通过判别器判别真伪,最后以生成网络生成的数据来以假乱真骗过判别器;优化生成对抗网络:gan的优化过程是一个极小极大博弈问题,优化目标是达到纳什均衡,使得生成器估测到数据样本的分布,gan的结构图如图1所示。gan输入分别是真实的数据x和随机变量z,g(z)是由g生成尽量服从真实分布pdata(x)的样本。如果判别器d的输入来自真实的数据,则标注为1,如果输入来自g(z)则标注为0。判别器d的目标是实现数据的二分类判别,将真实数据和生成器g生成的伪数据g(z)区分出来,g的优化目标是让其生成的数据g(z)尽量在判别器d上的表现和真实数据x保持一致。相互对抗迭代优化,使得生成器g和判别器d的性能不断提升,当最终d的判别能力提升到一定程度,无法区分数据来源时,可以认为这个生成器已经学到了数据样本的真实分布。生成对抗网络的优化用生成器g和判别器d的零和博弈游戏来表示,其优化目标函数公式为在生成对抗网络的优化过程中,需要训练生成器g来最大化判别数据来源真实数据还是生成数据,同时还需要训练生成模型来最小化使得生成的数据更加能够骗过判别器d,采用交替优化的方法,先固定生成器g,优化判别器d,使得判别器d达到最优,然后固定判别器d,优化生成器g,使得判别器d的判别准确率下降,当且仅当pdata=pg,即判别器d对真实采样样本和生成样本,输出概率都是0.5时达到全局最优解;训练文本生成模型:生成器g生成每一个词看做一个强化学习中代理决策过程,同时借用策略梯度算法来优化生成器g,并在训练过程中用正样本辅助训练技巧,提升算法收敛速度和算法稳定性,生成器gθ用两层单向的lstm神经网络实现,θ是网络的参数,判别器d用多层卷积网络实现,判别器许梿过程如图2所示;生成器g生成的文本数据标记为负样本,采样得到的真实文本数据标记位正样本,将生成器g生成负样本和采样得到的正样本同时输入判别器进行迭代优化,是判别网络参数,判别器损失函数采用交叉熵损失函数,如下公式(2)所示,y(i)是输入数据的标签生成器生成数据定义为0,真实语料库采样数据标记为1;当训练生成器g时,把判别器d参数固定,对于生成器gθ,其训练目标是最终生成合理的文本序列,而对于文本合理性的评价用判别器d来实现,当生成器g生成完成一个完整的序列,将其输入判别器即可得到判别结果作为reward,生成器g优化的目标就是最大化reward值,生成器的损失函数如公式(3)所示,rt是一个完整序列y1:t的reward值,由判别器d给出,gθ(yt|s0:t-1)代表生成器gθ根据历史状态s0:t-1产生决策行为,即产生当前词yt的概率值,生成器训练过程如图3所示;文本隐写算法:首先根据ascii码将待加密的密文映射为二进制串s,然后将二进制串s切分为长度为|b|的片段,最后文本生成模型根据上述片段序列生成隐写文本。在整个文本生成算法的训练过程,采用交叉迭代替换,分别训练判别器d和生成器g,直到最终判别器d分不清输入数据来源,即输出概率值为0.5,达到纳什均衡。正样本辅助训练策略为每一次训练生成器时,都从真实语料库中采样出一部分正样本,然后输入判别器得到较好的reward值。在文本隐写算法中,密钥是一个特定的将片段序列转化为词语集合的映射表,将语料库中所有词汇随机采样分成2|b|个分块,每个块是不相交的词汇集合。在语料库中每个词恰好出现在一个分块中,并且每个分块的包含词语的大小是|v|/2|b|个,其中|v|表示语料库单词表的个数,如下表1所示表1密钥映射表示例分块编码分块词汇集合00first,i,family,capacity,....01head,china,prayers,in,....10mother,the,have,said,thank,....11time,during,evening,messages,....为了实现对密文二进制片段的隐写,模型把现有生成序列作为输入,输出也必须从这个二进制片段对应的词汇集合中选出一个词。由于限制每一步输出必须从一个分块编码词汇集合中映射一个词,所以每个词汇集合的词语数量必须足够多,才可以让生成的文本更加自然。例如,假设密文转化为二进制串:001011011011,并且定义的密钥映射表如上表所示,则文本生成模型生成的隐写文本可能是如下表2所示例子表2隐写文本生成实例二进制串001011011011生成隐写文本ihavetimeintheevening文本生成模型把现有生成序列作为输入/输出必须从二进制片段对应的词汇集合中选出一个词,由于限制每一步输出必须从一个分块编码词汇集合中映射一个词,使得每个词汇集合的词语数量必须足够多,让生成的文本更加自然,最后解码器以确定的方式直接恢复原始加密数据,根据密钥映射表,将隐写文本词直接对应所属的分块编码,即可恢复了原始的二进制串。实验检测本实施例实验使用困惑度(preplexity,ppl)、bleu值来量化生成隐写文本的质量,并用每个输出词能够加密的比特位来度量其加密信息的效率。困惑度是语言模型标准的评价指标,定义为测试集中每个词概率的均值,如下公式(4):其中w={s1,s2,s3,....sn}表示测试样本集,wi是测试集中的一个样本序列,ti是第i个样本的长度,即si={wi,1,wi,2....,wi,ti}。困惑度主要评价语言模型生成句子的合理性,而在本文隐写模型中词汇表的每个单词都映射到一个分块词汇集合,所以为了使评价指标更加客观,在实验评价中用lnp[wi,t]/2|b|代替原公式(4)中lnp[wi,t]。困惑度值越小,表示生成模型生成的文本质量越高。bleu值是一种流行的机器翻译的评价指标,由ibm在2002年提出,其主要思想是度量候选生成文本和参考生成文本中n-grams共同出现的程度,很多学者将bleu值用于文本生成领域评价语言模型生成文本的质量。假设生成的一组隐写文本表示为c={c1,c2...ct},验证数据集中文本数据表示为s={s1,s2...sm},其计算过程如下。在公式(5)中zi,n表示第i个生成的隐写文本ci中可能存在的n-gram个数,将任一n-gram记作wk,hk(ci)表示wk在ci中的出现次数。pn(c,s)是文本的重合精度,b(c,s)是惩罚因子函数,最后通过wn对pn(c,s)求加权平均和计算出bleun分数。本文实验采bleu4评价算法隐写质量,即设置公式中n=4,可以看出bleu4是综合了1-grams到4-grams的文本重合精度,是对生成语言模型较好的一种评价。bleu4值越大表示生成模型越好。隐写容量是指每个输出字的加密比特位数(bpw),其中每个输出字对应一个输出二进制编码片段,由此可知模型的隐写容量是|b|。实验分析数据集实验包括三个数据,分别是tweets,email和news,三者都是公开的英文文本数据,去除特殊字符的文本,词频小于5次的单词用填充字符(即<pad>)替代,经过随机采用得到实验数据如表3所示表3隐写文本生成实例实验设置训练文本生成模型(steq-gan模型)时,生成器采用2层单向的lstm循环神经网,判别器采用卷积神经网络,生成器进行100次迭代的预训练,判别器进行50次的预训练,对抗训练阶段进行200次迭代,在每次迭代中分别训练1次生成器训练优化和5次判别器优化。生成器预训练优化使用负对数似然损失优化,对抗训练阶段使用策略梯度优化。为验证本实施例提出steg-gan模型的有效性,选择典型方法steg-lstm、covertweet进行实验对比。steg-lstm是与文本提出模型算法最为相似,covertweet主要使用短语匹配规则实现对tweet文本隐写。由于covertweet不是基于概率语言模型,本文仅在bpw指标上做了对比。表4、表5、表6分别是隐写算法steg-lstm和文本算法steg-gan在三个数据集的实验结果。bpw代表算法隐写容量是指每个输出字的加密比特位数。ppl代表困惑度指标(preplexity)。表4tweets数据集实验结果表4emails数据集实验结果表6news数据集实验结果可以看出两种算法在相同配置下,steg-gan可以表现出更好的性能,即生成的隐写文本更加逼真和高质量。如图5、图6、图7所示,隐写模型也表现出随着算法隐写容量的增加算法隐写效果下降这样的趋势,这是由于当分块增大时,每个块映射的词数量就会减少,这样生成隐写文本时影响文本流畅度和合理性。对于covertweet模型每生成一个隐写句子会有1-2bits的隐写容量,最好的表现是每个tweet嵌入容量为2.8bits。tweet数据集统计的平均长度为16.19。所以covertweet的bpw为0.17。当|b|=2时,steg-gan每产生一个词将会带有隐写容量2bit。表7所示steg-gan模型的隐写容量大约是covertweet十倍。表7covertweet和steg-gan隐写容量比较算法bpwcovertweet0.17steg-gan(|b|=2)2在表8中,对比了steg-lstm和steg-gan两个模型在tweets生成结果。条件是随机选择32bit的二进制串作为密文,产生隐写文本。表中<pad>表示词频小于5次的单词用填充字符替代,可以看出本文的steg-gan模型生成的密文质量更高,也更符合人类语言逻辑。表8生成隐写文本结果(tweets数据集模型,随机32bit密文生成)当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1