目录

Miyato T., Kataoka T., Koyama M & Yoshida Y. SPECTRAL NORMALIZATION FOR GENERATIVE ADVERSARIAL NETWORKS. ICLR, 2018.

通过限制谱范数来限制Lipschitz常数, 但又不像weight normalization 或者其它的正则化方法一样, 本文提出的方法不会丧失过多的灵活性且保持高效.

主要内容

经过WGAN之后, 有许多方法是探讨如何限制Lipschitz常数的, 即

\[\min_G \max_{\|f\|_{Lip} \le K} V(G, D),
\]

其中\(f\)为

\[f(x,\theta) = W^{L+1}a_L (W^L(a_{L-1}(W^{L-1}(\cdots a_1(W^1x)\cdots)))),
\]
\[D(x,\theta) = \mathcal{A}(f(x,\theta)).
\]

实际上,

\[\|f\|_{Lip} \le \prod_{i=1}^{L+1} \sigma(W^l),
\]

其中\(\sigma\)为谱范数. 故本文的思想是, 实际使用下面的权重矩阵

\[\bar{W}_{SN} (W) := W/\sigma(W),
\]

此时\(\|f\|_{Lip} \le 1\).

但是, 由于\(W\)在训练过程中是变化的, 所以, 作者并不是精确求解\(\sigma(W)\), 采用了一种类似running average的方式, 既然

\[\sigma(W) = u_1^T Wv_1,
\]

其中\(u_1, v_1\)分别为\(\sigma(W)\)所对应的左特征向量和右特征向量.

作者进一步分析, 经过标准化后的\(W\)的梯度的变化

\[\frac{\partial V(G, D)}{\partial W} = \frac{1}{\sigma(W)} (\hat{\mathbb{E}}[\delta h^T] - \lambda u_1v_1^T),
\]

其中\(\lambda:= \hat{\mathbb{E}}[\delta^T (\bar{W}_{SN}h)]\), \(\delta:= (\partial V(G,D) / \partial (\bar{W}_{SN}h))^T\) . 与原来的梯度仅仅差了后面的一项, 这相当于阻止整个网络仅仅往一个方向学习而产生mode collapse.

实际上, 已经有很多类似的方法了, 一些是在损失函数后面加正则化项, 一些是直接要求多个奇异值的和等于某一个值(WN), 作者认为这些方法会让网络的能力下降, 在某种程度上会迫使权重的奇异值集中在一个维度之上. 还有像正交化的约束, 是能够避免集中在一个维度之上的, 但是这假设所以维度的意义是同等重要, 这个并不合适, 因为谱不一致是有意义的.

SNGAN的更多相关文章

  1. GANS 资料

    https://blog.csdn.net/a312863063/article/details/83512870 目 录第一章 初步了解GANs 3 1. 生成模型与判别模型. 3 2. 对抗网络思 ...

  2. 你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

    生成对抗网络(GAN)是当今最流行的图像生成方法之一,但评估和比较 GAN 产生的图像却极具挑战性.之前许多针对 GAN 合成图像的研究都只用了主观视觉评估,一些定量标准直到最近才开始出现.本文认为现 ...

  3. 2019 ICCV、CVPR、ICLR之视频预测读书笔记

    2019 ICCV.CVPR.ICLR之视频预测读书笔记 作者 | 文永亮 学校 | 哈尔滨工业大学(深圳) 研究方向 | 视频预测.时空序列预测 ICCV 2019 CVP github地址:htt ...

  4. 软件工程第一次作业:Warm Up

    Warm Up 项目 内容 作业所属课程 2021春季软件工程(罗杰 任健) 作业要求 第一次阅读作业 课程目标 培养通过团队协作使用软件开发工具按照软件工程方法开发高质量并且可用的复杂软件系统的能力 ...

随机推荐

  1. python 多态、组合、反射

    目录 多态.多态性 多态 多态性 鸭子类型 父类限制子类的行为 组合 面向对象的内置函数 反射 多态.多态性 多态 多态通俗理解起来,就像迪迦奥特曼有三种形态一样,怎么变还是迪迦奥特曼 定义:多态指的 ...

  2. day14搭建博客系统项目

    day14搭建博客系统项目 1.下载代码包 [root@web02 opt]# git clone https://gitee.com/lylinux/DjangoBlog.git 2.使用pid安装 ...

  3. 零基础学习java------20---------反射

    1. 反射和动态代理 参考博文:https://blog.csdn.net/sinat_38259539/article/details/71799078 1.0 什么是Class: 我们都知道,对象 ...

  4. git 的基本流程

    有个本地文件 打开 新建一个 打开git $ git push origin master 这里是上传文件.  (你每次上传的时候,都要先提交到本地的仓库...然后再上传) github上就有了 如何 ...

  5. TCP中的TIME_WAIT状态

    TIME_WAIT的存在有两大理由 1.可靠地实现TCP全双工连接的终止 2.允许老的可重复分节在网络中消失. 对于理由1,我们知道TCP结束需要四次挥手,若最后一次的客户端的挥手ACK丢失(假设是客 ...

  6. js实现递归菜单无限层

    /*动态加载菜单*/ function dynamicMenu(data){ if (userID != "admin"){ //1.清空所有菜单 $("#menuLis ...

  7. HUD总结

    HUD 指示器/HUD/遮盖/蒙板 半透明的指示器如何实现 指示器的alpha = 1.0; 指示器的背景色是半透明的 1. 创建颜色 直接创建对应的颜色 + (UIColor *)blackColo ...

  8. my39_InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析

    MySQL InnoDB支持三种行锁定方式: 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. 间隙锁(Gap Lock): 锁定索引记录间隙,确保索引记录的间隙不变.间隙锁是 ...

  9. 网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)

    一.访问控制列表是什么? 访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃.访问控制列表被广泛地应用于路由器和三层交换机,借助于访问 ...

  10. 0RAYS元旦招新赛

    一共有4道pwn题,题目不算难,但是挺考验调试能力的. pie 一个main函数就四次溢出... 第一次leak canary,第二次leak libc,第三次直接覆盖返回地址为one_gadgets ...