Geometric GAN
概
很有趣, GAN的训练过程可以分成
- 寻找一个超平面区分real和fake;
- 训练判别器, 使得real和fake分得更开;
- 训练生成器, 使得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引入其中(训练判别器的过程.
\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}
\]
类似于
\min_{w,b} \: R_{\theta}(w,b;\zeta),
\]
其中
\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\):
\min_{w,b,\zeta} \: R_{\theta}(w,b;\zeta).
\]
SVM关于\(w\)有如下最优解
\]
其中\(\alpha_i, \beta_i\)只有对支持向量非零.
定义
\]
为margin上及其内部区域的点.

于是
\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}
\]
其中
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\)由此来训练
\]
训练\(g_{\theta}\)
就是固定\(w,b,\zeta\)训练\(\theta\).
所以
\]
其中
\]
的
\]
理论分析
\(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的更多相关文章
- [转]GAN论文集
really-awesome-gan A list of papers and other resources on General Adversarial (Neural) Networks. Th ...
- 语音合成论文翻译:2019_MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis
论文地址:MelGAN:条件波形合成的生成对抗网络 代码地址:https://github.com/descriptinc/melgan-neurips 音频实例:https://melgan-neu ...
- (转) 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 ...
- 不要怂,就是GAN (生成式对抗网络) (一)
前面我们用 TensorFlow 写了简单的 cifar10 分类的代码,得到还不错的结果,下面我们来研究一下生成式对抗网络 GAN,并且用 TensorFlow 代码实现. 自从 Ian Goodf ...
- 基本概率分布Basic Concept of Probability Distributions 3: Geometric Distribution
PDF version PMF Suppose that independent trials, each having a probability $p$, $0 < p < 1$, o ...
- geometric median
The geometric median of a discrete set of sample points in a Euclidean space is the point minimizing ...
- 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 ...
- nylg 640 Geometric Sum
Geometric Sum 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Compute (a + a^2 + … + a^n) mod m.(a+a2+…an)m ...
- CodeForces 567C Geometric Progression
Geometric Progression Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I ...
随机推荐
- 学习java 7.28
学习内容: Applet Applet一般称为小应用程序,Java Applet就是用Java语言编写的这样的一些小应用程序,它们可以通过嵌入到Web页面或者其他特定的容器中来运行,也可以通过Java ...
- SpringBoot Logback 日志配置
目录 前言 日志格式 日志输出 日志轮替 日志级别 日志分组 小结 前言 之前使用 SpringBoot 的时候,总是习惯于将日志框架切换为 Log4j2,可能是觉得比较靠谱,也可能年龄大了比较排斥新 ...
- day27 网络编程
1.OSI七层协议 1.七层划分为:应用层,表示层.会话层.传输层.网络层.数据链路层.物理层 2.五层划分:应用层.传输层.网络层.数据链路层.物理层 应用层: 表示层: 会话层: 传输层:四层交换 ...
- 12. Fedora 中文乱码问题
1. Rhythmbox(音乐播放器乱码) yum install python-mutagen mid3iconv -e GBK *.mp3 2. totem电影播放机播放列表乱码解决1).修改to ...
- SpringBoot之HandlerInterceptorAdapter
SpringBoot之HandlerInterceptorAdapter 在SpringBoot中我们可以使用HandlerInterceptorAdapter这个适配器来实现自己的拦截器.这样就 ...
- 转 Android Monkey压力测试使用
转自:https://www.jianshu.com/p/c8844327f5e9 一.Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送 ...
- 转 Android中Activity的启动模式(LaunchMode)和使用场景
转载请注明出处:http://blog.csdn.net/sinat_14849739/article/details/78072401本文出自Shawpoo的专栏我的简书:简书 一.为什么需要启动模 ...
- Java 8实现BASE64编解码
Java一直缺少BASE64编码 API,以至于通常在项目开发中会选用第三方的API实现.但是,Java 8实现了BASE64编解码API,它包含到java.util包.下面我会对Java 8的BAS ...
- RAC中常见的高级用法-bind方法
RAC操作思想: Hook(钩子)思想 RAC核心方法:bind bind方法 假设想监听文本框的内容,并且在每次输出结果的时候,都在文本框的内容拼接一段文字" ...
- tomcat之nginx调度
# :安装nginx [root@nginx ~]# yum install nginx -y #配置 [root@nginx ~]# vim /etc/nginx/nginx.conf upstre ...