Jae Hyun Lim, Jong Chul Ye, Geometric GAN.

很有趣, GAN的训练过程可以分成

  1. 寻找一个超平面区分real和fake;
  2. 训练判别器, 使得real和fake分得更开;
  3. 训练生成器, 使得real趋向错分一侧.

主要内容

McGAN

本文启发自McGAN, 在此基础上, 有了下文.

结合SVM

设想, GAN的判别器\(D(x) = S(\langle w, \Phi_{\zeta}(x) \rangle)\), 其中\(S\)是一个激活函数, 常见如sigmoid, 先假设其为identity(即\(D(x)=\langle w, \Phi_{\zeta}(x) \rangle\)).

McGAN 是借助\(\langle w, \Phi_{\zeta}(x)\rangle\)来构建IPM, 并通过此来训练GAN. 但是,注意到, 若将\(\Phi_{\zeta}(x)\)视作从\(x\)中提取出来的特征, 则\(\langle w, \Phi_{\zeta}(x)\rangle\)便是利用线性分类器进行分类,那么很自然地可以将SVM引入其中(训练判别器的过程.

\[\begin{array}{rcl}
\min_{w, b} & \frac{1}{2} \|w\|^2 + C \sum_i (\xi_i + \xi_i') & \\
\mathrm{subject \: to} & \langle w, \Phi_{\zeta}(x_i) \rangle + b \ge 1-\xi_i & i=1,\ldots, n\\
& \langle w, \Phi_{\zeta}(g_{\theta}(z_i)) \rangle + b \le \xi_i'-1 & i=1,\ldots,n \\
& \xi_i, \xi_i' \ge 0, \: i=1,\ldots,n.
\end{array}
\]

类似于

\[\tag{13}
\min_{w,b} \: R_{\theta}(w,b;\zeta),
\]

其中

\[\tag{14}
\begin{array}{ll}
R_{\theta}(w,b;\zeta) =
& \frac{1}{2C n} \|w\|^2 + \frac{1}{n} \sum_{i=1}^n \max (0, 1-\langle w, \Phi_{\zeta} (x_i) \rangle -b) \\
& + \frac{1}{n} \sum_{i=1}^n \max (0, 1+ \langle w, \Phi_{\zeta}(g_{\theta}(z_i))\rangle+b).
\end{array}
\]

进一步地, 用以训练\(\zeta\):

\[\tag{15}
\min_{w,b,\zeta} \: R_{\theta}(w,b;\zeta).
\]

SVM关于\(w\)有如下最优解

\[w^{SVM} := \sum_{i=1}^n \alpha_i \Phi_{\zeta}(x_i) - \sum_{i=1}^n \beta_i \Phi_{\zeta} (g_{\theta}(z_i)),
\]

其中\(\alpha_i, \beta_i\)只有对支持向量非零.

定义

\[\mathcal{M} = \{\phi \in \Xi | |\langle w^{SVM}, \phi \rangle + b | \le 1\}
\]

为margin上及其内部区域的点.

于是

\[\tag{18}
\begin{array}{ll}
R_{\theta}(w,b;\zeta) = \frac{1}{n} \sum_{i=1}^n \langle w^{SVM}, s_i \Phi_{\zeta} (g_{\theta}(z_i))-t_i \Phi_{\zeta}(x_i) \rangle + \mathrm{constant},
\end{array}
\]

其中

\[\tag{19}
t_i =
\left \{ \begin{array}{ll}
1, & \Phi_{\zeta}(x_i) \in \mathcal{M} \\
0, & \mathrm{otherwise}
\end{array} \right. , \quad
s_i =
\left \{ \begin{array}{ll}
1, & \Phi_{\zeta}(g_{\theta}(z_i)) \in \mathcal{M}\\
0, & \mathrm{otherwise}.
\end{array} \right.
\]

训练\(\zeta\)

于是\(\zeta\)由此来训练

\[\zeta \leftarrow \zeta +\eta \frac{1}{n} \sum_{i=1}^n \langle w^{SVM}, t_i \nabla_{\zeta} \Phi_{\zeta}(x_i) - s_i \nabla_{\zeta}\Phi_{\zeta} (g_{\theta}(z_i)) \rangle .
\]

训练\(g_{\theta}\)

就是固定\(w,b,\zeta\)训练\(\theta\).

所以

\[\min_{\theta} \: L_{w, b, \zeta}(\theta),
\]

其中

\[L_{w,b,\zeta}(\theta)= -\frac{1}{n} \sum_{i=1}^n D(g_{\theta}(z_i)),
\]

\[\theta \leftarrow \theta+\eta \frac{1}{n} \sum_{i=1}^n \langle w^{SVM}, s_i \nabla_{\theta}\Phi_{\zeta} (g_{\theta}(z_i)) \rangle .
\]

理论分析

\(n \rightarrow \infty\)的时候





定理1: 假设\((D^*,g^*)\)是(24), (25)交替最小化解, 则\(p_{g^*}(x)=p_x(x)\)几乎处处成立, 此时\(R(D^*,G^*)=2\).

注: 假体最小化是指在固定\(g^*\)下, \(R(D^*,g^*)\)最小,在固定\(D^*\)下\(L(D^*,g^*)\)最小.

证明



注:文中附录分析了各种GAN的超平面分割解释, 挺有意思的.

Geometric GAN的更多相关文章

  1. [转]GAN论文集

    really-awesome-gan A list of papers and other resources on General Adversarial (Neural) Networks. Th ...

  2. 语音合成论文翻译:2019_MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis

    论文地址:MelGAN:条件波形合成的生成对抗网络 代码地址:https://github.com/descriptinc/melgan-neurips 音频实例:https://melgan-neu ...

  3. (转) How to Train a GAN? Tips and tricks to make GANs work

    How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...

  4. 不要怂,就是GAN (生成式对抗网络) (一)

    前面我们用 TensorFlow 写了简单的 cifar10 分类的代码,得到还不错的结果,下面我们来研究一下生成式对抗网络 GAN,并且用 TensorFlow 代码实现. 自从 Ian Goodf ...

  5. 基本概率分布Basic Concept of Probability Distributions 3: Geometric Distribution

    PDF version PMF Suppose that independent trials, each having a probability $p$, $0 < p < 1$, o ...

  6. geometric median

    The geometric median of a discrete set of sample points in a Euclidean space is the point minimizing ...

  7. Codeforces Round #Pi (Div. 2) C. Geometric Progression map

    C. Geometric Progression Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  8. nylg 640 Geometric Sum

    Geometric Sum 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 Compute (a + a^2 + … + a^n) mod m.(a+a2+…an)m ...

  9. CodeForces 567C Geometric Progression

    Geometric Progression Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I ...

随机推荐

  1. C++之无子数

    题目如下: 1 #include <iostream> 2 3 using namespace std; 4 5 6 bool isThisNumhaveChild(int num); 7 ...

  2. java网站架构设计

    涉及到的技术及工具:java,springmvc,ibatis,freemarker,mysql,mongdb,memcached,ehcache,maven. 一个网站不可能说一开始就是要设计一个能 ...

  3. Swift3.0 延时执行

    //延时1s执行 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(1*NSEC_PER_SEC))/ ...

  4. @PropertySource配置的用法

    功能 加载指定的属性文件(*.properties)到 Spring 的 Environment 中.可以配合 @Value 和@ConfigurationProperties 使用. @Proper ...

  5. 【Linux】【Basis】网络

    Linux网络属性配置                           计算机网络:          TCP/IP:协议栈(使用)             ISO,OSI:协议栈(学习)     ...

  6. 基于阿里云 ecs 使用 docker 方式部署 showDoc

    官网文档:https://www.showdoc.cc/help?page_id=65610 (建议先看下这个) 首先说明一下,我 ecs 镜像是 CentOS 7.6 64位 1. 首先在 服务器上 ...

  7. 【力扣】922. 按奇偶排序数组 II

    给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组 ...

  8. 使用RabbitMQ搭建MQTT服务

    由于近期公司需要搭建一套物联网采集环境,底层设备采用MQTT协议传输数据.服务器环境为linux,考虑到现有环境已经有RabbitMQ环境,Rabbit是基于AMQP协议开发的一套高效的消息传输队列. ...

  9. C#内建接口:IEnumerable

    这节讲一下接口IEnumerable. 01 什么是Enumerable 在一些返回集合数据的接口中,我们经常能看到IEnumerable接口的身影.那什么是Enumerable呢?首先它跟C#中的e ...

  10. 什么是内容分发CDN

    一.简介 CDN全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络 基本思路: 尽可能避开互联网上有可能影响数据传输速度和稳 ...