目录

中心:

1.SAGAN解决的问题

2.SAGAN的模型架构

3.SAGAN的优化

Spectral Normalization(光谱归一化)

TTUR(生成器和判别器使用单独的学习率)


中心:

提出目的: SAGAN 既在每一层都考虑了全局信息,也没有引入过多的参数量,在提高感受野和减小参数量之间找到了一个很好的平衡。
因此,如果我们的生成任务是全局相关性比较高的图片,就可以考虑使用SAGAN。

方法:通过用带有自注意力的特征图去代替传统的卷积特征图,得到自适应注意力的特征图

两种优化:
①、Spectral Normalization : 稳定了训练和生成过程,
②、TTUR:平衡了 D 与 G 的训练速度,在相同的单位时间内产生更好的结果


1.SAGAN解决的问题

用深度卷积网络能够提升 GANs 生成高分辨率图片的细节,但是由于卷积网络的局部感受野的限制,如果要生成大范围相关(Long-range dependency)的区域,卷积网络就会出现问题。譬如说在生成人脸图片时,是非常注重细节的,以左右眼举例,只要左右眼有一点点不对称,就会显得生成的人脸特别不真实。但是因为一般的卷积核很难覆盖很大的区域,在对左眼区域做卷积时它看不到右眼对左眼的影响,这样产生的图片就会缺乏人脸结构特征的完整性。因此,现在我们需要解决的问题是,如何找到一种能够利用全局信息的方法?
传统的一些做法(参数量太大计算量太大):

1、比如用更深的卷积网络,

2、或者直接采用全连接层获取全局信息;

直到 SAGAN 的提出,把 Attention 机制引入了 GANs 的图像生成当中,才找到一种比较简约且高效的方法解决了这一问题。


2.SAGAN的模型架构

上述结构就是用带有自注意力的特征图去代替传统的卷积特征图。方法如下:

首先,f(x),g(x)和 h(x)都是普通的 1x1 卷积,差别只在于输出通道大小不同(这是1x1 卷积的特性,可以通过控制1x1 卷积的通道数来实现特征通道的升维和降维,详细看“https://blog.csdn.net/weixin_43135178/article/details/116143769”);将 f(x)的输出转置,并和 g(x)的输出相乘,再经过 softmax 归一化得到一个 attention map;
将得到的 attention map 和 h(x)逐像素点相乘,得到自适应注意力的特征图。

具体的计算方法如下:

另外,我们进一步将关注图层的输出 o 乘以比例参数γ并添加回输入要素图 x。 因此, 最终输出由下式给出,


其中γ被初始化为 0,然后逐渐学会为非本地特征分配更多权重。 为什么要这样做呢? 理由很简单:我们希望先学习简单的任务,然后逐步增加任务的复杂性。 在 SAGAN 中,所提出的自注意力模块已经应用于生成器和判别器,它们通过最小化对抗性损失的铰链形式以交替方式进行训练,SAGAN 采用的 loss 表达式如下:


3.SAGAN的优化

SAGAN 当中提出了两种优化,分别是 Spectral NormalizationTTUR,前者稳定了训练和生成过程,后者平衡了 D 与 G 的训练速度,简要地介绍如下:

Spectral Normalization(光谱归一化)

SAGAN 为 D 和 G 加入了谱范数归一化的方式,让 D 满足了 1-lipschitz 限制,同时也避免了 G 的参数过多导致梯度异常,使得整套训练较为平稳和高效。关于 Spectral Normalization 的具体过程请参阅 Part1 中的 SNGAN。

TTUR(生成器和判别器使用单独的学习率)

在以前的工作中,判别器的正则化通常会减慢 GAN 学习过程。 实际上,使用正则化判别器的方法通常在训练期间每个生成器需要多个更新步骤(例如,5 个)。 独立地,Heusel等人主张对生成器和判别器使用单独的学习率(TTUR)。 我们建议专门使用 TTUR 来补偿正则化判别器中慢学习的问题,使得对于每个判别器步骤使用更少的生成器步骤成为可能。 使用这种方法,我们能够在相同的单位时间内产生更好的结果。

综上,便是 SAGAN 提出来的用自注意力机制去解决全局信息获取的问题,它既在每一层都考虑了全局信息,也没有引入过多的参数量,在提高感受野和减小参数量之间找到了一个很好的平衡。因此,如果我们的生成任务是全局相关性比较高的图片,就可以考虑使用SAGAN。


G-lab网址:G-Lab人脸生成实验

SAGAN(G-lab介绍)相关推荐

  1. xliff:g标签介绍:

    <xliff:g>标签介绍: <string name="appwidget_text_format"><xliff:g id="prefi ...

  2. 硬盘的P表和G表介绍

    转自中国存储网,原文链接:硬盘的P表和G表介绍 导读:对硬盘中的P表以及G表等进行介绍:P表和G表用于记录硬盘的缺陷扇区的情况,使硬盘在工作时不会在缺陷扇区中读写数据,防止数据损坏. 在存储百科的(硬 ...

  3. gcc g++ 参数介绍

    C和C++ 编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理 (preprocessing),编译(compilation),汇编(assembly)和连接(linking).源 ...

  4. G Suit 介绍

    数以百万计的G套件用户.数以百万计的人你的应用程序可以触及. 建立在G套件. 你的团队. G Suite是一组应用程序,包括Gmail.文档.表格.幻灯片.站点等,以及供组织使用的一组消息传递.协作. ...

  5. sagan 自注意力_请使用英语:自我注意生成对抗网络(SAGAN)

    sagan 自注意力 介绍 (Introduction) In my effort to better understand the concept of self-attention, I trie ...

  6. 腾讯AI Lab两大算法刷新人脸识别与检测纪录,秉承「基础研究+落地应用」之路

    2017-12-22 10:07:03 雷锋网 AI 科技评论按:12 月 18 日,腾讯 AI Lab 宣布,其研发的人脸算法 Face R-FCN 和 Face CNN 分别在人脸检测平台 WID ...

  7. Linux极速上手,超全面总结,jdk使用教程

    12.5 进程管理之服务(service)管理 12.6 查看服务名 12.7 运行级别 12.7.1 chkconfig –list 12.8 进程管理之监控服务--top [选项] 12.9 ne ...

  8. Linux极速上手,超全面总结

    1)代码的具体实现可以参考代码中的注释,如果由于注释不清楚而不明白相应原理,可以与作者私聊.码字不易,有兴趣的小伙伴点个赞呗,大家相互学习. 2)有同学让我分享一下该知识的 PDF 版,所以我整理了一 ...

  9. Android 占位符 %1$s %1$d

    1.整型,比如"我今年23岁了",这个23是整型的.在string.xml中可以这样写,<string name="old">我今年%1$d岁了&l ...

