SentiGAN: Generating Sentimental Texts via Mixture Adversarial Networks论文笔记

SentiGAN是一种新的文本生成框架,旨在解决使用GAN生成情感文本时的质量、多样性和模式崩溃问题。该框架包含多个生成器和一个多类判别器,以无监督方式生成不同情感标签的多样化文本。通过引入基于惩罚的目标,每个生成器被鼓励生成特定情感标签的高质量样本,提高情感准确性和文本多样性。在四个数据集上的实验表明,SentiGAN优于现有文本生成方法。

另一篇很好的解释:https://www.itcodemonkey.com/article/6378.html

摘要

在自然语言生成领域, 不同情感标签的生成越来越受到人们的关注。近年来, 生成性对抗网 (gan) 在文本生成方面取得了良好的效果。然而, gan 产生的文本通常存在质量差、缺乏多样性和模式崩溃的问题。本文提出了一个新的框架--sentyan, 它有多个生成器和一个多类判别器, 以解决上述问题。在我们的框架中, 多个生成器同时进行训练, 旨在在没有监督的情况下生成不同情绪标签的文本。我们建议在生成器中建立一个基于惩罚的目标, 以迫使它们中的每一个产生一个特定情感标签的多样化例子。此外, 使用多个生成器和一个多类鉴别器可以使每个生成器专注于准确生成自己的特定情感标签的示例。在四个数据集上的实验结果表明, 我们的模型在生成文本的情感准确性和质量方面始终优于几种最先进的文本生成方法。

 

 Introduction

 

情商是人工智能的重要组成部分。自动理解和生成感情用事的文本不仅使机器对人类更友好, 而且使它们看起来更聪明。目前短篇文本的情感分类已经取得了良好的进展。例如, 最先进的情绪分类器之一在斯坦福情感树库数据集上的准确率达到了 90% [hu 等人, 2016年]。但与情感分类的成功相比, 一般的情感文本生成具有挑战性, 最近很少有人试图对其进行调查。以前的工作大多限于特定于任务的应用程序, 只是使用隐藏的变量间接控制生成文本的情绪标签, 特别是在情绪反应生成中 [zhou 等人, 2017年;周和王, 2017]。在感情用事的文本生成的深层生成模型中, 很难设计出合适的、具体的训练目标。生成性对抗网 (gan) [good7个等人, 2014年] 是解决这一问题的一个很好的办法, 它使用的是鉴别器, 而不是指导生成器的具体目标。主要直觉是, 由于文本情感分类非常强, 我们可以用分类器来指导感伤文本的生成

在本研究中, 我们的目标是利用 gan 生成各种高质量的感伤文本。也就是说, 在没有并行语料库的情况下, 我们可以在没有监督的情况下自动生成各种可控的感伤文本。然而, 在应用 gan 生成感伤文本时, 仍有一些挑战需要应对。首先, 文本的离散性质导致采样步骤是不可微的, 这使得梯度不可能从鉴别器传递到生成器。近年来, 一些研究将鉴别器引导生成器的过程作为强化学习政策 [yu 等人, 2017年;guo 等人, 2017年]。尽管如此, 生成的文本仍然面临质量差的问题。其次, gan 的主要缺点之一是 "模式崩溃" 问题, 经验证明, gan 更喜欢只围绕少数模式生成样本, 而忽略其他模式 [theis 等人, 2016]。因此, 生成的文本缺乏多样性。

我们提出一个新的文本生成框架----森蒂根, 以解决上述问题, 并生成不同情绪标签的文本。松根由多个发电机和一个多级鉴别器组成, 它们同时训练。与 [yu 等人, 2017] 一样, 我们认为序列生成过程是一个顺序决策过程。我们将每个生成模型视为一个随机参数化策略, 并使用蒙特卡罗搜索来近似状态动作值。然后利用鉴别器对生成

### 使用对抗网络生成对抗样本的方法 对抗样本是指那些经过精心设计,在视觉上几乎无法察觉的变化被施加到原始输入上的样例,这些变化可以使机器学习模型做出错误预测。对于基于生成对抗网络(GAN)的图像对抗样本生成方法而言,核心思路是在已有GAN架构基础上调整优化目标函数,使得生成器产生的样本不仅看起来真实而且能误导特定的目标分类器。 #### 方法概述 为了实现这一目的,通常会采用如下策略: - **引入额外损失项**:除了原有的生成器与判别器之间的博弈外,还需加入一个新的约束条件——即让生成的数据尽可能使给定的目标分类器犯错。这可以通过修改生成器的损失函数来完成,具体来说就是增加一项衡量目标分类器对伪造样本误分类程度的新指标[^1]。 - **微调超参数**:由于涉及到两个不同的任务(欺骗判别器和攻击其他分类器),因此可能需要仔细调节一些超参数以平衡两者的重要性并获得最佳效果。 #### 实现过程中的注意事项 当尝试构建这样的系统时,有几个方面值得注意: - 数据集的选择应当充分考虑到所要攻击的具体应用场景; - 需要确保用于训练的基础GAN已经收敛良好,可以稳定地产出高质量图片; - 对抗扰动的程度应控制在一个合理范围内,既不能太弱以至于不起作用也不能过强而破坏了原图特征; 下面给出一段简单的Python代码片段作为示例说明如何利用预训练好的生成器创建对抗样本: ```python import numpy as np from keras.models import load_model # 加载已训练完毕的生成器模型 generator = load_model('path_to_generator.h5') # 准备随机噪声向量作为输入 noise = np.random.normal(0, 1, (batch_size, latent_dim)) # 调整生成器行为使其专注于制造可导致指定分类器失误的结果 adversarial_samples = generator.predict(noise) # 将生成的对抗样本保存下来以便后续分析或测试使用 np.save('generated_adversarial_samples.npy', adversarial_samples) ``` 此段代码假设读者已经有了一个预先训练好并且表现良好的生成器`generator`以及适当设置过的批量大小`batch_size`和潜在空间维度`latent_dim`。实际应用中还需要根据具体情况进一步完善细节处理逻辑[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

catbird233

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

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

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

打赏作者

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

抵扣说明:

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

余额充值