当前位置: 首页 > news >正文

深度学习之GAN应用

1 GAN的应用(文本生成)

1.1 GAN为什么不适合文本任务?

​ GAN在2014年被提出之后,在图像生成领域取得了广泛的研究应用。然后在文本领域却一直没有很惊艳的效果。主要在于文本数据是离散数据,而GAN在应用于离散数据时存在以下几个问题:

  • GAN的生成器梯度来源于判别器对于正负样本的判别。然而,对于文本生成问题,RNN输出的是一个概率序列,然后取argmax。这会导致生成器Loss不可导。还可以站在另一个角度理解,由于是argmax,所以参数更新一点点并不会改变argmax的结果,这也使得GAN不适合离散数据。
  • GAN只能评估整个序列的loss,但是无法评估半句话,或者是当前生成单词对后续结果好坏的影响。
  • 如果不加argmax,那么由于生成器生成的都是浮点数值,而ground truth都是one-hot encoding,那么判别器只要判别生成的结果是不是0/1序列组成的就可以了。这容易导致训练崩溃。

1.2 seqGAN用于文本生成

​ seqGAN在GAN的框架下,结合强化学习来做文本生成。 模型示意图如下:

在这里插入图片描述

在文本生成任务,seqGAN相比较于普通GAN区别在以下几点:

  • 生成器不取argmax。
  • 每生成一个单词,则根据当前的词语序列进行蒙特卡洛采样生成完成的句子。然后将句子送入判别器计算reward。
  • 根据得到的reward进行策略梯度下降优化模型。

2 GAN在其他领域的应用

2.1 数据增广

​ GAN的良好生成特性近年来也开始被用于数据增广。以行人重识别为例,有许多GAN用于数据增广的工作[1-4]。行人重识别问题一个难点在于不同摄像头下拍摄的人物环境,角度差别非常大,导致存在较大的Domain gap。因此,可以考虑使用GAN来产生不同摄像头下的数据进行数据增广。以论文[1]为例,本篇paper提出了一个cycleGAN用于数据增广的方法。具体模型结构如下:

在这里插入图片描述

​ 对于每一对摄像头都训练一个cycleGAN,这样就可以实现将一个摄像头下的数据转换成另一个摄像头下的数据,但是内容(人物)保持不变。
在CVPR19中,[9]进一步提升了图像的生成质量,进行了“淘宝换衣”式的高质量图像生成(如下图),提供了更高质量的行人训练数据。

在这里插入图片描述

2.2 图像超分辨与图像补全

​ 图像超分辨与补全均可以作为图像翻译问题,该类问题的处理办法也大都是训练一个端到端的网络,输入是原始图片,输出是超分辨率后的图片,或者是补全后的图片。文献[5]利用GAN作为判别器,使得超分辨率模型输出的图片更加清晰,更符合人眼主管感受。日本早稻田大学研究人员[6]提出一种全局+局部一致性的GAN实现图像补全,使得修复后的图像不仅细节清晰,且具有整体一致性。

2.3 语音领域

​ 相比于图像领域遍地开花,GAN在语音领域则应用相对少了很多。这里零碎的找一些GAN在语音领域进行应用的例子作为介绍。文献[7]提出了一种音频去噪的SEGAN,缓解了传统方法支持噪声种类稀少,泛化能力不强的问题。Donahue利用GAN进行语音增强,提升了ASR系统的识别率。

http://www.lryc.cn/news/484946.html

相关文章:

  • 鸿蒙生态下的安全隐私保护:打造用户信任的应用体验
  • 用pandoc工具实现ipynb,md,word,pdf之间的转化
  • 第三十一天|贪心算法| 56. 合并区间,738.单调递增的数字 , 968.监控二叉树
  • 力扣 最长公共前缀-14
  • IDEA调整警告级别【IntelliJ IDEA 2024.2.0.1】
  • Vulnhub靶场 Billu_b0x 练习
  • Essential Cell Biology--Fifth Edition--Chapter one (6)
  • Jupyter Book 快捷键总结大全
  • Spring Authorization Server OAuth2.1
  • 解决”重复文件名重命名“问题【根据Word系统方式】
  • 【PyTorch】PyTorch Geometric(PyG)安装指南:如何高效配置图神经网络环境
  • SolidWorks21装配体中一个零件无法改为线架图
  • 11.11机器学习_介绍和定义
  • 【代码审计】常见漏洞专项审计-业务逻辑漏洞审计
  • SpringBoot单体服务无感更新启动,动态检测端口号并动态更新
  • CSS基础知识04
  • python程序对服务器cpu和内存资源占用的管理。
  • java算法性能调优:详尽探讨时间复杂度与空间复杂度的分析与优化“
  • 人工智能:塑造未来的工作与生活
  • RK3568笔记六十九: 事件回调处理之Libevent 简单使用
  • MySQL如何解决幻读?
  • Javascript_设计模式(二)
  • 时间同步服务器
  • react+hook+vite项目使用eletron打包成桌面应用+可以热更新
  • STM32 ADC --- DMA乒乓缓存
  • SpringCloud基础 入门级 学习SpringCloud 超详细(简单通俗易懂)
  • 【Windows 常用工具系列 20 -- MobaXterm 登录 WSL】
  • 【vmware+ubuntu16.04】ROS学习_博物馆仿真克隆ROS-Academy-for-Beginners软件包处理依赖报错问题
  • UniApp的Vue3版本中H5配置代理的最佳方法
  • 深入了解Pod