最新文章

  1. 六十六,完成SpringBoot项目中的员工增删查改功能
  2. java ssm 项目_ssm开源java博客项目,基于maven搭建
  3. av linux,linux下的开源clanav
  4. Ubuntu 安装arm-linux-gcc交叉编译工具
  5. html页面内容的收缩和展开效果,jquery简单实现网页层的展开与收缩效果
  6. html英文参考文献,英文参考文献标准格式
  7. 如何把自己打造成为一名金领架构师-基础篇(一)
  8. mysql分组函数、组函数、聚合函数、统计函数
  9. 终于更新了!利用黎曼几何分析EEG脑电信号(三)
  10. WEB介绍(beego)
  11. 如何提高团队管理能力3
  12. 二、考研数据结构笔记——绪论(理解数据结构,算法,时间复杂度计算做题技巧)
  13. Oracle同步数据到MySQL
  14. seaborn palette参数各配色方案及显示效果
  15. 创新与赛道定义 ——产品定义和建立赛道是个技术活
  16. 迷宫问题 深度优先搜索 广度优先搜索 宽度优先搜索【python】
  17. 生猛!实时把画质变成 4k 高清的神库!
  18. 中国电子信息百强企业网-2006年(第20届)电子信息百强企业名单
  19. Adobe AIR 安装出错解决方案
  20. 0506-五一开盘第一天大涨,郑煤涨停,焦煤涨停。

热门文章

  1. 当前监管面比较关注的企业征信模型
  2. Servlet - 会话跟踪
  3. [洛谷P3829][SHOI2012]信用卡凸包
  4. 开发者论坛一周精粹(第五十七期) 阿里云免费套餐 个人备案备注
  5. leetcode题解(二叉树和递归问题)
  6. BZOJ5290 洛谷4438:[HNOI/AHOI2018]道路——题解
  7. Heron 数据模型,API和组件介绍
  8. AppDelegate 方法介绍
  9. 查看mysql状态常用命令
  10. wikioi 1163 訪问艺术馆 树形dp